cm_db/angularjs_prj_prs.sql

6416 lines
2.5 MiB
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/*
Navicat MySQL Data Transfer
Source Server : lzx
Source Server Version : 50615
Source Host : localhost:3306
Source Database : github_zlb
Target Server Type : MYSQL
Target Server Version : 50615
File Encoding : 65001
Date: 2017-01-04 19:42:08
*/
SET FOREIGN_KEY_CHECKS=0;
-- ----------------------------
-- Table structure for angularjs_prj_prs
-- ----------------------------
DROP TABLE IF EXISTS `angularjs_prj_prs`;
CREATE TABLE `angularjs_prj_prs` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`prj_id` int(11) DEFAULT NULL,
`pr_number` int(11) DEFAULT NULL,
`title` varchar(500) DEFAULT NULL,
`description` text,
`comment_count` int(11) DEFAULT NULL,
`changed_file_type` smallint(6) DEFAULT NULL,
`comment_count_before_close` smallint(6) DEFAULT NULL,
`author_name` varchar(150) DEFAULT NULL,
`created_at` varchar(60) DEFAULT NULL,
`closed_at` varchar(60) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=6377 DEFAULT CHARSET=utf8;
-- ----------------------------
-- Records of angularjs_prj_prs
-- ----------------------------
INSERT INTO `angularjs_prj_prs` VALUES ('1', '37', '100', 'Scenario runner navigate 404', 'Check if the URL in navigateTo() is going to return a 2xx (success) status code. Now navigateTo() fails tests if navigating to a 404 or a 500. Also display better error messages about sandbox exceptions (cross domain or file://). Better test cases for Application sandbox error handling as well.\r\n\r\nAlso implements the http HEAD method in the nodeserver for testing.\r\n\r\nNote: This new code will behave badly if your server side code modifies state on a http HEAD request. For example, if your app used onetime URL tokens so that a URL could only be visited once the navigateTo() would fail since it would visit the URL twice. The same is true if you naviateTo(\'delete_something.html\') and performed the actual delete on a HEAD request. No well behaved application should do this since it\'s entirely against the definition of the HEAD http method.\r\n', '0', null, null, 'esprehn', '2010-10-28T07:22:58Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2', '37', '10000', 'little doc typo', '', '2', null, null, 'dallegoet', '2014-11-11T11:19:48Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3', '37', '10001', 'docs(guide/Modules): missing \"a\" in \"a collection\"', '', '3', null, null, 'bantu', '2014-11-11T11:20:22Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4', '37', '10008', 'docs($q): remove IE8-specific notice', '(As discussed in #9817.)\r\n\r\n/ping @pkozlowski-opensource ', '0', null, null, 'gkalpak', '2014-11-11T19:44:17Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5', '37', '10010', 'docs($q): missing finally notifyCallback API', 'finally allows for notifyCallback and is missing in the Docs\r\nhttps://github.com/angular/angular.js/blob/v1.3.2/src/ng/q.js#L288', '0', null, null, 'gdi2290', '2014-11-11T22:26:25Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6', '37', '10011', 'docs($controller): add controllerAs definition', 'This pull request is about the issue #10003.', '0', null, null, 'HenriqueLimas', '2014-11-11T22:53:19Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('7', '37', '10013', 'Update angular-locale_nl-nl.js', 'put in correct dutch plurals', '7', null, null, 'SanderElias', '2014-11-12T03:39:15Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('8', '37', '10017', 'docs(guide/Expressions): Replace curly quotes with straight quotes in code example', '', '1', null, null, 'blaise-io', '2014-11-12T10:23:27Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('9', '37', '10018', 'docs(guide/HTML Compiler): replaced \'locals\' with \'scope\'', '\'locals\' is an obsolete syntax', '4', null, null, 'chatchavan', '2014-11-12T10:26:25Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('10', '37', '10019', 'kljh', 'lkj', '2', null, null, 'phouri', '2014-11-12T10:58:54Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('11', '37', '10020', 'fix(:http): Fix error message on calls to $http without an object', 'fix(:http): Fix error message on calls to $http without an object\r\n\r\nChecks on $http calls and validates it received an object, if it receives a string, automatically wraps it in an object containing only url.\r\nIf an array or any non object/string is passed, will throw an error.\r\n\r\nCloses #10016', '2', null, null, 'phouri', '2014-11-12T11:40:03Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('12', '37', '10021', 'fix(:http): Fix error message on calls to $http without an object', 'Checks on $http calls and validates it received an object, if it receives a string, automatically wraps it in an object containing only url.\r\nIf an array or any non object/string is passed, will throw an error.\r\n\r\nCloses #10016', '12', null, null, 'phouri', '2014-11-12T11:50:26Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('13', '37', '10022', 'feat(ngPluralize): add support for bind-once in `count`', 'The 1st commit contains the change and test for adding support for `bindOnce` in `count`.\r\nThe 2nd commit contains some minor refactoring (mainly to avoid repetitive actions).\r\n\r\nCloses #10004\r\n(Makes #5452 obsolete)', '41', null, null, 'gkalpak', '2014-11-12T11:58:29Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('14', '37', '10028', 'docs($route): fix description of the caseInsensitiveMatch property', 'It looks like I\'ve messed up docs while preparing 0db573b7493f76abd94ff65ce660017d617e865b...', '1', null, null, 'pkozlowski-opensource', '2014-11-12T19:42:31Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('15', '37', '10030', 'docs(guide/expressions): clarify regexp literals usage in expressions', 'Closes #10026', '2', null, null, 'pkozlowski-opensource', '2014-11-12T20:00:06Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('16', '37', '10031', 'Updated ngAria API Docs and Developer Guide', 'This PR contains updates to the ngAria API documentation as well as the Developer Guide.\r\n\r\n@caitp @btford the more thorough examples and explanations are in the Developer Guide: is there enough detail in the API doc portion?', '16', null, null, 'marcysutton', '2014-11-12T20:37:34Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('17', '37', '10032', 'fix(ngMock): call $interval callbacks even when invokeApply is false', 'Functions given to ngMock\'s $interval aren\'t being called after $interval.flush(...) when invokeApply is false. This is because $q.notify does work inside nextTick, and the nextTick provided to $q (which is $rootScope.$evalAsync), doesn\'t tick until a digest.\r\n\r\nI mostly took changes from 19b6b3433ae9f8523cbc72ae97dbcf0c06960148\r\n\r\nI\'m *not* really happy with the fix, but I don\'t know if it\'s actually a problem. It would be nice if ngMock\'s $interval was a decorator like $timeout, but I think that\'s too much of a change for my first PR.\r\n\r\nedit: forgot a word, I\'m *not* happy with the fix', '7', null, null, 'terite', '2014-11-13T01:21:50Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('18', '37', '10042', 'fix(select): ensure the label attribute is updated in Internet Explorer', 'Fixes #9621', '12', null, null, 'petebacondarwin', '2014-11-13T14:53:15Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('19', '37', '10044', 'refactor(select): make MSIE behaviour consistent with other browsers', 'Revisit #10042 to test suspicions', '3', null, null, 'caitp', '2014-11-13T15:46:09Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('20', '37', '10045', 'docs(tutorial/Tutorial): I\'ve faced a problem following the tutorial', 'Error: ENOENT, stat \'C:\\Users\\Eduardo A Rodrigues\\AppData\\Roaming\\npm\'\" \r\nit means the npm folder was not created. \r\nJust create it manually to fix the problem\r\n', '2', null, null, 'eduardoarantes', '2014-11-13T17:10:51Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('21', '37', '10048', 'fix(ngModel): don\'t run parsers when executing $validate', 'Previously, $validate would execute the parsers to obtain a\r\nmodelValue for validation. This was necessary, because a validator\r\nthat is called outside of model / view update (e.g. from an observer)\r\notherwise might only an undefined modelValue, because a previous\r\nview update has found a validation $error and set the model\r\nto undefined (as is tradition in angular)\r\n\r\nThis is problematic as validators that are run immediately after\r\nthe ngModelController initializes would parse the modelValue\r\nand replace the model, even though there had been no user input.\r\n\r\nThe solution is to go back to an older design: the ngModelController\r\nwill now internally record the $$rawModelValue. This means a model\r\nor view update will store the set / parsed modelValue regardless\r\nof validity, that is, it will never set it to undefined because of\r\nvalidation errors.\r\n\r\nWhen $validate is called, the $$rawModelValue will passed to the\r\nvalidators. If the validity has changed, the usual behavior is kept:\r\nif it became invalid, set the model to undefined, if valid,\r\nrestore the last available modelValue - the $$rawModelValue.\r\n\r\nAdditionally, $validate will only update the model when the validity\r\nchanged. This is to prevent setting initially invalid models other\r\nthan undefined to undefined (see #9063)\r\n\r\nFixes: #9063\r\nFixes: #9959\r\nFixes: #9996\r\nFixes: #10025\r\n\r\nCloses: #9890\r\nCloses: #9913\r\nCloses: #9997 \r\n\r\nBonus: the commit which introduced parsing when validating (I actually wanted $$invalidModelValue to be removed, oh well): https://github.com/angular/angular.js/commit/9ad7d745ab5f6f8f43b51cacd7a238df9562246f\r\n\r\n@caitp @petebacondarwin @lgalfaso ', '17', null, null, 'Narretz', '2014-11-13T20:39:41Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('22', '37', '10049', 'feat(input): add $setDirty method to the controller of ng-model directive', '\r\n- extract existing functionality to public method: $setDirty\r\n- add tests to corresponding changes\r\n- refactor code to use extracted method\r\n\r\nCloses #10038', '5', null, null, 'IShotTheSheriff', '2014-11-13T21:48:43Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('23', '37', '1005', 'Debug Extension', 'Initial version of the Angular extension with app, scope, and binding highlighting, scope tree, and performance profiling.', '1', null, null, 'btford', '2012-05-31T22:56:53Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('24', '37', '10053', 'chore(docs): get rid of stable/unstable distinction in version selector', 'Let\'s replace this mess with option groups like **v1.3.x**, **v1.2.x** etc.\r\n![image](https://cloud.githubusercontent.com/assets/94334/5039815/19314c06-6bad-11e4-9075-033f697ae3d9.png)', '4', null, null, 'thorn0', '2014-11-14T01:15:57Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('25', '37', '10056', 'chore(docs): Explains what the $q service does in the description, instead of origin document.', 'Explain what the $q service does in the description. The original explanation was less accessible to people new to promises and JS in general.', '0', null, null, 'btelles', '2014-11-14T05:00:37Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('26', '37', '10058', 'perf(*): use Object.create instead of creating temporary constructors', 'For inherit: http://jsperf.com/inherit-extend-vs-ocreate\r\n\r\nFor constructing an object without calling the constructor: http://jsperf.com/create-constructor/2\r\nNote that caching the constructor is actually faster but I\'d rather avoid the extra logic and caching. Maybe that will be done in #9772 though.', '8', null, null, 'jbedard', '2014-11-14T07:42:12Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('27', '37', '10060', 'test(orderBy): add test cases for ordering array-like objects', '(Testing #9942 before merging)', '0', null, null, 'caitp', '2014-11-14T14:54:35Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('28', '37', '10061', 'perf(orderBy): copy array with slice instead of for loop', 'Lets see if this can be backported (I mostly just want to keep tests in synch)\n\nUse array slice method to copy entire array instead of a for loop\nhttp://jsperf.com/new-array-vs-splice-vs-slice/54', '0', null, null, 'caitp', '2014-11-14T15:15:48Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('29', '37', '10064', 'fix($location): allow empty string URLs to reset path, search, and hash', 'Currently, providing \'\' to $location#url will only reset the hash, but otherwise has no effect. This\r\nchange brings the behaviour of $location#url more inline with window.location.href, which when\r\nassigned to an empty string loads the page\'s base href.\r\n\r\nBefore:\r\n$location.url() // http://www.example.com/path\r\n$location.url(\'\') // http://www.example.com/path\r\n\r\nAfter:\r\n$location.url() // http://www.example.com/path\r\n$location.url(\'\') // http://www.example.com\r\n\r\nFixes #10063', '12', null, null, 'NevilleS', '2014-11-14T21:00:37Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('30', '37', '10065', 'fix(toJson): add ability to suppress exceptions', 'This is a pull request prepared for issue #9838 \r\n\r\nI have implemented solution discussed in #9838 and applied it in places that I was sure of.\r\nThere are several places left where toJson is used but I wasn\'t certain if exceptions should be suppressed there:\r\n\r\nhttps://github.com/angular/angular.js/blob/master/src/ng/http.js#L135\r\nhttps://github.com/angular/angular.js/blob/master/src/ng/http.js#L1098\r\nhttps://github.com/angular/angular.js/blob/master/src/ng/interpolate.js#L257\r\nhttps://github.com/angular/angular.js/blob/master/src/ng/filter/filters.js#L524\r\nhttps://github.com/angular/angular.js/blob/master/src/ngCookies/cookies.js#L181\r\nhttps://github.com/angular/angular.js/blob/master/src/ngMock/angular-mocks.js#L871\r\nhttps://github.com/angular/angular.js/blob/master/src/ngMock/angular-mocks.js#L885\r\nhttps://github.com/angular/angular.js/blob/master/src/ngMock/angular-mocks.js#L1158\r\nhttps://github.com/angular/angular.js/blob/master/src/ngMock/angular-mocks.js#L1637\r\nhttps://github.com/angular/angular.js/blob/master/src/ngScenario/Scenario.js#L80\r\nhttps://github.com/angular/angular.js/blob/master/src/ngScenario/Scenario.js#L89\r\nhttps://github.com/angular/angular.js/blob/master/src/ngScenario/Scenario.js#L298\r\nhttps://github.com/angular/angular.js/blob/master/src/ngScenario/output/Json.js#L8\r\n\r\nps. yeah I know I did copy&paste on one line there and it looks awful but I didn\'t know if I could create new function in global angular scope like ```toJsonReplacer``` just to throw that line there.', '4', null, null, 'kwypchlo', '2014-11-14T22:21:27Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('31', '37', '10066', 'Enhanced form examples to utilize $touched', 'The \"Binding to form and control state\" example now more closely reflects how users will accomplish form validation in 1.3. For example, users are now informed of validation requirements upon clicking Save.', '11', null, null, 'claycephas', '2014-11-14T22:23:46Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('32', '37', '10068', 'fix($animate): applyStyles from options on leave', 'missing <code>[options]</code> API that should either be removed from the docs or added in the code\r\n\r\n@param {object=} options an optional collection of options that will be applied to the element.\r\n\r\nthe tests weren\'t working for this feature \r\n```javascript\r\n $animate.leave(element, \'off\', {\r\n to: { color: \'blue\' }\r\n });\r\n assertColor(\'blue\'); //nothing should happen the element is gone anyway\r\n```\r\n\r\nyou can view the docs here https://ng-click.com/$animate#leave', '6', null, null, 'gdi2290', '2014-11-15T09:52:04Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('33', '37', '10074', 'feat($location): allow to location to be changed during $locationChangeS...', 'This is just to trigger Travis', '0', null, null, 'petebacondarwin', '2014-11-15T23:26:04Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('34', '37', '10079', 'docs(tutorial/4 - Two-way Data Binding): describe your change...', 'the name \'unknown\' doesn\'t appear as a choice, the new choice is just blank. side note: once I choose one of the non-blank options, I no longer see the blank option.', '1', null, null, 'bwestrich', '2014-11-16T14:05:52Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('35', '37', '1008', 'Making rc10\'s $timeout.cancel() accept a undefined param like rc9\'s $defer.cancel() used to.', 'With rc9 you could call $defer.cancel() with an undefined value. With rc10, $defer\'s replacement $timeout throws an RTE when calling $timeout.cancel() with undefined.\n\nThis diff updates rc10 to behave like rc9 by verifying that the promise sent to $timeout.cancel() exists before attempting to work with it. ', '5', null, null, 'alimills', '2012-06-01T21:55:57Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('36', '37', '10080', 'docs(tutorial/5 - XHRs', 'The documentation describes the code to be written in a different order than the code is actually written. I\'m not an angular expert, but I found that putting the scope creation and controller creation BEFORE the httpBackend setup code doesn\'t cause problems (at least the tests still pass). I also reordered the parameters passed into inject(function( to match the order that we use them in the function). Here\'s the resulting code that is consistent with my suggested doc modification: \r\n\r\n beforeEach(inject(function($rootScope, $controller, _$httpBackend_) {\r\n scope = $rootScope.$new();\r\n ctrl = $controller(\'PhoneListCtrl\', {$scope: scope});\r\n\r\n $httpBackend = _$httpBackend_;\r\n $httpBackend.expectGET(\'phones/phones.json\').\r\n respond([{name: \'Nexus S\'}, {name: \'Motorola DROID\'}]);\r\n }));', '3', null, null, 'bwestrich', '2014-11-16T15:11:23Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('37', '37', '10082', 'docs(tutorial/5 - XHRs', 'include sort filter in json view', '2', null, null, 'bwestrich', '2014-11-16T15:20:09Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('38', '37', '10084', 'docs(tutorial/7 - Routing', ' changed angular-route version to match the version that appears to be used by code checked into git. Perhaps the git code should instead be updated? Also, curiously the git diffs show the newer version number (even though the code I get from git shows the older version....)', '4', null, null, 'bwestrich', '2014-11-17T01:14:19Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('39', '37', '10085', 'fix(minErr/ngRepeat/$rootScope): serialization of error objects', 'This is my preferred solution to #9838.\r\n`toJson` should throw errors on cyclic object references. JSON is not really designed to handle this out of the box and we should not be hiding the error from the developer.\r\nAdding a hidden parameter is just making this method convoluted and slowing it down.\r\n\r\nInstead we should consider that for error messages, we do not high fidelity serialization of objects but instead a readable string that is useful for debugging. Returning `undefined` for broken JSON stringification is not helpful.\r\n\r\nThis fix provides a new function `stringify` which is available within the `angular.js` file and also within the `angular-loader.js` file. This function is then used inside `minErr` and `$rootScope` to provide nice string forms of objects.\r\n\r\nPlaces that were using `toJson` to create error messages (i.e. `ngRepeat` and `$rootScope`) no either pass the object directly to `minErr` or they use the `stringify` method directly.\r\n\r\nThis solution ensures that we don\'t confuse the point of `toJson` - it is not a generic stringification tool, it is designed for converting to and from valid JSON. The new method `stringify` also provides us with a single future improvement point if we wished to make the stringification of objects to strings more comprehensive.', '14', null, null, 'petebacondarwin', '2014-11-17T01:32:12Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('40', '37', '10088', 'Add jscs jsdoc', 'WIP\r\n\r\nDon\'t know if we still want to add jsdoc checks but if we do... [jscs-jsdoc](https://github.com/jscs-dev/jscs-jsdoc).\r\nAdded `jscs-jsdoc`, updated `grunt-jscs` to `1.0.0` and `jscs` to `1.8.1`.\r\n\r\nI know Ngdoc is a bit different so not sure if it will work consistently. However `@param` should be the same?\r\n\r\nNot sure if I should remove the fsevents from `npm-shrinkwrap.json`.\r\n\r\nI did\r\n`npm install jscs-jsdoc`\r\n`npm shrinkwrap --dev`\r\n`./scripts/clean-shrinkwrap.js`\r\n\r\nAdding jscs rules:\r\n- `checkParamNames` to match the docs parameter names. \r\n - Could also standardize parameter names like `expression` vs `expr` that are used a lot.\r\n- `requireParamTypes` to make sure there is a {TYPE}. \r\n - can also look at some of the different types used - https://gist.github.com/hzoo/1c9c8443b7e495f63a8d\r\n\r\nNo extra errors with jscs (fixed ~25 style errors for each rule).\r\n\r\n----\r\n\r\nThere was a problem with `src/ngMessages/messages.js` line 349\r\nwhere jscs had a problem with\r\n`* @param {string} ngMessage a string value corresponding to the message key.`\r\nsince the parameter is the parameter of the directive and not a function so just did\r\n`// jscs:disable jsDoc` for now.\r\n\r\nNot sure why it didn\'t have a problem with directive `ngMessages` but had one with `ngMessage` - maybe have to check some of these manually.\r\n\r\ncc: @caitp ', '14', null, null, 'hzoo', '2014-11-17T04:39:54Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('41', '37', '10091', 'fix($http): fix response headers with an empty value', 'Empty response header values are legal (http://www.w3.org/Protocols/rfc2616/rfc2616-sec4.html).\r\nReturn an empty string instead of null, which is returned when the header does not exist.\r\n\r\nCloses #7779', '13', null, null, 'jamshid', '2014-11-17T09:34:19Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('42', '37', '10093', 'Repeated word', '', '1', null, null, 'samudurand', '2014-11-17T10:00:11Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('43', '37', '10096', 'feat($rootScope): Add custom compare and copy functions to $watch', 'Closes #10069', '20', null, null, 'Toilal', '2014-11-17T15:40:44Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('44', '37', '10098', 'chore(docs): add favicon to docs app', '', '3', null, null, 'jeffbcross', '2014-11-17T17:32:47Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('45', '37', '10099', 'fix(toDebugString): adds better handling of cycle objects', 'As discussed in #10085 this commit adds a function for replacing cycle references in object. It is recursive and it knows if the reference has been made in a straight line (sibling objects will be left but object referencing same object will be replaced).\r\nIt also changes the replacement string to \'...\' because the older one could be mistaken for html tag by browsers.\r\n\r\n@petebacondarwin could you look at this one? The original one I posted on #10085 was faulty because it couldn\'t handle arrays and objects like Date, Boolean, RegExp. This one is a little longer though, as far as I tested, safer.', '6', null, null, 'kwypchlo', '2014-11-17T17:52:36Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('46', '37', '1010', 'Typos in /docs/content/guide/directive.ngdoc', '', '1', null, null, 'colinfrei', '2012-06-02T07:04:24Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('47', '37', '10103', 'fix(toDebugString): change replacement string', 'As discussed in #10085, the original replacement string can be treated as html when displayed by the browser so it replaces it with \'...\' string.\r\n\r\nThis PR has filtered that one fix from #10099 commit', '0', null, null, 'kwypchlo', '2014-11-17T20:46:23Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('48', '37', '10104', 'fix(NgModelController): $rawModelValue typo', '', '1', null, null, 'gdi2290', '2014-11-17T23:46:39Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('49', '37', '10106', 'docs($location): fix method-name and typos in `ihshprfx` error', '', '2', null, null, 'gkalpak', '2014-11-18T09:51:51Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('50', '37', '10111', 'docs(ngBindHtml): fix awkward wording', 'for issue #10097\r\n\r\nchanges: \r\n * @ngdoc directive\r\n * @name ngBindHtml\r\n *\r\n * @description\r\n * Creates a binding that will innerHTML the result of evaluating the `expression` into the current\r\n * element in a secure way. By default, the innerHTML-ed content will be sanitized using the {@link\r\n * ngSanitize.$sanitize $sanitize} service. To utilize this functionality, ensure that `$sanitize`\r\n * is available, for example, by including {@link ngSanitize} in your module\'s dependencies (not in\r\n * core Angular). In order to use {@link ngSanitize} in your module\'s dependencies, you need to\r\n * include \"angular-sanitize.js\" in your application.\r\n\r\nto this:\r\n/**\r\n * @ngdoc directive\r\n * @name ngBindHtml\r\n *\r\n * @description\r\n * The ngBindHtml attribute tells Angular to replace the inner HTML content of the specified HTML \r\n * element with the value of a given expression, and to update the inner HTML content when the value \r\n * of that expression changes in a secure way. By default, the innerHTML-ed content will be sanitized \r\n * using the {@link ngSanitize.$sanitize $sanitize} service. To utilize this functionality, ensure \r\n * that `$sanitize` is available, for example, by including {@link ngSanitize} in your module\'s \r\n * dependencies (not in core Angular). In order to use {@link ngSanitize} in your module\'s dependencies, \r\n * you need to include \"angular-sanitize.js\" in your application.', '5', null, null, 'trizko', '2014-11-18T20:09:18Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('51', '37', '10113', 'fix($http): return empty headers, ignore properties in Object prototype', '(TESTING FOR MERGE)\n\nFix response headers with an empty value Empty response header values are legal\n(http://www.w3.org/Protocols/rfc2616/rfc2616-sec4.html).\n\nThe headers getter fn will now only return null if the header property is not an own property.\n\nCloses #7779', '0', null, null, 'caitp', '2014-11-18T21:29:08Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('52', '37', '10116', 'fix(ng): in angular.copy do not call hasOwnProperty on objects with not ...', '...prototype\r\n\r\nangular.copy can be called with an object that has no prototype. Call\r\nObject.prototype.hasOwnProperty instead of object.hasOwnProperty to\r\nsafely check if object has a property', '14', null, null, 'mohsen1', '2014-11-18T23:20:34Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('53', '37', '10117', 'chore(docs): mark builds >= 1.3.0 as stable', 'Update isStable() to add builds >= 1.3.0 marked as stable. Previously, only builds with an even minor version number (1.0.x, 1.2.x) were marked as stable, while odd minor numbers (1.3.x) were marked as unstable. Now, 1.0.x, 1.2.x and 1.3+ will all be marked as stable. Prereleases remain marked as unstable, regardless of minor version.\r\n\r\nAs noted [here](http://angularjs.blogspot.com/2013/12/angularjs-13-new-release-approaches.html), odd minor versions are no longer considered unstable.\r\n\r\nSee screenshot of the current (incorrect) behavior:\r\n![angular versions](https://cloud.githubusercontent.com/assets/1669397/5099577/c8a1b7d0-6f5d-11e4-9257-542cf80cd99a.png)', '6', null, null, 'royaldark', '2014-11-19T02:03:51Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('54', '37', '10119', 'test($interpolate): adding tests for watching $interpolate functions', 'This adds a few tests for watching $interpolate functions. I believe this would have caught the issue with the solution I proposed for #9961...', '1', null, null, 'jbedard', '2014-11-19T06:44:19Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('55', '37', '10123', 'docs(jqLite): Debug Data must be enabled for scope/isolateScope methods', 'Closes #9515', '5', null, null, 'Toilal', '2014-11-19T15:06:04Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('56', '37', '10124', 'docs(ngAnimate.$animate): fix classes during the various animation phases', 'I am not 100% sure for the class additions (although I am 99+% sure).\r\n(If someone could double-check (@matsko ideally ?), that would be great :smiley:)', '12', null, null, 'gkalpak', '2014-11-19T15:14:44Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('57', '37', '10129', 'docs(ngBindHtml): fix awkward wording', 'for issue #10097\r\n\r\nchanges:\r\n/**\r\n * @ngdoc directive\r\n * @name ngBindHtml\r\n *\r\n * @description\r\n * Creates a binding that will innerHTML the result of evaluating the `expression` into the current\r\n * element in a secure way. By default, the innerHTML-ed content will be sanitized using the {@link\r\n * ngSanitize.$sanitize $sanitize} service. To utilize this functionality, ensure that `$sanitize`\r\n\r\nto this:\r\n/**\r\n * @ngdoc directive\r\n * @name ngBindHtml\r\n *\r\n * @description\r\n * Evaluates the expression and inserts the resulting HTML into the element in a secure way. By default, \r\n * the resulting HTML content will be sanitized using the {@link ngSanitize.$sanitize $sanitize} service.', '4', null, null, 'trizko', '2014-11-19T16:37:36Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('58', '37', '10130', 'docs(readme): improved documentation NO MERGE', '', '1', null, null, 'jeffbcross', '2014-11-19T17:53:06Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('59', '37', '10131', 'docs(CHANGELOG): add info about $parse breaking change in 1.3.3', 'Closes #10054', '12', null, null, 'pkozlowski-opensource', '2014-11-19T18:39:48Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('60', '37', '10136', 'fix(ngModelOptions): preserve context of getter/setters', 'Closes #9394\r\n\r\nBREAKING CHANGE: previously, ngModel invoked getter/setters in the global context.\r\n\r\nFor example:\r\n\r\n```js\r\n<input ng-model=\"model.value\" ng-model-options=\"{ getterSetter: true }\">\r\n```\r\n\r\nwould previously invoke `model.value()` in the global context.\r\n\r\nNow, ngModel invokes `value` with `model` as the context.\r\n\r\nIt\'s unlikely that real apps relied on this behavior. If they did they can use `.bind` to explicilty\r\nbind a getter/getter to the global context, or just reference globals normally without `this`.', '23', null, null, 'btford', '2014-11-20T01:20:04Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('61', '37', '10137', 'perf($parse): create new Function to call statements without iterating', 'When having multiple statements, instead of iterating through the statements\r\narray, a new function is created. This function sequentially calls all the statements\r\nwhich is faster due to not having to do the array lookup and it also allows the VM\r\nto make optimizations like inlining.\r\n\r\nIn this jsperf you can see the difference when many calls are made. Of course, the real benefit will depend on the complexity of the statements to call.\r\nhttp://jsperf.com/compile-function-list-call', '31', null, null, 'gonzaloruizdevilla', '2014-11-20T05:42:13Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('62', '37', '10138', 'refactor($parse): apply #10137 fix only when CSP disabled', null, '4', null, null, 'caitp', '2014-11-20T08:11:41Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('63', '37', '10144', 'docs($http): Describe how to remove a header on a per request basis.', '\r\n\r\n', '2', null, null, 'dustinchilson', '2014-11-20T15:25:00Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('64', '37', '10145', 'fix($filter): add int support for negated strict comparison', '- negation is achieved by adding \'!\' which fails if key is a integer and strict comparison is set to true.\r\n- This commit fixes it by checking typeof and parsing accordingly\r\n\r\nCloses #10141', '2', null, null, 'adi-ads', '2014-11-20T15:31:53Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('65', '37', '10147', 'fix($filter): add int support for negated strict comparison', '- negation is achieved by adding \'!\' which fails if key is a integer and strict comparison is set to true.\r\n- This commit fixes it by checking typeof and parsing accordingly\r\n\r\nCloses #10141', '24', null, null, 'adi-ads', '2014-11-20T15:47:08Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('66', '37', '10154', 'chore(scripts): publish 1.2.x releases to npm with correct tag', '', '3', null, null, 'btford', '2014-11-20T22:28:32Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('67', '37', '10155', 'docs(ngAnimate): Fix typo', 'The ngAnimate makes reference to a function `$animateProvider.classNamePrefix` that does not exist, the correct function is `$animateProvider.classNameFilter`\r\n\r\nCloses #10142', '2', null, null, 'lgalfaso', '2014-11-20T22:33:24Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('68', '37', '10157', 'fix($browser): .url() should always return self in setter mode', '', '5', null, null, 'thorn0', '2014-11-20T23:59:03Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('69', '37', '10162', 'docs(tutorial/Tutorial): describe your change...', 'Sometimes people use coffe break to learn new things, so when I do documentation I put myself on their shoes and think about problems environment cause. Proxy settings is first one.', '3', null, null, 'bdbais', '2014-11-21T12:04:20Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('70', '37', '10164', '`$isEmpty` fixes', 'We should only use $isEmpty on $viewValue not for validating models.', '9', null, null, 'petebacondarwin', '2014-11-21T19:50:57Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('71', '37', '10166', 'fix(select): Fix several issues when moving options between groups', '* When an option was moved to a previous group, the group that loose the option would remove the label from the controller\r\n* When an entire option group was removed, the options in the group were mot removed from the controller', '22', null, null, 'lgalfaso', '2014-11-22T00:38:14Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('72', '37', '10167', 'Merge pull request #1 from angular/master', 'update', '3', null, null, 'Ryan724', '2014-11-22T01:59:27Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('73', '37', '10168', 'external removal of input formatters', 'I\'m attempting to come up with a solution for this ui.Bootstrap Typeahead bug: https://github.com/angular-ui/bootstrap/issues/2681\r\n\r\nAn alternative to this pull request is questioning if we really need the formatter which does the toString()\r\n\r\nThe removeByFnName() would be called from the Typeahead to remove the stringBasedInputTypeFormatter \r\n\r\nThoughts?', '8', null, null, 'rupe120', '2014-11-22T06:18:39Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('74', '37', '10170', 'fix(Angular): properly get node name for svg element wrapper', 'Fixes #10078', '5', null, null, 'pkozlowski-opensource', '2014-11-22T09:21:56Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('75', '37', '10172', 'fix(Angular): properly get node name for svg element wrapper', 'Fixes #10078', '3', null, null, 'pkozlowski-opensource', '2014-11-22T13:42:59Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('76', '37', '10176', 'test($http): parsing headers with multiple values', 'Closes #9473', '2', null, null, 'pkozlowski-opensource', '2014-11-22T16:44:12Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('77', '37', '10177', 'fix($httpBackend): compare timeoutId with undefined in completeRequest', 'fix($httpBackend): compare timeoutId with undefined in completeRequest\r\nhttpBackend with ngMock browser.defer can never cancel the first deferredFn because the timeoutId returned by defer for the first fn is a zero value.\r\nCompare timeoutId with undefined fix this issue. Replace fakeTimeout with defer mock to test this fix.\r\n', '3', null, null, 'gyx1000', '2014-11-22T17:11:07Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('78', '37', '10179', 'fix($locale): Allow currency filter to fall back to maxFrac from locale', '- Modify default fallback to `NUMBER_FORMATS.PATTERNS[1].maxFrac`\r\n\r\nNote that the default value currently is 2, so it preserves the existing behavior.', '4', null, null, 'wesleycho', '2014-11-22T18:52:26Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('79', '37', '10180', 'doc(injector): adds strictDi documentation to appropriate methods.', 'Closes #9624', '10', null, null, 'rkirov', '2014-11-22T19:19:54Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('80', '37', '10181', 'Use standard event.preventDefault when available (event.returnValue is deprecated) - #4557 ', '', '2', null, null, 'shwei', '2014-11-22T19:38:56Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('81', '37', '10182', 'fix($parse) move oneTime detection to parser and cache function values', 'This fixes issue #10133 ', '4', null, null, 'thirtyseven', '2014-11-22T19:45:59Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('82', '37', '10183', 'docs(unit testing): improve unit testing guide', 'This commit adds to the unit testing guide:\r\n\r\n- add explicit section on additional libraries: Karma, Jasmine and\r\n angular-mocks and link to the docs for those projects too. Explain the\r\n benefit and use case for each of these libaries\r\n- Add more fully featured test examples and add more documentation\r\n around them, in particular the controller test\r\n- more clearly distinguish between the section on principles of testing\r\n and actual tutorial on writing a test\r\n\r\nThis should close #8220.\r\n\r\n\r\n## Questions\r\n\r\nOne thing that I wasn\'t sure on was if to update the controller tests to not presume the controller is in the global scope. In the original issue (#8220) it says:\r\n\r\n> I think we talked about the controller syntax in #5076. We agreed to change that for 2.0.\r\n\r\nSo I left the controllers as is, but it feels beneficial to me to update the controller example. Is there any reason why that can\'t be done now? That issue mentioned (#5076) is more about the `controllerAs` syntax, but the main problem with the test example right now is that the controllers are global. \r\n\r\nSecondly, the entire discussion about the different ways of dependency injection - most people will be familiar with how Angular does this and hence talking about other mechanisms doesn\'t seem that worthwhile?', '24', null, null, 'jackfranklin', '2014-11-22T19:49:49Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('83', '37', '10184', 'fix ($http): throw error when string URL is provided. closes issue #10016', 'fix ($http): throw error when string URL is provided. closes issue #10016', '6', null, null, 'dusbuss', '2014-11-22T20:17:18Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('84', '37', '10185', 'Add some examples to absUrl(), url([url]), protocol(), host(), port(), path([path]), and hash([hash]).', 'Add some examples to absUrl(), url([url]), protocol(), host(), port(), path([path]), and hash([hash]). For issue #9754 ', '3', null, null, 'shwei', '2014-11-22T21:14:41Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('85', '37', '10186', 'fix(isArrayLike): Correct logic in isArrayLike to screen out objects', '- Fix ngRepeat check via isArrayLike check to prevent objects from\r\n accidentally passing as array-like\r\n\r\nThis addresses #8000 & #4751.', '16', null, null, 'wesleycho', '2014-11-22T21:23:18Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('86', '37', '10187', 'TESTING: DO NOT MERGE (fix ($http): throw error when string URL is provided)', '', '7', null, null, 'chirayuk', '2014-11-22T21:29:10Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('87', '37', '10188', 'chore: add build into test unit task', 'While following setup document https://docs.angularjs.org/misc/contribute, and running \r\n$ grunt test:unit, it was showing \"Uncaught ReferenceError: angular is not defined - AngularJS not working\" error. \r\nSo i added \'build\' into test unit task and then it starts working.\r\n\r\n', '14', null, null, 'Vibhuti', '2014-11-22T22:01:19Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('88', '37', '10189', 'docs(injector): adds a missing backtick and reformat list.', '', '2', null, null, 'rkirov', '2014-11-22T22:43:49Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('89', '37', '10190', 'fix($location): fix handling of hash fragment links', 'This commit adds a new `fixHashFragmentLinks` method to `$locationProvider`. This method fixes incorrect rewriting of hash fragment links. In order to use in your project, you need to enable the new behavior:\r\n\r\n```js\r\nmyApp.config(function($locationProvider) {\r\n $locationProvider.fixHashFragmentLinks(true);\r\n});\r\n```\r\n\r\nIn addition, you need to inject the `$anchorScroll` service to one of your controllers/services, to enable automatic anchor scrolling.\r\n\r\nCloses #8675', '9', null, null, 'urish', '2014-11-22T23:00:01Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('90', '37', '10191', 'feat($compile): add one way (one-off) binding to isolate scope', 'Adds the ability to define a directive that has a one way data binding\r\nvariable:\r\n\r\n```js\r\ndirective(\'foo\', function() {\r\n return {\r\n scope: { oneWay: \'>\' }\r\n };\r\n});\r\n\r\n<foo one-way=\"name\"></foo>\r\n```\r\n\r\nGiven the above code, if `name` changes on the parent, that change will\r\nnot propagate through to foo, as it would if the binding was \"=\".\r\nSimilarly, if foo updates `oneWay`, that change will not be reflected on\r\nthe parent.\r\n\r\nThere wasn\'t an open issue for this, but discussed this in person with @IgorMinar before starting (ng-fixit-1 :tada:).', '5', null, null, 'jackfranklin', '2014-11-22T23:23:36Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('91', '37', '10192', 'refactor(*): combine sequence of .push() into one single statement', 'It saves a few bytes and is still easy to read.', '2', null, null, 'gonzaloruizdevilla', '2014-11-23T00:15:32Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('92', '37', '10193', 'support nested forms isolated from parent', '', '18', null, null, 'gonzaloruizdevilla', '2014-11-23T00:19:01Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('93', '37', '10194', 'feat($compile): Add support for ng-attr with camelcased attributes', '- Modify $compile to handle camelcased attributes only with ng-attr to\r\n support SVG fully\r\n\r\nThis should address #9845.', '2', null, null, 'wesleycho', '2014-11-23T03:23:39Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('94', '37', '10195', 'fix(ngPluralize): Use \"other\" pluralization key as a fallback', 'With languages having optional keys like `few` or `many` it\'s handy to use `other` as a fallback instead of defining all of the translation keys (in which some may be repeated) in `when` attribute of `ng-pluralize`.\r\n\r\nRefs #7774', '4', null, null, 'Sija', '2014-11-23T12:07:45Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('95', '37', '10197', 'fix(parse): fix operators associativity', 'Make the operators `&&`, `==`, `!=`, `===`, `!==`, `<`, `>`, `<=`, `>=` follow Javascript left-to-right associativity', '7', null, null, 'lgalfaso', '2014-11-23T13:10:15Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('96', '37', '10199', 'fix(ngMock): allow numeric timeouts in $httpBackend mock', 'Fixes #4891 \r\n\r\nWith this fix people can write tests like this: http://plnkr.co/edit/pkEPgXBjkk0pXno3Bwlz?p=preview', '3', null, null, 'pkozlowski-opensource', '2014-11-23T13:29:16Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('97', '37', '102', 'Resource class is shared across $resources', 'Each time a $resource is defined, the shared Resource class is redefined. If custom actions were defined on an earlier resource, those actions disappear. Limiting the scope where Resource is defined prevents this from happening.\r\n\r\n', '2', null, null, 'groner', '2010-10-29T01:05:51Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('98', '37', '10202', 'fix($route): fix redirection with optional/eager params', '', '3', null, null, 'gkalpak', '2014-11-23T16:54:25Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('99', '37', '10203', 'fix(select): allow ngOptions to be set in $timeout', 'Fix angular 1.3 regression where empty string was shown\r\n\r\nCloses #9714', '5', null, null, 'ajohnston256', '2014-11-23T18:30:21Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('100', '37', '10204', 'Fixed grammar in compile.js (ngDoc)', 'Changed \"You may want to use this in production\" to \"You may want disable this in production\". The phrase \"to use\" implies enabling where as it should be *disabled* in production.', '3', null, null, 'thinkingmedia', '2014-11-23T18:58:55Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('101', '37', '10211', 'Support Windows Phone 8 and Browser with MOVE_TOLERANCE.', 'If an element has ngClick applied, it will still fire the `click` event after dragging the element or any children of the element that has ngClick. It is particularly buggy when combined with the `$swipe` service.\r\n\r\nThis change moves the `mouse` and `pointer` events to coexist with touch events logic and incorporate MOVE_TOLERANCE.', '5', null, null, '2ix', '2014-11-25T00:48:47Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('102', '37', '10215', 'feat(ngModelController.$focused): add $focused / $unfocused to ngModelController', '\r\n* set ngModelController.$focused when an input is actively focused\r\n* set ngModelController.$unfocused on blur\r\n* useful for things like hiding error messages when the user is actively focused on an input\r\n\r\nNo breaking changes', '13', null, null, 'sricc', '2014-11-25T16:26:54Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('103', '37', '1022', 'fix(compiler): Merging of interpolated class attribute from directive template with replace:true works', 'Closes #1006\n', '1', null, null, 'maxmart', '2012-06-06T14:30:34Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('104', '37', '10220', 'docs(ngRoute): clarify JSDoc for caseInsensitiveMatch', 'I found the mismatch between the property name+semantics and the description a bit confusing. This change aligns the two.', '1', null, null, 'oneeman', '2014-11-25T23:52:12Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('105', '37', '10221', 'x5 optimization: do not run watchers on isolated scopes if their isolated bindings hasn\'t changed', 'This optimization reduces number of running watchers by x3 - x10 in apps with big number of isolated scopes.\r\n\r\n#### How?\r\nDo not run the isolated scope watchers if its scope definition bindings (e.g. `{label: \'@\'}`) hadn\'t changed.\r\n\r\n#### Motivation\r\nThe common use case for directives with isolate scope is to create kind of a widget. With isolate scope bindings it \"connects\" to its \"public\" interface and should implement its internal functionality using _ONLY_ these fields, model-wise. In other words, any inner watchers should entirely depend (directly or indirectly) on the \"public\" interface. Any direct watchers to parental scopes is discouraged.\r\nLet\'s evaluate scenarios of what happens then:\r\n* Templating: the mapped field is used inside a template, e.g. there is a mapping like `label: \'@\'` and somewhere in the template `{{label}}`. While the template is linked, it installs a watch that evaluates the expression. It\'s clear that if the outer `@label` is not changed it\'s useless to evaluate the expression since it\'s not changed. Consider that the expression can be more complex: `{{label}}: {{getFullName()}}`. Currently, all this runs several times during $digest cycle for nothing.\r\n* Custom watches: the user installs a watch using a `function(){...}`. The function must return a value , in many cases the value is computed and the computation can be untrivial. The sad part is that if the isolated bindings hasn\'t changed, this computation should return the same value! So again, it will run for nothing...\r\n\r\nNow consider an app that makes an intensive use of \"widgets\", like a typical LOB app. This optimization substantially boosts its performance (x5-x10).\r\n\r\n#### Cons\r\nUnfortunately this change can break an existing code. If the user creates watches to parental scopes, the system might behave abnormally: if the callback will change some scope values, the UI can be not updated.\r\n* In the first place, this kind of watchers is discouraged and can be considered as a bug in user code\r\n* I provide a method `scope.$setDirty()` that can be used to \"fix\" the problem\r\n\r\nIn any case, this issue makes this PR inappropriate for minor release. So there are 2 options:\r\n1. The directive will mark somehow that a new isolated scope behavior can be used, in this case no old code will be broken and this can be merged.\r\n2. Wait for a major release.\r\n\r\nIn my opinion (1) is better: like in Google [Guava](https://github.com/google/guava), there is a concept of `@Beta` features. This way the users might test the new functionality and provide feedback before it\'s released.\r\n\r\n***\r\n\r\nI created a demo app, which logs \"skipped\" scopes and # of watcher checks. In original angular number of checks is x3 - x10.\r\n\r\nhttp://ngforms.azurewebsites.net/', '47', null, null, 'kostat', '2014-11-26T01:10:09Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('106', '37', '10222', 'docs(CHANGELOG): remove * component', 'The `*` component does not render properly when wrapped in `**...**` and should be interpreted as the empty component anyway.', '1', null, null, 'gkalpak', '2014-11-26T01:12:08Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('107', '37', '10224', 'docs(select): Updated ngOptions track by examples', 'Made the example shown consistent with the advice above it regarding not using `select as` and `track by` in the same comprehension expression. Also changed references to `trackexpr` to `track by` since `trackexpr` is not defined except in the examples.', '6', null, null, 'SteveShaffer', '2014-11-26T01:23:57Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('108', '37', '10227', 'docs(guide/Directives): describe your change...', 'The wrong version of HTML standard version', '3', null, null, 'ostap1010', '2014-11-26T09:38:23Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('109', '37', '10229', 'added ngContent directive', 'The ngContent directive is useful when setting a URL in the `content` attribute of a `<meta>` tag. It ensures bots will not try to request the wrong URL.', '4', null, null, 'gildas-lormeau', '2014-11-26T11:43:18Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('110', '37', '1023', 'fix(directive): reapply ng-class when interpolated class attribute changes', 'Closes #1016\n', '1', null, null, 'maxmart', '2012-06-06T15:32:14Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('111', '37', '10231', 'docs($compile): fix grammar', '', '4', null, null, 'rgksugan', '2014-11-26T12:08:46Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('112', '37', '1024', 'Component bindings', '', '0', null, null, 'mhevery', '2012-06-06T22:17:58Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('113', '37', '10240', 'fix(linky): encode all double quotes when serializing email addresses', 'When encoding a URL or an email address, then escape all double quotes\r\n\r\nCloses #10090', '3', null, null, 'lgalfaso', '2014-11-26T19:50:20Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('114', '37', '10241', 'Fix select getting confused when removing options, causing empty option to show up when not needed', '', '6', null, null, 'Narretz', '2014-11-26T19:53:07Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('115', '37', '10242', 'style(*): IE is a real browser, and chakra is pretty solid', null, '14', null, null, 'caitp', '2014-11-26T20:10:45Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('116', '37', '10245', 'Fixing typo', 'Noticed this typo. Wanted to fix it. ', '3', null, null, 'dannyid', '2014-11-26T22:54:19Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('117', '37', '10249', 'Update index.ngdoc', 'Should either be \"a different version\" or \"different versions\"; this goes with the latter.', '3', null, null, 'erictheise', '2014-11-27T17:15:37Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('118', '37', '1025', 'fix($compile): correctly merge class attr for replace directives', 'Merging of interpolated class attribute from directive template with replace:true works\n\nCloses #1006', '1', null, null, 'IgorMinar', '2012-06-07T16:11:43Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('119', '37', '10251', 'Fixed minor typo', '', '3', null, null, 'atesgoral', '2014-11-27T19:44:50Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('120', '37', '10252', 'fix(numberFilter): properly format small number expressed with e notation', '\r\nFixes #10246', '22', null, null, 'pkozlowski-opensource', '2014-11-27T20:25:46Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('121', '37', '10254', 'Include an important sentence into the @description', 'Improve Docs: The inclusion of the last sentence would help define `ngHref` well.', '5', null, null, 'sagar-ranglani', '2014-11-28T02:54:29Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('122', '37', '1026', 'Logo', '', '1', null, null, 'bradlygreen', '2012-06-07T18:56:07Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('123', '37', '10264', 'refactor($emplateRequest): simplify filtering out of transform functions', 'I guess it might be just me but I find it a lot easier to read / understand this chunk of code when it is written using the `.filter` method. \r\n\r\nUnless the code was written like this for perf reasons.', '6', null, null, 'pkozlowski-opensource', '2014-11-29T10:20:55Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('124', '37', '10265', 'refactor($templateRequest): avoid double calls to $templateCache.put', 'Passing a $templateCache instance as part of the config (as [here](https://github.com/angular/angular.js/blob/d0351c4803c289b66468f693c93d33ab0b8d85ee/src/ng/templateRequest.js#L44) is enough to have the cache filled correctly, we don\'t need explicit calls to `$templateCache.put`.\r\n\r\nWe\'ve got a test that proves that things work correctly after this change:\r\nhttps://github.com/angular/angular.js/blob/d0351c4803c289b66468f693c93d33ab0b8d85ee/test/ng/templateRequestSpec.js#L19-L29 ', '7', null, null, 'pkozlowski-opensource', '2014-11-29T10:35:49Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('125', '37', '10266', 'fix($emplateRequest): propagate rejection reason when ignoreRequestError...', '... flag is set\r\n\r\nWe shouldn\'t swallow original rejection reason in the promise chain as people still might be interested in the root cause of the pb.', '4', null, null, 'pkozlowski-opensource', '2014-11-29T11:33:37Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('126', '37', '10268', 'Update karma-shared.conf.js', '', '3', null, null, 'hgorbyk', '2014-11-29T17:20:25Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('127', '37', '10269', 'docs($rootElement): 3 minor grammatical errors', 'The third edit (the last sentence) fixed a run-on. You could also break it up into two sentences: \"It is also the location where the application\'s {@link auto.$injector $injector} service gets published. It can be retrieved using `$rootElement.injector()`.\"', '2', null, null, 'PoetsRock', '2014-11-29T22:13:31Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('128', '37', '1027', 'Docs2', '', '0', null, null, 'mhevery', '2012-06-07T23:54:44Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('129', '37', '10270', 'docs($http): fixes grunt warning', 'When you run `grunt package` you get the following warning:\r\n\r\n```\r\nwarn: Dangling Links Found in \"partials/api/ng/service/$http.html\":\r\n - #overriding-the-default-transformations-per-request,\r\n - #overriding-the-default-transformations-per-request\r\n```\r\n\r\nThis change fixes the links, so the warning will no longer appear.', '5', null, null, 'jesselpalmer', '2014-11-30T01:58:27Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('130', '37', '10274', 'fix(ngAria): handle non-string model values', 'Fix for #10212. Compare the string value of the model\r\nso that aria-checked will be properly applied to\r\ntype=radio in the case where the model is a number\r\n\r\nCloses #10212', '14', null, null, 'arbus', '2014-11-30T09:48:21Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('131', '37', '10275', 'fix(ngMock): annotate $RootScopeDecorator', 'Closes #10273', '8', null, null, 'shahata', '2014-11-30T10:02:13Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('132', '37', '10276', 'Fix #10259 (mouseenter in svg template in IE)', 'Fix of issue https://github.com/angular/angular.js/issues/10259', '7', null, null, 'askuzminov', '2014-11-30T11:28:33Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('133', '37', '10277', 'fix(ngMock): explicitly annotate $rootScopeDecorator', 'Ensure $rootScopeDecorator is properly annotated, in order to enable its use in StrictDi tests.\n\nCloses #10273', '6', null, null, 'caitp', '2014-11-30T11:51:40Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('134', '37', '10278', 'fix(numberFilter): numbers rounding to zero shouldn\'t be negative', '@lgalfaso here is a little PR for the numberFilter that doesn\'t aim at changing the current code structure. My goal here was to share tests that I\'ve added while looking at this filter code. IMO it would be good to get them in before doing bigger refactorings on this filter.\r\n\r\nAs a side effect this PR fixes inconsistency in formatting numbers that round to zero.\r\n\r\nOnce again, I\'m not trying to clean up the whole code here but do minimal changes that fixes inconsistencies and bring in more tests. For me the value of this PR is in tests. ', '3', null, null, 'pkozlowski-opensource', '2014-11-30T15:05:30Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('135', '37', '10279', 'docs(tutorial/7 - Routing', '', '4', null, null, 'irfanevrens', '2014-11-30T18:28:42Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('136', '37', '1028', 'Compiler fixes', '', '1', null, null, 'IgorMinar', '2012-06-08T16:19:36Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('137', '37', '10283', 'docs(guide): fix dangling links in \"Accessibility\" section', '', '3', null, null, 'gkalpak', '2014-12-01T13:00:45Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('138', '37', '10284', 'fix (ngPluralize): generate a warning when being asked to use a rule tha...', '...t is not defined\r\n\r\nFollowing discussions in #10207, it seems that the best solution is to use `$log.debug` as it is the only log level that can be disabled in production.', '6', null, null, 'mlaval', '2014-12-01T17:42:58Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('139', '37', '10287', 'fix($parse): Follow Javascript context for unbound functions', 'Use `undefined` as the context when a function is ounbound.\r\nE.g. when executing `foo()()`, then `foo()` is executed using the scope as the context, the function returned by `foo()` will have an `undefined` context', '3', null, null, 'lgalfaso', '2014-12-01T20:19:58Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('140', '37', '10288', 'feat(ngAria): Bind keypress on ng-click w/ optional flag', 'This PR addresses a widespread accessibility issue: when `ng-click` is bound to non-interactive elements such as `<div>` or `<some-button>`, keyboard events are not fired by default even though ngAria dynamically adds `tabindex=\"0\"`. With this change, `keypress` events are dynamically bound alongside `ng-click` as long as ngAria\'s `bindKeypress` option is `true` and `ng-keypress` doesn\'t already exist. \r\n\r\nThis change overrides native DOM behavior in regards to `click` on custom controls like `<div tabIndex=\"0\">` (i.e. they don\'t fire from the keyboard). However, since ngAria adds `tabindex` by default it should further close the loop by eliminating the need to manually bind `ng-keypress`, since this is likely to be forgotten.\r\n\r\nThis is intended to be a starting pointthere may be a better way to accomplish this. It should also be brought up that this implementation only interfaces with `ng-keypress`, not `ng-keyup` or `ng-keydown`. \r\n\r\nRelated to https://github.com/angular/angular.js/issues/9254 ', '17', null, null, 'marcysutton', '2014-12-01T22:49:58Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('141', '37', '10289', 'docs: Change stategy to strategy', 'Changed stategy to strategy', '1', null, null, 'carsonmcdonald', '2014-12-02T00:16:50Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('142', '37', '10290', 'fix(linky): make urls starting with www. into links', 'The filter was not turning urls like starting with `www.` (like `www.example.com`) into links. These changes address that.', '15', null, null, 'chasefleming', '2014-12-02T01:41:32Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('143', '37', '10292', 'feat(ngMocks): cleanup $inject annotations after each test', 'this will help in detecting unannotated functions both in apps and angular core in case only part of the tests are run with strictDi', '16', null, null, 'shahata', '2014-12-02T07:18:00Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('144', '37', '10296', 'docs($compile): recomended spelling', '', '4', null, null, 'darul75', '2014-12-02T17:14:16Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('145', '37', '10297', 'feat(jsonFilter): add optional arg to define custom indentation', null, '10', null, null, 'caitp', '2014-12-02T20:44:17Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('146', '37', '10298', 'docs(ngTransclude): example markup consistency', 'The second of the `<br>` tags used in the example HTML is self-closed but the first is not.', '4', null, null, 'hartz89', '2014-12-02T20:52:54Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('147', '37', '10299', 'fix(ngModelController): always use last commited view value in validators', '...ed\r\n\r\nThis fixes issues where a parser calls $setViewValue. This is a common\r\nstrategy for manipulating the $viewValue while the user is entering\r\ndata into an input field.\r\n\r\nWhen the $viewValue was changed inside the parser, the new viewValue\r\nwould be committed and used for validation. The original parser\r\nhowever would run last and pass the original (outdated) viewValue on\r\nto the validators, which could cause false positives, e.g. for\r\nminlength.\r\n\r\nThis is a regression since 1.3.0-rc.1, caused by https://github.com/angular/angular.js/commit/6046e14bd22491168116e61ffdf5fd3fed5f135c#diff-c244afd8def7f268b16ee91a0341c4b2L2055', '8', null, null, 'Narretz', '2014-12-02T20:57:19Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('148', '37', '10300', 'docs($location): location#hash example', 'The given example is slightly different then functionality. location.hash() only returns the value after a slash and a second hash.', '7', null, null, 'whayler1', '2014-12-02T21:18:04Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('149', '37', '10302', 'docs(guide/Working With CSS): ng-touched/untouched', 'Add description for ng-touched and ng-untouched CSS classes.', '4', null, null, 'philippd', '2014-12-02T21:41:17Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('150', '37', '10303', 'docs(guide/css-styling): form controls are not always input elements', 'People frequently write custom form controls using the `ngModel` directive,\nthis just refactors the text to be more clear that this is possible (imho).\n\n(Feel free to go over this and decide if you like this text better or not)', '3', null, null, 'caitp', '2014-12-02T22:24:14Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('151', '37', '10305', 'docs(runnableExample): Replaces old button with material button', 'This changes the old \'Edit in Plunker\' button with a A-M button. It still needs to be styled.', '3', null, null, 'jesselpalmer', '2014-12-03T04:22:32Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('152', '37', '10308', 'fix($location/$browser): prevent infinite digests when only modifying the hash of a URL', '', '4', null, null, 'petebacondarwin', '2014-12-03T11:01:20Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('153', '37', '10311', 'fix(orderBy): maintain order in array of objects when predicate is not provided', 'In ES262, there are two properties which are used to get a primitive value from an Object:\n\n- valueOf() -- a method which returns a primitive value represented by the Object\n- toString() -- a method which returns a string value representing the Object.\n\nWhen comparing objects using relational operators, the abstract operation ToPrimitive(O, TypeHint) is used,\nwhich will use these methods to retrieve a value.\n\nThis CL emulates the behaviour of ToPrimitive(), and ensures that no ordering occurs if the retrieved value\nis identical.\n\nThis behaviour was previously used for Date objects, however it can be safely made generic as it applies to\nall objects.\n\nCloses #9566\nCloses #9747', '9', null, null, 'caitp', '2014-12-03T18:04:56Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('154', '37', '10313', 'Week formatter fix in date filter (Comply to ISO8601)', 'ISO8601 mandates that a week starts on a Monday, and ends on a Sunday.\r\n\r\nThe test case was on a Friday, and did not show that W3 was returned instead of W2.\r\nhttp://plnkr.co/edit/897MdGDME67aIQmLpzqZ', '7', null, null, 'yannickadam', '2014-12-03T18:55:03Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('155', '37', '10318', 'Roles dynamically added with ngAria', 'To communicate the purpose of custom inputs with a type of `range`, `checkbox` or `radio`, ngAria now dynamically adds roles to custom radio buttons, checkboxes and sliders.\r\n\r\nIt also adds a role of `button` to any element with `ngClick` that is not a `button`, `anchor`, `input` or `textarea` (such as a `div`). This feature comes on the heels of https://github.com/angular/angular.js/pull/10288, which binds the `keypress` event for `ngClick`. With these two changes together, users of assistive technologies will know what they are focused on and be able to operate controls with the keyboard (this is important because `ngAria` dynamically adds `tabIndex=\"0\"` with `ngClick`). However, not all uses of ngClick are used for buttonssometimes developers bind `ng-click` on the document. In this scenario, a role can be overridden by the developer if `button` does not match expected behavior. \r\n\r\nNote: This change does not implement any kind of flag allowing the user to opt out of roles being set. \r\n\r\nCloses https://github.com/angular/angular.js/issues/9254 and https://github.com/angular/angular.js/issues/10012.', '24', null, null, 'marcysutton', '2014-12-04T00:41:00Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('156', '37', '10321', 'V1.2.x', '', '2', null, null, 'duraik3', '2014-12-04T06:58:33Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('157', '37', '10322', 'fix($parse): allow assignment on objects in locals', 'Fixes #4664 \r\n\r\nI saw this issue on the 1.4 list but the fix seems simple...', '32', null, null, 'jbedard', '2014-12-04T10:16:22Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('158', '37', '10327', 'fix(input): create max and/or min validation whatever the initial value is', '- fix issue #10307\r\n- change tests to corresponding changes\r\n- also change tests for ngmax and ngmin (though they have no some issue)\r\n\r\nCloses #10307', '21', null, null, 'Tobyee', '2014-12-04T17:22:22Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('159', '37', '10329', 'fix(ngAnimate): do not use jQuery class API', 'jQeury\'s class API causes problems with SVG elements --- using jqLite in all cases\nprevents issues.\n\n/cc @matsko please review\n\nCloses #10024', '2', null, null, 'caitp', '2014-12-04T18:40:17Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('160', '37', '10330', 'docs(ie): no fixes needed for IE9, but still relevant', 'Closes #10316\r\n\r\nNone of the mentioned fixes are needed anymore, but information on where Angular stands, regarding IE, is still relevant.', '4', null, null, 'madskonradsen', '2014-12-04T20:49:58Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('161', '37', '10331', 'docs($animate): improve formatting of inline code', '', '2', null, null, 'btford', '2014-12-04T20:51:37Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('162', '37', '10334', 'using $window.angular so that we can put angular in no-conflict mode', 'we need to support multiple instances of angular on our page to support an enterprise rollout, where our instance is effectively 3rd party js. To do this we end up setting `$window.angular` to our instance of angular, but `window.angular` is undefined or their instance of angular if they have one. This will throw for us if they don\'t have their own instance of angular (`window.angular` is undefined.) \r\n\r\nIn case you\'re wondering... we are also hijacking `$window` so that when we set `$window.angular` it doesn\'t set `window.angular`\r\n\r\n```javascript\r\n.service(\'$window\', function(){\r\n // angular isn\'t actually wrapping window - so if you set something it is available on window\r\n // this probably has side effects :(\r\n var $window = Object.create(window);\r\n\r\n // angular has some references to itself through window (search for $window.angular.callbacks)\r\n // we want it to use ours not the \"real\" one if there is another one later...\r\n $window.angular = angular;\r\n\r\n // this is sacrificing JSONP with $http but that is ok with us\r\n return $window;\r\n })\r\n```', '8', null, null, 'jhoguet', '2014-12-05T06:00:42Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('163', '37', '10335', 'Remove some content about IE8 and earlier in IE guide doc', 'Remove some content about IE8 and earlier in IE guide doc', '2', null, null, 'poppinlp', '2014-12-05T09:15:46Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('164', '37', '10336', 'refactor(ngAria): DRY camelCase function', 'reuse the camelCase function from jqLite', '6', null, null, 'cironunes', '2014-12-05T11:00:05Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('165', '37', '10337', 'DRY camelcase', 'Instead of two ```camelCase``` methods (one for jqLite and other for ngAria) I\'m suggesting to make the ```camelcase``` method public so that we can don\'t repeat ourselves.', '6', null, null, 'cironunes', '2014-12-05T12:00:48Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('166', '37', '10338', 'refactor(ngAria): DRY camelcase method', '@petebacondarwin I\'m using attr.$normalize as you suggested in https://github.com/angular/angular.js/pull/10337#issuecomment-65783835\r\n\r\nThe problem is that we also need to [normalize the name in the service](https://github.com/cironunes/angular.js/blob/325f609582992730f43d2ccf859bbc9f6d03e6c1/src/ngAria/aria.js#L181). Probably that\'s why the local ```camelCase``` method was created in the first place.\r\n\r\nI still think that we should have a public ```camelcase```as we do with ```lowercase``` and ```uppercase```, but I\'m not sure how to better approach this, what do you think?', '6', null, null, 'cironunes', '2014-12-05T12:55:43Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('167', '37', '10341', 'docs(app): refactor the Docs App based on the MD prototype', 'I incorporated the prototype detailed in https://github.com/gkalpak/angular.js/issues/3.\r\n\r\nThings that are different from the prototype (besides using actual data):\r\n\r\n * The left sidenav (toc) is not styled properly (or even readably).\r\n * Icons are missing (since we are not using FontAwesome). E.g. search-fab, toc-toggle, results\r\n * In the right sidenav (search) there are some unwanted horizontal scrollbars.\r\n (This section probably needs rethinking anyway.)\r\n * I have implemented a `responsiveMenu` directive to show the options in the header-menus\r\n (Learn/Develop/Discuss). The purpose is to show the options in a \"dropdown-ish\" menu on larger\r\n screens and using a BottomSheet on smaller. At the moment a BottomSheet is used on every\r\n screen-size.\r\n\r\nNotes:\r\n\r\n - Still no version-picker and breadcrumbs (I have left the original implementation of those two\r\n commented out).\r\n - I have replaced the previous docs.css with a new one containing the style of the prototype.\r\n I have renamed the old one to `docs_old.css` and left it there temporarily for quick reference.\r\n We need to clean up this and the rest of the old CSS files.\r\n - The main content area is totally unstyled and needs some love (a lot actually).\r\n\r\nI have also \"sprinkled\" the code with a few more TODOs/FIXMEs.\r\n\r\n(For more details on known issues and missing features take a look at\r\n https://github.com/gkalpak/angular.js/issues/3)', '45', null, null, 'gkalpak', '2014-12-05T14:47:12Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('168', '37', '10345', 'docs(compile): document $attrs.$normalize', '', '5', null, null, 'cironunes', '2014-12-05T16:54:01Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('169', '37', '10348', 'WIP: add karma-benchpress support for all benchmarks', 'With this PR, there is a karma test that will run the compiled largetable-bp benchmark in `build/benchmarks` with 1 sample for each variable. The results are just logged to the console with some basic tabbed formatting. Anyone should be able to make this work by the following steps (requires Chrome Canary):\r\n\r\n```shell\r\n$ npm install . (may require removing npm-shrinkwrap.json to get latest benchpress & karma-benchpress dependencies)\r\n$ grunt bp_build\r\n$ karma start karma-benchpress.conf.js\r\n```\r\n\r\nKarma should start up, and should automatically run each benchmark/variable combination in a new incognito window (with other flags set for memory reporting), and should log the results in the process console.\r\n\r\nTODOS for this PR:\r\n * [x] Update shrinkwrap (having trouble figuring out which version of node I should use to generate this properly. Will probably end up hand-coding the changed dependencies.)\r\n * [x] Update remaining benchmarks to new Variables and ready() APIs\r\n * [x] Create tests to run remaining benchmarks with each variable with 25 iterations & 20 samples\r\n * [x] Create jenkins job to run benchmarks on each SHA\r\n * [ ] Squash commits\r\n\r\nTODOS for later:\r\n * Report standard deviation and coefficient of variation back from karma-benchpress. This needs to be fixed in the karma-benchpress framework.\r\n * Push the results to a logging service, along with environment information and other metadata\r\n\r\nWhatever CI server this ends up running on (Jenkins, my workstation), I don\'t think it should be part of the regular angular.js job given how long it would take to run all benchmarks with all variables n times. Ie if the average sample of all steps takes 750ms (made up number, probably not far off), multiply that by number of iterations (25) by number of benchmark variables (33 at present). This would take about 10 minutes for each revision.', '4', null, null, 'jeffbcross', '2014-12-06T00:01:39Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('170', '37', '10351', 'fix($parse): a chain of field accessors should use a single getterFn', 'I caused this in fbad2805703569058a4a860747b0e2d8aee36bdf :unamused:. Essentially `(EXP).a.b.c` should have two nodes `(EXP)` and `.a.b.c`. That commit refactored how `a.b.c` gets tokenized/parsed causing the nodes to be `(EXP)`, `.a`, `.b`, `.c`. This slowed down the field access benchmark ~20%.', '23', null, null, 'jbedard', '2014-12-06T06:18:48Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('171', '37', '10352', 'fix(filter): throw error if not used with an array', 'Throw error if filter is not used with an array.\r\n\r\nCloses #9992\r\n\r\nBREAKING CHANGE: Previously, the filter was not applied if used with a non array.\r\nNow, it throws an error.', '27', null, null, 'Puigcerber', '2014-12-06T17:51:36Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('172', '37', '10353', 'docs(guide/Controllers): Just a typo', 'Gingerbreak would break testing. :)', '5', null, null, 'carusog', '2014-12-06T20:45:32Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('173', '37', '10354', 'feat($templateCache): add support for case insensitive keys', 'Add ability to treat URLs in template cache case insensitive', '12', null, null, 'gregjhogan', '2014-12-06T21:24:50Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('174', '37', '10355', 'fix($parse): ensuring shared sub expressions do not use full expression text', 'This depends on #10351 otherwise some of the changed error messages would be even shorter (tests will probably fail for now showing why...).\r\n\r\nI guess this is debatable but I don\'t think anything shared (just `getterFn`s really...) should reference the `fullExp` which created it when it might be used by other expressions. For example (without this patch):\r\n```\r\n$rootScope.$eval(\'foo.constructor + 123\') => 123\r\n$rootScope.$eval(\'foo.constructor.foo()\', {foo: Function}) => \r\n [$parse:isecfn] Referencing Function in Angular expressions is disallowed! Expression: foo.constructor + 123\r\n```\r\n\r\nThis patch changes it so the shared `getterFn` only references the shared path itself. While seeing the full expression would be nicer at least for now it won\'t be wrong.\r\n\r\nThis was caused by e676d642f5feb8d3ba88944634afb479ba525c36 and also exists in 1.2 from the same security fix.', '14', null, null, 'jbedard', '2014-12-06T21:45:04Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('175', '37', '10356', 'docs(contributing): correct push -f command', '`git push -f` needs branch specification', '3', null, null, 'gregjhogan', '2014-12-07T08:40:05Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('176', '37', '10357', 'fix($http): only parse as JSON when opening/closing brackets match', 'Previously, due to weak JSON-detecting RegExp, string like `[...}` and\r\n`{...]` would be considered JSON (even if they obviously aren\'t) and an\r\nexpection would be thrown while trying to parse them.\r\n\r\nThis commit makes sure the opening and closing brackets match. This\r\ndoesn\'t completely eliminate false positives (e.g. `[]{}[]`), but does\r\nhelp reduce them.\r\n\r\nCloses #10349\r\n\r\n**Note:**\r\nI don\'t consider this to be a breaking change, but if someone expects their app to throw when receiving a response like `\'[...}\'` or `\'{...]\'`, then this PR will break their app.', '16', null, null, 'gkalpak', '2014-12-07T13:08:13Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('177', '37', '10358', 'chore(changelog): add test for addition of trailing newline', 'Adds tests for the functionality added by #9550.\r\n\r\n(As suggested in https://github.com/angular/angular.js/pull/9550#issuecomment-58693007 .)', '10', null, null, 'gkalpak', '2014-12-07T16:16:14Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('178', '37', '10359', 'refactor($http): avoid re-creating execHeaders function', 'The execHeaders function was being re-defined inside mergeHeaders\r\nfunction. Additionally it was mutating its arguments thus making code \r\nharder to read / reason about.\r\n\r\nThere are some other problems with this function (inconsistent treatment for null / undefined headers coming from an object value as compared to being result of a function execution) but let\'s tackle those one by one. ', '5', null, null, 'pkozlowski-opensource', '2014-12-07T18:50:11Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('179', '37', '10360', 'refactor($http): drop superfluous argument to sendReq', 'We don\'t need to pass `reqHeaders` separately - those are already part of a `config` object.', '2', null, null, 'pkozlowski-opensource', '2014-12-07T19:08:44Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('180', '37', '10361', 'refactor($http): avoid using closure vars in serverRequest fn', 'The `serverRequest` function was accessing the `headers` var defined in a closure and \"reusing\" it as a local variable thus making the closure scope bigger and using the same name for 2 different purposes. Hopefully this version of the code is easier to follow.', '2', null, null, 'pkozlowski-opensource', '2014-12-07T19:53:22Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('181', '37', '10363', 'docs(ngView): remove duplicate CSS', 'The CSS had `position: relative` twice. Now it only has it once.', '4', null, null, 'clarkduvall', '2014-12-08T05:49:52Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('182', '37', '10364', 'Update npm-shrinkwrap.json', '', '2', null, null, 'blawblaw', '2014-12-08T08:56:02Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('183', '37', '10365', 'docs(app): update `production` deployment', 'Brought the `production` deployment up-to-date with the rest of the deployments, e.g. removed unused modules, used new `getComponentPath()` function, added Material-specific stuff and FontAwesome.', '1', null, null, 'gkalpak', '2014-12-08T10:13:35Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('184', '37', '10368', 'feat(orderBy): make orderBy filter accept a custom compare function.', 'Expose the inner compare function used by orderBy to the outside world.\r\nThis will make it possible to use orderBy with a very specific sort requirement like sorting using the localeCompare or making a few entries appear first in the list.', '11', null, null, 'Rowanto', '2014-12-08T13:18:50Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('185', '37', '10369', 'refactor($browser): wrap Get(history.state) in try/catch', 'Reportedly, MSIE can throw under certain conditions when fetching this attribute.\n\nWill confirm before landing.\n\nFixes #10367', '25', null, null, 'caitp', '2014-12-08T14:17:25Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('186', '37', '10372', 'docs($interval): correcting example code indentation', 'Example code was off by a level of indentation.', '5', null, null, 'saibotsivad', '2014-12-08T21:12:19Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('187', '37', '10373', 'fix($http) Don\'t try to JSON.stringify FormData objects', 'This won\'t enable FormData uploads in itself, as the Content-Type is automatically set to application/json.', '7', null, null, 'realityking', '2014-12-08T22:29:54Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('188', '37', '10374', 'style(testability): throw a more informative error when getting testability', 'The angular.getTestability method requires an element parameter to determine\r\nwhich Angular application to use. Currently, if the element provided is\r\nundefined or outside of an Angular app, the error message is \'cannot read\r\nproperty get of undefined\'. Improving to a more relevant error message.', '6', null, null, 'juliemr', '2014-12-08T23:37:52Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('189', '37', '10375', 'docs(TRIAGING.md): improve process around `PRs plz!` label', 'We still need to decide on an additional label and add docs for that, but here\'s an initial take on the improved process as a placeholder to track it.\r\n\r\n/cc @IgorMinar @petebacondarwin ', '20', null, null, 'btford', '2014-12-08T23:47:06Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('190', '37', '10376', 'docs(CHANGELOG): add v1.3.6 changes', 'IT CHANGES EVERYTHING', '1', null, null, 'caitp', '2014-12-09T00:08:27Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('191', '37', '10377', 'docs(migration): add end to end upgrade info to migration doc', 'There are a couple of changes to some Protractor tests that need to be made\r\nwhen migrating from AngularJS 1.2 to 1.3 - document these in the migration\r\nguide.\r\n\r\nSee https://github.com/angular/protractor/issues/1480', '5', null, null, 'juliemr', '2014-12-09T01:31:20Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('192', '37', '10379', 'chore(bower/unpublish.sh): add angular-messages and angular-aria', 'The unpublish script was not set to unpublish those packages', '2', null, null, 'caitp', '2014-12-09T02:04:44Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('193', '37', '1038', 'Concept', '', '1', null, null, 'mhevery', '2012-06-11T20:22:22Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('194', '37', '10381', 'fix($parse): making unary +/- operators consistent', 'Fixes #10371\r\n\r\n* makes `+undefined` evaluate as a numeric operator the same as `-undefined`\r\n* allows `+` to be followed by another unary operator like `-` already does\r\n* no longer parses `--i` or `---------i` which were previously parsed as a bunch of negates\r\n\r\nThat last one is a breaking change but I assume not many people use such things. If anyone it is probably people using `--i` and then spending far too much time trying to figure out why the decrement operator isn\'t working right...\r\n\r\nI\'m half tempted to do the opposite change to be more restrictive (make `-` more like `+`) but that would be a bigger breaking change.\r\n\r\nEDIT: this has been changed to no longer be breaking and now only makes unary `+` the same as unary `-`. So everything above is out of date...', '11', null, null, 'jbedard', '2014-12-09T07:53:51Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('195', '37', '10383', 'docs($resource): describe your change...', '', '3', null, null, 'grzim', '2014-12-09T10:14:53Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('196', '37', '10384', 'docs(guide/Expressions): grammar/flow/punctuation', 'This pull request rewords the introductory sentence of the section \"How to benefit from one-time binding\" for greater clarity and consistency, and moves it to the top of the section - before, the introductory sentence was mixed in to the first example, which was ambiguous and harder to read.\r\n\r\nIt also adds colons before each code snippet - there was simply no punctuation before.', '4', null, null, 'brianjscoles', '2014-12-09T14:28:41Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('197', '37', '10386', 'fix(orderBy): do not try to call valueOf/toString on `null`', '8bfeddb5d671017f4a21b8b46334ac816710b143 added changes to make relational operator work as it\nnormally would in JS --- unfortunately, this broke due to my failure to account for typeof null\nbeing \"object\".\n\nThis refactoring attempts to convert object values to primitives still, in a fashion similar to\nthe SortCompare (and subsequently the ToString() algorithm) from ES, in order to account for `null`\nand also simplify code to some degree.\n\nBREAKING CHANGE:\n\nPreviously, if either value being compared in the orderBy comparator was null or undefined, the\norder would not change. Now, this order behaves more like Array.prototype.sort, which by default\npushes `null` behind objects, due to `n` occurring after `[` (the first characters of their\nstringified forms) in ASCII / Unicode. If `toString` is customized, or does not exist, the\nbehaviour is undefined.\n\nCloses #10385', '5', null, null, 'caitp', '2014-12-09T15:48:29Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('198', '37', '10390', 'feat($rootScope): allow passing `locals` argument to $evalAsync', '', '6', null, null, 'shahata', '2014-12-09T21:47:45Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('199', '37', '10391', 'docs(app): removes material icon', 'Removed material icon since we are using FontAwesome temporarily until Angular Material adds icon support.', '1', null, null, 'jesselpalmer', '2014-12-09T23:46:51Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('200', '37', '10392', 'docs(CHANGELOG.md): better group changes in 1.3.6', '', '2', null, null, 'thorn0', '2014-12-10T00:01:34Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('201', '37', '10393', 'docs(app): matches anchor tags to current docs theme', 'Updates the styles for the anchor tags to match the current docs theme.', '4', null, null, 'jesselpalmer', '2014-12-10T00:52:19Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('202', '37', '10396', 'docs(app): adding a mobile first breadcrumb solution', '* added a simple breadcrumb solution that works with all mobile devices.\r\n * just a back to next highest level of api documentation\r\n * could add in some way to show normal breadcrumbs if on desktop, if needed or wanted.\r\n* added in the old version picker to the top of the left sidebar. No styling just yet. Was going to mess with the left sidebar, but wanted to see if you all like it how it is? I think it should be pinned open all the time, unless on mobile which is default for angular-material, from what I have seen.', '2', null, null, 'joshkurz', '2014-12-10T07:46:28Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('203', '37', '10398', 'docs(guide/Animations): (Very) small grammatical change.', 'A (very) small grammatical change to the sentence regarding adding animations through class and ngClass hooks. The sentence didn\'t read right.', '3', null, null, 'dannycallaghan', '2014-12-10T08:09:45Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('204', '37', '104', 'Logs dir', '* creates logs/ and tmp/ dirs with .gitignore files in them\r\n* updates root .gitignore\r\n* adds watchr.rb config file', '0', null, null, 'IgorMinar', '2010-10-29T17:04:04Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('205', '37', '1040', 'fix($location) correct wrong parsing of hash', '', '1', null, null, 'mhevery', '2012-06-12T04:25:16Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('206', '37', '10401', 'fix(filterFilter): filter deep object by string', 'Before #9757 and 1.3.6, filterFilter with string expression used to check object\'s properties recursively. Now it checks only object\'s top level properties, which is a breaking change to existing applications.\r\n\r\nHere is a test that this pull request makes passable.\r\n\r\n```js\r\n it(\'should filter deep object by string\', function() {\r\n var items = [{person: {name: \'Annet\', email: \'annet@example.com\'}},\r\n {person: {name: \'Billy\', email: \'me@billy.com\'}},\r\n {person: {name: \'Joan\', email: {home: \'me@joan.com\', work: \'joan@example.net\'}}}];\r\n expect(filter(items, \'me@joan\').length).toBe(1);\r\n expect(filter(items, \'joan@example\').length).toBe(1);\r\n });\r\n```', '21', null, null, 'shuhei', '2014-12-10T12:00:02Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('207', '37', '10403', 'Testing Github', 'Just me testing github', '3', null, null, 'sshawuk', '2014-12-10T14:02:48Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('208', '37', '10404', 'fix(orderBy): gracefully compare null values', 'v1.3.6 introduces a bug in the compare function.\r\nWhen values of the used predicate are null valueOf is called on null.', '3', null, null, 'richtmat', '2014-12-10T15:18:29Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('209', '37', '10408', 'fix(filterFilter): make `$` match properties on deeper levels as well', 'Closes #10401', '20', null, null, 'gkalpak', '2014-12-11T01:12:32Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('210', '37', '10409', 'docs(select): improve formatting and wording', 'The part about using `select as` and `track by` together was hard to read. And it wasn\'t clear what happens if they\'re used together.', '1', null, null, 'thorn0', '2014-12-11T01:54:08Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('211', '37', '10410', 'docs(app): adds roboto font', 'The Google Material design docs at http://www.google.com/design/spec/style/typography.html state that we should use the font \'Roboto\' for our Typography. I went ahead added the font using @import, but we could also download the fonts and add them to the project. I\'m fine with either way.', '14', null, null, 'jesselpalmer', '2014-12-11T04:24:11Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('212', '37', '10411', 'perf($compile): only re-$interpolate attribute values at link time if changed since compile', 'This makes the added benchmark case\r\n* create step ~3x faster\r\n* create step consumes half the memory (and half the garbage collected on destroy step)\r\n* GC times in all 3 steps are about 30-50% less', '3', null, null, 'jbedard', '2014-12-11T06:35:46Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('213', '37', '10413', 'refactor($interpolate): remove some unnecessary logic, move functions out of closure', 'Moving the functions out actually decreased memory usage 3% in the benchmark added in #10411 (according to benchpress when using chrome with the memory/gc params).', '5', null, null, 'jbedard', '2014-12-11T06:57:59Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('214', '37', '10414', 'perf(ngModel,form): avoid invoking $interpolate for empty/unset values', 'This reduces GC (KB) by ~10% in the added benchmark create step.\r\n\r\nI\'m tempted to add a helper such as `$interpolate.$$eval(exp, scope)` to avoid the ugly duplication. A helper could also be used for spots such as https://github.com/angular/angular.js/blob/master/src/ng/compile.js#L1922 (the helper can pass `mustHaveExpression=true` to avoid creating the interp result function even though it has no interpolation...). Worth it?', '16', null, null, 'jbedard', '2014-12-11T07:41:10Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('215', '37', '10415', 'docs(guide/Forms): added link to input[date] for validation', '', '2', null, null, 'Dr4K4n', '2014-12-11T09:05:11Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('216', '37', '10416', 'chore(CHANGELOG): add breaking change note for #9757', '(As discussed in https://github.com/angular/angular.js/pull/10408#issuecomment-66589845.)', '2', null, null, 'gkalpak', '2014-12-11T13:08:24Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('217', '37', '1042', 'Doc fix', '', '2', null, null, 'mhevery', '2012-06-12T17:37:00Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('218', '37', '10422', 'feat($filter): Display Infinity symbol when number is Infinity', 'Infinity is a value and should not be treated as an empty string\r\n\r\nCloses #10421', '10', null, null, 'QuentinFchx', '2014-12-11T18:11:48Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('219', '37', '10424', 'fix(filterFilter): Fix filtering using an object expression when the filter value is undefined', 'Fixes #10419', '34', null, null, 'caseyhoward', '2014-12-11T18:32:13Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('220', '37', '10427', 'fix(filterFilter): Fix filtering using an object expression when the filter value is undefined', 'Closes #10419 ', '1', null, null, 'caseyhoward', '2014-12-11T22:26:09Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('221', '37', '10429', 'fix($rootScope): ignore properties beginning with `$` in $watchCollection object mode', 'I\'m not too keen on this, I think we want to fix angular.equals() to only ignore double-dollar-signs $$, which would make a lot more sense to do in $watchCollection. Up to you @petebacondarwin.\n\n---\n\nMake behaviour of $watchCollection (for non-ArrayLike objects) consistent with angular.equals, used by $watch when objectEquality flag is set to true.\n\nBREAKING CHANGE:\n\nPreviously, enumerable properties beginning with `$` would be taken into consideration. Now, they are simply ignored.\n\nCloses #10426', '4', null, null, 'caitp', '2014-12-12T03:29:44Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('222', '37', '1043', 'Location bug', '', '4', null, null, 'mhevery', '2012-06-12T20:42:18Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('223', '37', '10430', 'added ng-jq functionality to be able to force jqLite instead of jQuery if present.', 'made it very similar to csp() function as it should be global since angular.element is as well. Added some unit tests around the jq() function, but still missing scenario testing which I need some direction on to complete. This is a first attempt and hoping @mzgol can help out more to finish the contribution to the angular.js codebase.', '8', null, null, 'mboudreau', '2014-12-12T05:59:11Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('224', '37', '10432', 'WIP: perf(ngInclude): cache linkFns for each template', 'This is probably not the best way to do this but here is a working Proof of Concept.\r\n\r\nSee http://www.bennadel.com/blog/2738-using-ngrepeat-with-nginclude-hurts-performance-in-angularjs.htm\r\n\r\nHere is demo: http://plnkr.co/edit/Pf9DVKxNEAZQavcGm7Bu?p=preview', '13', null, null, 'petebacondarwin', '2014-12-12T10:28:17Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('225', '37', '10437', 'fix(filterFilter): let expression object `{$: \'...\'}` also match primitive items', 'Closes #10428', '35', null, null, 'gkalpak', '2014-12-12T16:11:00Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('226', '37', '10440', 'feat($http): pass response status code to data transform functions', 'Fixes #10324\r\nCloses #6734\r\n\r\n@caitp this is an alternative to #6734 discussed today. I\'m still not sure what it the best: to pass status code or just success / error flag (like in #6734). The first approach is more flexible but people will have to duplicate the `isSuccess` \"logic\".', '7', null, null, 'pkozlowski-opensource', '2014-12-12T18:13:42Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('227', '37', '10441', 'remove set child name', 'this line is not relevant to example', '3', null, null, 'djindjic', '2014-12-12T20:26:26Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('228', '37', '10443', 'fix(ngAria): trigger digest on ng-click via keypress, pass $event to expression', 'Minor improvement to ng-click directive from ngAria. Now, if bindings are updated\nduring the click handler, the DOM will be updated as well. Additionally, the $event\nobject is passed in to the expression via locals, as is done for core event directives.\n\nCloses #10442', '8', null, null, 'caitp', '2014-12-12T21:22:38Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('229', '37', '10445', 'docs(dateFilter): fix docs to match implementation for week no formatting', 'The existing documentation claims that dateFilter determines week no\r\naccording to the ISO8601 standard, but this is not the case as illustrated\r\nby tests in this PR. More specifically, the implementation deviates from\r\nISO8601 in 2 important aspects:\r\n- impl assumes Sun to be the first day of a week, ISO8601 mandates Mon\r\n- impl allows weeks 0 (for years starting on Fri, Sat) while ISO8601\r\nwould mark them as a week 52/53 of a previous year.\r\n\r\nFixes #10314\r\nCloses #10313\r\n\r\nThis PR is an alternative approach to the one proposed in #10313. Merging #10313 would introduce a breaking change without assuring full compliance with ISO-8601', '4', null, null, 'pkozlowski-opensource', '2014-12-13T19:41:50Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('230', '37', '10446', 'fix($compile): use createMap() for $$observe listeners when initialized ...', '...from attr interpolation\r\n\r\nThis alternate initialization of `$$observers` was missed in a27d827c22b0b6b3ba6b7495cf4fc338c6934b37.', '20', null, null, 'jbedard', '2014-12-14T00:30:05Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('231', '37', '10447', 'docs(API Reference): Corrected two typos - two missing commas', 'In the ngAnimate section, there were two commas missing from two sentences. This is inconsistent with the grammar used in the rest of the API documentation and made the document (slightly) more difficult to read. The two sentences are shown below, before and after fix:\r\n\r\n1.\r\nBEFORE: \"Once defined the animation can be triggered\"\r\nAFTER: \"Once defined, the animation can be triggered\"\r\n\r\n2.\r\nBEFORE: \"Once registered the animation can be triggered\"\r\nAFTER: \"Once registered, the animation can be triggered\"', '4', null, null, 'teachrdan', '2014-12-14T01:09:31Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('232', '37', '10448', 'docs(Courses): Fix syntax issue in Developer Guide', 'The courses section should use commas between links to differentiate the instances of each link. This improves the clarity of the docs by denoting that there are two separate links on each line.\r\n\r\n![image](https://cloud.githubusercontent.com/assets/6476956/5426166/32049166-82f5-11e4-9e4e-3ffbbc65af70.png)\r\n\r\n\r\n\r\n', '1', null, null, 'wesleysmyth', '2014-12-14T02:24:09Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('233', '37', '10449', 'fix typo', 'Add comma after \"For instance\"\r\n\r\nBefore: For instance to install the Bower command line executable you would do:\r\n\r\nAfter: For instance, to install the Bower command line executable you would do:', '1', null, null, 'ruben1', '2014-12-14T05:12:21Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('234', '37', '1045', 'Extended customizability of $resource', 'Added an option to $resource\'s `action` parameters. The user can define a custom httpConfig and a custom parseResponse function. These allow the user to work with a lot more systems (sending custom headers through action.httpConfig and parsing weird responses with parseResponse).\n\nExample use case. these additions let me use www.parse.com and $resource together easily.\n```javascript\nvar myHttpConfig = { headers: myHeaders }; //Our pre-defined custom headers to use parse.com\nvar ParseResource = $resource(\'https://api.parse.com/1/classes/:class/:id\', {\n class: \'@class\',\n id: \'@id\',\n}, {\n get: { method: \'GET\', httpConfig: myHttpConfig },\n create: { method: \'POST\', httpConfig: myHttpConfig },\n save: { method: \'PUT\', httpConfig: myHttpConfig },\n query: { \n httpConfig: myHttpConfig,\n isArray: true,\n // Parse.com\'s response from a query is stored in response.data.result,\n // a parseResponse function allows us to use this\n parseResponse: function(response) {\n return response.data.result;\n }\n }, \n remove: { method: \'DELETE\', httpConfig: myHttpConfig }\n});\n```\n\nI don\'t know if action.httpConfig and action.parseResponse are the best names, but I think the idea of adding these two simple things adds a lot more flexibility to $resource.\n', '17', null, null, 'ajoslin', '2012-06-12T22:27:15Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('235', '37', '10452', 'docs(Expressions): update diff list between JavaScript and Angular expre...', 'docs(Expressions): update diff list between JavaScript and Angular expressions\r\n\r\nadd paragraphs about function declaration, comma and void operators and\r\nRegExp to the diff list in the beginning of articule\r\n\r\nCloses #10418', '1', null, null, 'Alexsey', '2014-12-14T18:03:17Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('236', '37', '10453', 'docs(API Reference): Fixed missing punctuation', 'Added a period that was missing from the end of the ngMock description.\r\n\r\nBefore: \r\nUse ngMock to inject and mock modules, factories, services and providers within your unit tests\r\n\r\nAfter:\r\nUse ngMock to inject and mock modules, factories, services and providers within your unit tests.', '1', null, null, 'bcbcb', '2014-12-14T18:25:06Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('237', '37', '10454', 'docs(tutorial/index): improve capitalization', 'Improve capitalization in acronyms for better clarity.\r\n\r\nBefore: \"... contains unique ids and image urls for each of the phones\"\r\nAfter: \"... contains unique IDs and image URLs for each of the phone\"\r\n\r\nBefore: \"... request to invalid url\"\r\nAfter: \"... request to invalid URL\"\r\n', '2', null, null, 'alextsg', '2014-12-15T00:07:36Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('238', '37', '10455', 'Fix typo in swipe.js', 'Improper use of comma', '3', null, null, 'essamjoubori', '2014-12-15T01:32:12Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('239', '37', '10456', 'docs($templateRequest): Fixed run-on sentence', 'The description of $templateRequest contains a run-on sentence that makes it confusing to understand.\r\n\r\nORGINAL: If the HTTP request fails or the response data of the HTTP request is empty then a `$compile` error will be thrown (the exception can be thwarted by setting the 2nd parameter of the function to true).\r\n\r\nNEW: If the HTTP request fails or the response data of the HTTP request is empty, a `$compile` error will be thrown (the exception can be thwarted by setting the 2nd parameter of the function to true).', '1', null, null, 'chikeichan', '2014-12-15T05:13:43Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('240', '37', '10457', 'docs(angular.identity): Fixed ngdoc', 'Added @param and @returns so identity documentation matches other function documentation. This fix is for consistency across the documentation.', '3', null, null, 'zdlopez', '2014-12-15T05:37:29Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('241', '37', '10458', 'docs(guide/E2E Testing): Added \'-\' to \'end-to-end\'', 'E2E Testing is generally spelled out as End-to-end testing in the community, but is referred to as end to end testing in the documentation. I have updated all instances of \'end to end\' to \'end-to-end\'. This should align the documentation with what\'s generally accepted in the community.\r\n\r\nCHANGES 1: In the past, <i>end-to-end</i> testing could be done with a...\r\nCHANGES 2: <i>End-to-end</i> tests are made to find these problems.\r\nCHANGES 3: Protractor is a [Node.js](http://nodejs.org) program, and runs <i>end-to-end</i> tests that are...\r\nCHANGES 4: (For example, {@link $http $http} has an <i>end-to-end</i> test in the example under the `protractor.js` tag)', '1', null, null, 'chikeichan', '2014-12-15T08:21:00Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('242', '37', '10459', 'docs(angular.copy): Grammar correction', 'Add a \"s\" after \"for array\" in parentheses \r\n\r\nBefore: If a destination is provided, all of its elements (for array) or properties (for objects)\r\n\r\nAfter: If a destination is provided, all of its elements (for arrays) or properties (for objects)', '3', null, null, 'toddskinner', '2014-12-15T09:14:51Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('243', '37', '1046', 'Support to use XDomainRequest in $http requests', 'A new config param that makes IE use XDomainRequest instead of XMLHttpRequest. Useful to use CORS', '2', null, null, 'ricardohbin', '2012-06-13T00:01:57Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('244', '37', '10460', 'docs(error/badname): Fixed Grammatical Error', 'In badname.ngdoc, the phrase \'in a context where it is not allow\' is changed to \'in a context where it is not allowed\'. The grammatical error made this document slightly confusing.\r\n\r\nFIX: Occurs when you try to use the name `hasOwnProperty` in a context where it is not allowed.', '1', null, null, 'chikeichan', '2014-12-15T09:24:47Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('245', '37', '10466', 'docs(tutorial/step_08): fix capitalization', 'Fix capitalization in acronyms to improve language accuracy.\r\n\r\nBEFORE: \"... directory also contains one json file for each\"\r\nAFTER: \"... directory also contains one JSON file for each\"\r\n\r\nBEFORE: \"... service to fetch the json files\"\r\nAFTER: \"... service to fetch the JSON files\"', '1', null, null, 'alextsg', '2014-12-15T15:39:11Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('246', '37', '10467', 'feat($compile): allow using bindToController as object, support both new/isolate scopes', 'bindToController is now able to be specified as a convenient object notation:\n\n```\nbindToController: {\n text: \'@text\',\n obj: \'=obj\',\n expr: \'&expr\'\n},\nscope: {\n notBoundToCtrl: \'@someOtherAttr\'\n}\n```\n\nIt can also be used in conjunction with new scopes, rather than exclusively isolate scopes:\n\n```\nbindToController: {\n text: \'@text\',\n obj: \'=obj\',\n expr: \'&expr\'\n},\nscope: true\n```\n\nPING @petebacondarwin / @johnlindquist\n\nI am not super keen on this, because it makes things much crazier than they used to be. That said:\n\n- Currently, `bindToController` does not automatically imply an isolate scope --- maybe it should (I hate this though)\n- It could probably do with more errors being thrown when people use it wrong\n- The errors it does throw could be better\n- The errors it throws are potentially breaking changes :(\n\nCloses #10420', '51', null, null, 'caitp', '2014-12-15T17:35:33Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('247', '37', '10468', 'docs(angular.fromJson): Replace the word \"Thingy\"', 'Replace the word \"thingy\" with \"JSON string\" to specify what thingy means.', '1', null, null, 'chikeichan', '2014-12-15T17:57:15Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('248', '37', '1047', 'config.useXDomain to use XDomainRequest/CORS in IE', 'A new config param to use with $http. When true, IE uses XDomainRequest instead of XMLHttpRequest, useful to use CORS', '54', null, null, 'ricardohbin', '2012-06-13T00:13:04Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('249', '37', '10470', 'fix(form): ignore properties in prototype chain in $error', 'Closes #10469', '3', null, null, 'caitp', '2014-12-15T22:00:38Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('250', '37', '10472', 'docs(guide/Scopes): Fixed capitalization', 'This sentence should begin with a capital \'R\', not a lower case one.', '5', null, null, 'jacksonhoose', '2014-12-15T22:04:20Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('251', '37', '10473', 'docs(error/badcfg): added missing \"but\"', 'Sentence meaning was unclear; added what I assumed should have been a \"but\"', '3', null, null, 'jkingsman', '2014-12-15T22:34:13Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('252', '37', '10474', 'refactor(orderBy): remove unneeded function wrapping', 'Remove unneeded anonymous function wrap', '3', null, null, 'kwypchlo', '2014-12-15T23:48:23Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('253', '37', '10475', 'perf(limitTo): replace for loop with slice', 'By replacing ```for``` loop with a slice we get a microscopic (but still :) ) performance boost while additional ```limit``` makes sure that if limit is ```0``` or ```NaN``` the function will return empty array.', '3', null, null, 'kwypchlo', '2014-12-15T23:50:56Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('254', '37', '10476', 'fix(CHANGELOG): missing version number for 1.2.28', 'Well, the version number was missing there.', '3', null, null, 'Foxandxss', '2014-12-15T23:52:03Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('255', '37', '10477', 'fix($aria): pass $event in locals for ngClick', 'pass <code>event</code> in <code>locals</code> for <code>$eval</code>\r\nThis happens in <code>angular-bootstrap</code>\'s repo for modals\r\n```javascript\r\nng-click=\"close($event)\"\r\n```\r\n\r\n```javascript\r\nangular.module(\"template/modal/window.html\", []).run([\"$templateCache\", function($templateCache) {\r\n $templateCache.put(\"template/modal/window.html\",\r\n \"<div tabindex=\\\"-1\\\" role=\\\"dialog\\\" class=\\\"modal fade\\\" ng-class=\\\"{in: animate}\\\" ng-style=\\\"{\'z-index\': 1050 + index*10, display: \'block\'}\\\" ng-click=\\\"close($event)\\\">\\n\" +\r\n \" <div class=\\\"modal-dialog\\\" ng-class=\\\"{\'modal-sm\': size == \'sm\', \'modal-lg\': size == \'lg\'}\\\"><div class=\\\"modal-content\\\" modal-transclude></div></div>\\n\" +\r\n \"</div>\");\r\n}]);\r\n```', '2', null, null, 'gdi2290', '2014-12-16T01:30:45Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('256', '37', '10478', 'docs(guide/Unit Testing): tighter English', 'Leaner, more forceful style. \r\n\r\nFixes a grammatical problems with subject number doesn\'t agrees with the verb. (originally \"We have built many features into\r\nAngular which makes...\", which reduces to \"features...which makes\"). \r\n\r\nMore authoritative use of commas, such as the Oxford comma in lists of three or more. \r\n\r\nSentences that are sentences, not fragments. (Yes, that was a fragment just now. I\'m not writing docs now that reflect the polish of the project.)\r\n\r\nThe English grammatical/stylistic notion of parallelism. \r\n\r\nEtc. This is just polish. The ideas are fine.', '8', null, null, 'mcknell', '2014-12-16T02:08:32Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('257', '37', '10480', 'Correct a grammatical error', 'Sentence was confusing. Made it clearer by adding a comma', '2', null, null, 'kxprim', '2014-12-16T06:02:11Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('258', '37', '10481', 'Correct grammatical error', 'The sentence was broken up. Deleted superfluous comma.', '1', null, null, 'kxprim', '2014-12-16T06:10:22Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('259', '37', '10482', 'Add a period', 'Sentence was very long and confusing. Added a period.', '1', null, null, 'kxprim', '2014-12-16T06:20:09Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('260', '37', '10485', 'docs(CHANGELOG): missing version number added', '', '2', null, null, 'micellius', '2014-12-16T11:30:39Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('261', '37', '10486', 'Fixed erroneous code sample (missing parameter)', '', '5', null, null, 'lolmaus', '2014-12-16T13:01:36Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('262', '37', '10490', '(cherry-pick) fix($browser): prevent infinite digests when clearing the hash of a url', 'By using `location.hash` to update the current browser location when only\r\nthe hash has changed, we prevent the browser from attempting to reload.\r\n\r\nCloses #9629\r\nCloses #9635\r\nCloses #10228\r\nCloses #10308', '5', null, null, 'jeffbcross', '2014-12-17T05:07:44Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('263', '37', '10492', 'adds data to info so that it can be monitored from outside world', 'There\'s no way to see what\'s inside a $cacheFactory instance. Using `.info()` you can see the size but no way to see how big is the actual cache in terms of size.', '3', null, null, 'gercheq', '2014-12-17T07:57:29Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('264', '37', '10493', 'docs($httpBackend): Grammar correction - Add a \"s\"', 'Add a \"s\" to the word \"control\" in line 1279 to follow proper grammatical rules.\r\n\r\nBefore: Returns an object with `respond` method that control how a matched request is handled.\r\n\r\nAfter: Returns an object with `respond` method that controls how a matched request is handled.', '1', null, null, 'toddskinner', '2014-12-17T09:07:52Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('265', '37', '10494', 'docs($httpBackend): Grammar correction - Add a \"s\"', 'Add a \"s\" to the word \"control\" in line 1293 to follow proper grammatical rules.\r\n\r\nBefore: \"Returns an object with `respond` method that control how a matched request is handled.\"\r\n\r\nAfter: \"Returns an object with `respond` method that controls how a matched request is handled.\"', '1', null, null, 'toddskinner', '2014-12-17T09:10:37Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('266', '37', '10495', 'docs($httpBackend): Grammar correction - Add a \"s\"', 'Add a \"s\" to the word \"control\" to change it to \"controls\" in lines 1408, 1422, 1436, 1453, 1470, 1487, 1500 to follow proper grammatical rules. Same exact correction to the same exact sentence and word for all lines listed above. Important change to ensure the documentation follows proper grammatical rules. Also changes these lines to match the same sentence used earlier in the doc on line 1236 to provide consistency in grammar.\r\n\r\nBefore: \"Returns an object with `respond` method that control how a matched request is handled.\"\r\n\r\nAfter: \"Returns an object with `respond` method that controls how a matched request is handled.\"', '3', null, null, 'toddskinner', '2014-12-17T09:18:31Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('267', '37', '10496', 'docs($httpBackend): Grammar correction - Add a \"s\"', 'Add a \"s\" to the word \"control\" to change it to \"controls\" in lines 1279, 1293, 1307, 1323, 1339, 1352, 1373, 1408, 1422, 1436, 1453, 1470, 1487, 1500 to follow proper grammatical rules. Same exact correction to the same exact sentence and word for all lines listed above. Important change to ensure the documentation follows proper grammatical rules. Also changes these lines to match the same sentence used earlier in the doc on line 1236 to provide consistency in grammar.\r\n\r\nBefore: \"Returns an object with respond method that control how a matched request is handled.\"\r\n\r\nAfter: \"Returns an object with respond method that controls how a matched request is handled.\"', '1', null, null, 'toddskinner', '2014-12-17T09:57:53Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('268', '37', '10497', 'test(browser): change mock location definition to use defineProperty', 'The original fix for which this mock location logic was written fixes\r\na bug in master which also exists in 1.2.x. Cherry-picking the fix\r\nto the 1.2.x branch was difficult because the mock location object\r\nused ES5 get/set syntax, which is not supported in IE8.\r\n\r\nThis fix changes the implementation to work with IE8 and modern\r\nbrowsers.\r\n\r\nIE8\'s defineProperty only works on certain types of objects, such as\r\nDOM elements. So the mock location is a div element in this\r\nimplementation.', '3', null, null, 'jeffbcross', '2014-12-17T10:01:14Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('269', '37', '10498', 'docs($animate): misleading $animate.cancel example', 'The given example is wrong, you can\'t cancel promise returned by \"then\" but you can do it for promise returned by \"addClass\".', '9', null, null, 'olexme', '2014-12-17T10:07:59Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('270', '37', '10500', 'Doc: Clear understanding of submitting issues', 'This change helps to make it more clear as to how a contributor will be helping the development cycles when submitting bugs and issues.', '5', null, null, 'pertrai1', '2014-12-17T11:12:24Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('271', '37', '10502', 'fix($compile): respect return value from controller constructor', 'The return value of the controller constructor is now respected in all cases.\n\nIf controllerAs is used, the controller will be re-bound to scope. If bindToController is used, the previous binding $watches (if any) will be unwatched, and bindings re-installed on the new controller.\n\nBlocked on #10467 --- This potentially results in leaks and performance regressions, good review is needed here.', '15', null, null, 'caitp', '2014-12-17T15:08:28Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('272', '37', '10504', 'docs(tutorial/12 - Applying Animations): Fix path to jquery in bower', '', '3', null, null, 'operatino', '2014-12-17T16:33:17Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('273', '37', '10507', 'feat(angular.extend) - Simple non-breaking change to support deep extend', 'People use `angular.extend()` as a utility function, whether or not it\'s designed for that purpose. It can easily be extended to support recursive merging with very very minor additions. Developers coming to Angular expect `extend()` to support this.', '34', null, null, 'prettycode', '2014-12-17T18:01:57Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('274', '37', '10510', 'feat(limitTo): ignore limit when undefined', 'BREAKING CHANGE: limitTo changed behavoir when limit value is undefined.\r\nInstead of returning empty object/array it returns non-changed input.\r\n\r\nCloses #10484', '14', null, null, 'marcin-wosinek', '2014-12-17T23:26:38Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('275', '37', '10511', 'docs(guide): Fixed typo.', '', '3', null, null, 'evoluteur', '2014-12-18T05:57:41Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('276', '37', '10513', 'Book for AngularJS application development', 'This book explores the AngularJS features that can help a developer for building a responsive application.', '5', null, null, 'saan1984', '2014-12-18T11:20:11Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('277', '37', '10516', 'fix(orderBy): compare timestamps when sorting date objects', 'Fixes #10512', '3', null, null, 'pkozlowski-opensource', '2014-12-18T18:18:05Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('278', '37', '10517', 'Typo Fix', 'I changed the word \"into\" to \"within\".\r\nOriginal description underneath ngAnimate reads: \"Use ngAnimate to enable animation features into your application\".\r\nI changed the text to read: \"Use ngAnimate to enable animation features within your application\".\r\nThe change in wording makes the description read better and gives it a more professional feel.', '3', null, null, 'SunJieMing', '2014-12-18T18:44:06Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('279', '37', '10519', 'feat(extend): optionally deep-extend when last parameter is `true`', 'Same as #10507 but with my review comments addressed and jscs fixed.\n\nSomeone quickly review this so we can land it :<', '20', null, null, 'caitp', '2014-12-18T21:55:16Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('280', '37', '10525', 'feat($time): create time service', 'Add simple $time service to allow easier mocking dates in applications.\r\n\r\nCloses #10402', '32', null, null, 'marcin-wosinek', '2014-12-19T10:36:50Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('281', '37', '10526', 'docs(guide/Developer Guide): Link to starter options', 'Add a link to a spreadsheet comparison of generators, examples, tutorials and seeds that one can use for starting a new Angular project.', '2', null, null, 'dancancro', '2014-12-19T12:56:07Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('282', '37', '1053', 'Move $injector into the providerCache.', 'Better than special-casing \'$injector\' in createInjector.', '8', null, null, 'taralx', '2012-06-13T20:39:09Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('283', '37', '10530', 'ng-cookies', 'This is an initial suggestion for dealing with the current issues with angular cookies. The main things added by this:\r\n 1. An `options` parameter was added to `$cookieStore.put()` which supports passing `path`, `domain`, `expires` and `secure` parameters.\r\n 2. `$cookieStore` was refactored so it will use `$browser.cookies()` directly instead of going through `$cookies`. This was in order to allow direct update/read of cookies instead of going through polling/digest mechanism.\r\n 2. `$cookies` was deprecated in order to stop using the polling/digest mechanism and instead `getRaw`, `getAll` and `putRaw` methods were added to `$cookieStore` in order to accommodate some of the stuff that were previously available only when using `$cookies`\r\n\r\nThis is obviously just my take on this and completely open for discussion.\r\n\r\nSome open issues:\r\n 1. The cookie setting logic is currently located in `$browser` although it is not used internally by angular (angular only uses the cookie reading logic for `XSRF-TOKEN`). It might be better to just move it into `ngCookies`. On the other hand maybe it should be left in `$browser` for balance, I don\'t know.\r\n 2. Theoretically it is possible to leave `$cookies` alive and make its properties getters/setters using `Object.defineProperty` (assuming everyone else agrees that polling/digest mechanism is bad), but we would still need some sort of polling for learning about new cookies. I think we\'d better just deprecate it.\r\n 3. I\'m somewhat uncomfortable with the `getRaw`/`get` and `putRaw`/`put` duplication. Another option can be to use something like `isJsonLike` in `$http` or add a flag to `get`/`put` or use `try`/`catch` or maybe even configure this behavior in a `$cookieStoreProvider`, but I don\'t like it very much. Since `getRaw`/`putRaw` are consistent with `getAll` (which must be raw imo), I like this option best.\r\n 4. Might be good to add a `$cookieStoreProvider` in order to give better defaults for options, I dunno.', '33', null, null, 'shahata', '2014-12-19T18:55:51Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('284', '37', '10534', 'docs($http): Fix typo', 'Fix a small typo in the description of request and response transformers', '0', null, null, 'leticialozano', '2014-12-19T23:49:04Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('285', '37', '10535', 'perf(ngStyleDirective): use $watchCollection', '', '0', null, null, 'gdi2290', '2014-12-20T01:10:09Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('286', '37', '10537', 'refactor(limitTo): no need for all those checks if we use slice', '', '1', null, null, 'shahata', '2014-12-20T16:05:57Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('287', '37', '10538', 'fix(ngRepeat): do not sort object keys alphabetically', 'BREAKING CHANGE:\n\nPreviously, the order of object properties was consistent and simple. Now, it\'s not guaranteed to\nbe any particular order at all.\n\nThe best approach is to convert Objects into Arrays by a filter such as https://github.com/petebacondarwin/angular-toArrayFilter\nor some other mechanism, and then sort them manually in the order you need.\n\nCloses #6210', '14', null, null, 'caitp', '2014-12-20T16:13:08Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('288', '37', '10539', 'docs(guide): Fixed spaces.', '', '0', null, null, 'evoluteur', '2014-12-21T10:46:57Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('289', '37', '10543', 'fix(dateFilter): ignore era format specifier \"G\"', 'The era format specifier is not supported in our locale code and is being\r\npassed through as the letter G in some long date formats, such as Thai (th-th).\r\n\r\nIt is not straightforward to provide locale specific era formatting since\r\nthe logic is calendar (locale) specific and not provided by the Google\r\nclosure library.\r\n\r\nThis commit simply ignores the G in format strings until we can work out\r\na better strategy for dealing with eras.\r\n\r\nCloses #10503', '7', null, null, 'petebacondarwin', '2014-12-21T23:57:05Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('290', '37', '10547', 'Add \'the\' to a sentence', 'The sentence was missing a definite article so was unclear. Added one to clarify.', '1', null, null, 'kxprim', '2014-12-22T07:03:30Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('291', '37', '10548', 'feat(filterFilter): compare object with custom `toString()` to primitive', 'Closes #10464', '10', null, null, 'm7r', '2014-12-22T08:55:26Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('292', '37', '10551', 'Fix spelling mistake and grammar correction #10550', 'Fixed spelling mistake and grammar correction #10550 ', '1', null, null, 'gokulkrishh', '2014-12-22T11:54:14Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('293', '37', '10552', 'Fix spelling mistake and grammar correction', 'Fixed Spelling and grammar mistakes #10550', '5', null, null, 'gokulkrishh', '2014-12-22T12:14:34Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('294', '37', '10554', 'Update index.ngdoc fix grammar', 'Update index.ngdoc to fix grammar for parallelism. Expressions separated by commas should be structured similarly, and in this case the verbs of each of those expressions refer to \"catalog\". The catalog does not view details, but presents them.\r\n\r\nBEFORE: \"... catalog that displays a list of Android devices, lets you filter the list to see only devices that interest you, and then view details...\"\r\nAFTER: \"... catalog that displays a list of Android devices, lets you filter the list to see only devices that interest you, and then presents details...\"', '3', null, null, 'alextsg', '2014-12-22T23:02:22Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('295', '37', '10555', 'docs(css): Fixed \"close\" button position and size.', 'When the browser is not very wide and you click on \"Show/hide toc\", the close button was on top of the title...', '0', null, null, 'evoluteur', '2014-12-22T23:32:55Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('296', '37', '10557', 'translate services into chinese', 'docs $services\r\n\r\ntranslate services document to chinese\r\n\r\n', '4', null, null, 'jwmu', '2014-12-23T03:22:00Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('297', '37', '10561', 'chore: add .gitattributes file', 'Specify line endings for Windows builds.\r\n\r\nCloses #10431', '5', null, null, 'FarSeeing', '2014-12-23T12:23:52Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('298', '37', '10562', 'Angular V1.2.x', '', '3', null, null, 'ravikrali', '2014-12-23T14:03:02Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('299', '37', '10563', 'fix($exceptionHandlerProvider): call `inject()` to run tests', 'In the current angular-mocksSpec, the tests for $exceptionHandlerProvider\r\ncall `module` to run tests on `$exceptionHandlerProvider.mode()`, but do\r\nnot call `inject()` to pump the module definitions.', '5', null, null, 'DavidSouther', '2014-12-23T15:13:31Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('300', '37', '10564', 'feat($exceptionHandlerProvider): add mode `logAndRethrow`', 'Mode `logAndRethrow` captures the logged exception for later inspection by test\r\nassertions, while also throwing the exception for when the implementation\r\ndepends on thrown behavior (eg leaving the method early).\r\n\r\nDepends on #10563\r\nCloses #10540', '9', null, null, 'DavidSouther', '2014-12-23T15:23:42Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('301', '37', '10566', 'refactor(minErr): improve minification, remove a \"magic number\" and needless variables', '', '0', null, null, 'LeonardoBraga', '2014-12-24T02:33:51Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('302', '37', '10567', 'docs(guide/Directives): data from isolate to parent scope', 'It looks like this used to be in the Angular docs as per this thread: https://groups.google.com/d/msg/angular/3CHdR_THaNw/AxqKwUw5t0oJ I recently spent some time trying to get this to work and was very frustrated by lack of documentation. I tried to tie this into the existing &attr example but let me know if that is not desirable.', '2', null, null, 'toastynerd', '2014-12-24T02:33:57Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('303', '37', '1057', 'Fixed booleanAttrs to sync model.', 'Current booleanAttrs can\'t sync model when asserted.\n\nUsing link instead of compile to fix this issue.', '9', null, null, 'floydwch', '2012-06-15T13:44:45Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('304', '37', '10571', 'docs($http): adds missing markdown formatter (backtick)', 'adds missing markdown formatter (backtick)', '4', null, null, 'OKNoah', '2014-12-24T21:55:29Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('305', '37', '10573', 'docs(app): adds hr', '', '0', null, null, 'jesselpalmer', '2014-12-25T02:41:04Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('306', '37', '10574', 'docs(app): adds border', 'Adds a border to the top of the h2 like the current docs app.', '0', null, null, 'jesselpalmer', '2014-12-25T02:44:14Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('307', '37', '10576', 'Screening colon in given path.', 'For example path \"/\\:foo/:bar\" returns only \"bar\" variable', '1', null, null, 'stervets', '2014-12-25T10:56:06Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('308', '37', '10577', 'Screening colon in given path.', 'For example path \"/\\:foo/:bar\" returns only \"bar\" variable', '1', null, null, 'stervets', '2014-12-25T12:05:19Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('309', '37', '10579', 'refactor(ngScenario/ObjectModel.js): use Date.now() to get current Time', 'http://jsperf.com/date-now-vs-new-date-gettime/11', '10', null, null, 'HAKASHUN', '2014-12-26T08:20:45Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('310', '37', '10581', 'docs(tutorial/6 - Templating Links', 'Using expect(url.split(\'#\')[1]).toBe(\'/phones/nexus-s\') gives an error when you run e2e test. But works well when expect(url.split(\'#\')[0]).toBe(\'/phones/nexus-s\'); is used', '5', null, null, 'jowusu837', '2014-12-26T16:05:36Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('311', '37', '10582', 'docs($compile) fix a typo', 'Remove unnecessary \'and\' in $compile docs.', '0', null, null, 'ccschmitz', '2014-12-26T16:40:07Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('312', '37', '10584', 'docs(guide/modules): fix typos', '', '0', null, null, 'mjfroehlich', '2014-12-27T03:28:29Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('313', '37', '10585', 'feat($logProvider): add additional control over what gets logged', 'A simple addition that lets developers have greater control over what does and doesn\'t get logged. With this change you can disable log, info, warn and error messages, similar to how debug logs could be disable with $logProvider.debugEnabled in the past.\r\n\r\nCloses #10560', '3', null, null, 'akyri', '2014-12-27T08:22:27Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('314', '37', '10587', 'docs(tutorial/7 - Routing): correct typos', 'I corrected several typos (e.g., missing commas) in the document. I believe these corrections would enhance readers\' experience with the document.', '3', null, null, 'kchia', '2014-12-27T19:30:55Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('315', '37', '10589', 'chore($cache): do not add entry to LRU hash when value is undefined', 'When adding entries to the cache and the `value` is `undefined`, no entry should be added to the `lruHash`\r\n\r\nThere is no way to create a unit test as we do not expose these inner structures', '2', null, null, 'lgalfaso', '2014-12-28T15:43:52Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('316', '37', '10591', 'refactor(*): rename internal function `int` to `toInt`', 'Renamed the internal function `int` to `toInt` as `int` is a reserved word\r\n\r\nCloses #7768', '1', null, null, 'lgalfaso', '2014-12-28T19:35:38Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('317', '37', '10592', 'refactor($parse): new and faster $parse', 'Change the way parse works from the old mechanism to a multiple stages\r\nparsing and code generation. The new parse is a four stages parsing\r\n* Lexer\r\n* AST building\r\n* AST processing\r\n* Cacheing, one-time binding and `$watch` optimizations\r\n\r\nThe Lexer phase remains unchanged.\r\n\r\nAST building phase follows Mozilla Parse API [1] and generates an AST that is compatible. The only exception was needed for `filters` as JavaScript does not support filters, in this case, a filter is transformed into a `CallExpression` that has an extra property named `filter` with the value of `true`. This phase is heavily based on the previous implementation of `$parse`.\r\n\r\nThe AST processing phase transforms the AST into a function that can be executed to evaluate the expression. The logic for expressions remains unchanged. The AST processing phase works in two different ways depending if csp is enabled or disabled. If csp is enabled, the processing phase returns pre-generated function that interpret specific parts of the AST.\r\nWhen csp is disabled, then the entire expression is compiled into a single function that is later evaluated using `Function`. In both cases, the returning function has the properties `constant`, `literal` and `inputs` as in the previous implementation. These are used in the next phase to perform different optimizations.\r\n\r\nThe cacheing, one-time binding and `$watch` optimizations phase remains mostly unchanged.\r\n\r\n[1] https://developer.mozilla.org/en-US/docs/Mozilla/Projects/SpiderMonkey/Parser_API', '64', null, null, 'lgalfaso', '2014-12-28T21:15:53Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('318', '37', '10593', 'docs(misc/FAQ): editing, grammatical improvements', '-Non-idiomatic use of an expression \"from the ground up\".\r\n-Missing commas.', '0', null, null, 'sdtsui', '2014-12-29T10:48:56Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('319', '37', '10594', 'docs(ngInclude): describe your change...', 'Using obsolete tt HTML tag may not be good for Angular examples', '7', null, null, 'rus0000', '2014-12-29T12:59:17Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('320', '37', '10601', 'refactor(minErr): code cleanup', 'Removes a \"magic number\" (2) used multiple times in the code.\r\nRemoves unnecessary variables \"arg\" and \"prefix\".\r\nRemoved a condition within the \"for\" loop that generates query string parameters.\r\nAdds a test case to ensure URL parameters are generated as expected.', '9', null, null, 'LeonardoBraga', '2014-12-30T01:54:09Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('321', '37', '10602', 'refact($SnifferProvider): use existing var \"bodyStyle\" instead of doc.body.style', '', '7', null, null, 'LeonardoBraga', '2014-12-30T04:45:17Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('322', '37', '10603', 'docs($templateRequest): fix \"returns\" description to match code', 'The returned promise contains only the response *data*, not the whole response (as seen in line 46).', '0', null, null, 'rluba', '2014-12-30T06:54:58Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('323', '37', '10605', 'chore: borrow .gitattributes file from jQuery', 'Specify line endings for Windows builds.\r\n\r\nCloses #10431', '0', null, null, 'FarSeeing', '2014-12-30T16:16:27Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('324', '37', '10606', 'chore(build): modify travis build to use docker', 'Change travis configuration so it would use Docker [1]\r\n\r\n[1] http://blog.travis-ci.com/2014-12-17-faster-builds-with-container-based-infrastructure/', '1', null, null, 'lgalfaso', '2014-12-30T17:19:30Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('325', '37', '10608', 'chore(travis): increase `browserDisconnectTolerance` to 5', 'Increate `browserDisconnectTolerance` to 5 to make Travis happier\r\n\r\nNote: I know this is not a real solution :(', '0', null, null, 'lgalfaso', '2014-12-30T19:30:51Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('326', '37', '10611', 'test($http): remove unused inject() calls', 'Minor tests cleanups....', '1', null, null, 'pkozlowski-opensource', '2014-12-31T13:38:16Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('327', '37', '10615', 'docs(tutorial/0 - Bootstrapping): Remind users to refresh page', 'On line 32-34 after reverting to step-0 and starting the webserver, the browser may have already cached the master branch of the app and the user will see the master version in their browser. I just added a reminder to tell them to refresh the page if this happens!', '3', null, null, 'anyong', '2015-01-01T10:14:49Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('328', '37', '10618', 'fix(jqLite): properly handle dash-delimited node names in `jqLiteBuildFragment`', 'Closes #10617', '3', null, null, 'gkalpak', '2015-01-02T11:51:41Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('329', '37', '10619', 'fix(jqLite): Adding more support for custom element tagnames', 'Before this change, jqLite would allow you to create elements such as\r\n\"my-foo\" and \"div-foo\" but would not allow you to create certain\r\nelements such as \"tr-foo\" and \"td-foo\". This is incorrect as well as\r\nundocumented and unexpected.', '20', null, null, 'richardaday', '2015-01-02T12:17:57Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('330', '37', '1062', 'fix($location): url rewriting if element was removed', 'When user clicks a link, $location needs to intercept this event. The <a> doesn\'t have to be target element of the DOM event, so it needs to traverse the DOM, to find first <a> parent.\n\nIf the target element was removed from DOM, during the same event, it would throw an exception. This fixes the issue.\n\nCloses #1058', '0', null, null, 'vojtajina', '2012-06-16T20:12:31Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('331', '37', '10620', 'chore(travis): update browsers to the latest version', 'Update the used browsers to the latest versions available', '4', null, null, 'lgalfaso', '2015-01-02T15:30:06Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('332', '37', '10621', 'fix(filterFilter): do not filter objects properly in case a property is an array', 'In JavaScript, an array is a special type of object, therefore typeof [] returns object.\r\nAdded corresponding unit tests.\r\nChanged condition for array type to isArray.', '3', null, null, 'fealaer', '2015-01-02T16:34:36Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('333', '37', '10622', 'feat($http): provide a config object as an argument to header functions', 'This is a cleaned up / alternative version for #7235', '16', null, null, 'pkozlowski-opensource', '2015-01-02T17:28:50Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('334', '37', '10623', 'docs(tutorial/11 - REST and Custom Services): Add a note that new test d...', '...ependencies cause a failure that can be cleared by restarting Karma.', '7', null, null, 'kenhtanaka', '2015-01-02T20:11:13Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('335', '37', '10628', 'fix($templateRequest): propagate HTTP status on failed requests', 'Fixes #10514', '4', null, null, 'pkozlowski-opensource', '2015-01-03T19:39:57Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('336', '37', '1063', 'Typo on ng.$routeProvider docs', 'Just a minor typo: it says \"`$aftreRouteChange`\" where it meant `$afterRouteChange`.', '1', null, null, 'mernen', '2012-06-17T01:48:18Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('337', '37', '10631', 'feat($timeout): pass arguments in callback', 'PR has updated Docs and Tests\r\n`setTimeout` allows you to pass arguments into the callback function in\r\nthe …3rd argument. Since thats taken I added it to the …4th\r\nhttp://mdn.io/setTimeout#Syntax\r\n\r\nhere is an example of why you would need to do this\r\n```javascript\r\nimport {$http} from \'angular.js/modules\';\r\nimport {setTimeout, Promise} from \'facade/async\';\r\nvar cache = {};\r\n\r\nexport class AwesomeModule {\r\n static getSwag(url:string):Promise {\r\n return new Promise(function(resolve, reject) {\r\n var complete = function(data) {\r\n cache[url] = data;\r\n resolve(data);\r\n };\r\n\r\n if (url in cache) {\r\n setTimeout(complete, 0, cache[url]);\r\n } else {\r\n $http.get(url).then(complete, reject);\r\n } // end url in cache\r\n });\r\n } // end getSwag\r\n} // end AwesomeModule\r\n```\r\n\r\nsimilar pull request https://github.com/angular/angular.js/pull/10632', '14', null, null, 'gdi2290', '2015-01-04T05:38:22Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('338', '37', '10632', 'feat($interval): pass arguments in callback', 'PR has updated Docs and Tests\r\n`setInterval ` allows you to pass arguments into the callback function\r\nin\r\nthe …3rd argument. Since thats taken I added it to the …5th\r\nhttp://mdn.io/setInterval#Syntax\r\n\r\nsimilar pull request https://github.com/angular/angular.js/pull/10631', '11', null, null, 'gdi2290', '2015-01-04T06:00:29Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('339', '37', '10633', 'Move comment inside relevant function', 'This is a functional workaround for https://github.com/6to5/6to5/issues/376\r\nAnd makes the comment code-style more consistent with line 143 and line 463.', '4', null, null, 'brycehanscomb', '2015-01-04T06:08:23Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('340', '37', '10639', 'refact(ngOptions): major refactoring...', '**Major reworking of select and ngOptions**:\r\n\r\n* The `SelectController` is now used as an abstraction for the `select` and `ngOptions` directives\r\nto override to get their desired behaviour\r\n* The `select` directive is completely oblivious to the ngOptions directive now - the `ngOptions`\r\ndirective could be deleted without having to make any changes to the `select` directive.\r\n* Select related directives (single/multiple/ngOptions) can provide specific versions of\r\n`SelectController.writeValue` and `SelectController.readValue`, which are responsible for getting\r\nthe `$viewValue` in or out of the actual `<select>` element and its `<option>` children.\r\n\r\nBREAKING CHANGE:\r\n\r\nWhen using `ngOptions`: the directive applies a surrogate key as the value of the `<option>` element.\r\nThis commit changes the actual string used as the surrogate key. We now store a string that is computed\r\nby calling `hashKey` on the item in the options collection; previously it was the index or key of the\r\nitem in the collection.\r\n\r\nBefore you might have seen:\r\n\r\n```\r\n<select ng-model=\"x\" ng-option=\"i in items\">\r\n <option value=\"1\">a</option>\r\n <option value=\"2\">b</option>\r\n <option value=\"3\">c</option>\r\n <option value=\"4\">d</option>\r\n</select>\r\n```\r\n\r\nNow it will be something like:\r\n\r\n```\r\n<select ng-model=\"x\" ng-option=\"i in items\">\r\n <option value=\"string:a\">a</option>\r\n <option value=\"string:b\">b</option>\r\n <option value=\"string:c\">c</option>\r\n <option value=\"string:d\">d</option>\r\n</select>\r\n```\r\n\r\nIf your application code relied on this value, which it shouldn\'t, then you will need to modify your\r\napplication to accommodate this. You may find that you can use the `track by` feaure of `ngOptions`\r\nas this provides the ability to specify the key that is stored.\r\n\r\nBREAKING CHANGE:\r\n\r\nWhen iterating over an object\'s properties using the `(key, value) in obj` syntax the order of the elements used to be sorted alphabetically. This was an artificial attempt to create a deterministic ordering since browsers don\'t guarantee the order. But in practice this is not what people want and so this change iterates over properties in the order they are returned by `Object.keys(obj)`, which is almost always the order in which the properties were defined.\r\n\r\nCloses #8019\r\nCloses #9714\r\nCloses #10531', '36', null, null, 'petebacondarwin', '2015-01-04T14:30:47Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('341', '37', '1064', 'Appends slashes to urls', 'Angular intenionally removes slashes from urls defined in ngResource and this causes bugs and problems in frameworks like django. It simply *adds* slashes to urls for it work.', '7', null, null, 'umurkontaci', '2012-06-17T13:21:30Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('342', '37', '10644', 'fix(dateFilter): ignore invalid dates', 'Fixes #10640', '3', null, null, 'pkozlowski-opensource', '2015-01-05T18:06:54Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('343', '37', '10645', 'fix(ngRepeat): Track By function conflict', 'Added \'var\' to make sure the Track By function/closure is attached to each instance.\r\nOtherwise all directives of the same type call the same Track By function, with the same arguments/closure. (the last one created).\r\nThis problem might affect other types of track by expressions variables, as they are declared in the compile method. (line 275)', '13', null, null, 'FrankReDo', '2015-01-05T18:40:43Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('344', '37', '10646', 'fix($templateRequest): cache downloaded templates as strings', 'Fixes #10630', '9', null, null, 'pkozlowski-opensource', '2015-01-05T18:47:25Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('345', '37', '10647', 'fix(ngRepeat): don\'t clone DOM for holes in sparse arrays', 'Previously, ngRepeat would clone DOM for holes in sparse arrays. Now, holes are ignored. The $index\nis translated to the index of the repeated clone, rather than the original array $index, so that\n$even and $odd still work correctly.\n \nCloses #10544', '14', null, null, 'caitp', '2015-01-05T18:50:36Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('346', '37', '10649', 'docs(app): makes minor updates', 'Renames controller files and makes minor updates.', '0', null, null, 'jesselpalmer', '2015-01-06T02:51:37Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('347', '37', '10651', 'fix(ngClass): handle multi-class definitions as an element of an array', 'Handles multi-class definition as an element of an array\r\n\r\nCloses #8578', '3', null, null, 'lgalfaso', '2015-01-06T10:49:54Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('348', '37', '10652', 'Get rid of unused variable', 'It may not cause a large problem for the project, but in the long-term, it might disrupt the ng-messages module, which is quite popular (All my angular apps have them), so I cleaned it up.', '3', null, null, 'karlcoelho', '2015-01-06T12:15:15Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('349', '37', '10653', 'feat(ngRoute): screening colon in given path', 'Use backslash symbol before colon to prevent it interpretation as variable.\r\nFor example: path \"/\\\\:foo/:bar\" returns only \"bar\" variable', '1', null, null, 'stervets', '2015-01-06T15:42:34Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('350', '37', '10656', 'docs($window): improve the example', '', '6', null, null, 'thorn0', '2015-01-06T19:06:23Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('351', '37', '10658', 'feat($rootScope): allow suspending and resuming watchers on scope', 'This can be very helpful for external modules that help making the digest loop faster by ignoring some of the watchers under some circumstance. example: https://github.com/shahata/angular-viewport-watch', '16', null, null, 'shahata', '2015-01-07T00:18:13Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('352', '37', '1066', 'fix($http): lowercase keys of headers when headers is an object.', 'Can\'t get header value because the keys are not lowercased. I guess this is a bug.', '11', null, null, 'fuqcool', '2012-06-17T15:40:20Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('353', '37', '10663', 'docs(guide/Using $location): update link to HTML5 history API', 'The old link http://www.w3.org/TR/html5/introduction.html#history-0 points to the history of HTML5. The new link points to the API of the `history` object. Additionally, this change normalises the upper/lower case of the phrase \'HTML5 history API\'.', '4', null, null, 'mkllnk', '2015-01-07T03:57:15Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('354', '37', '10664', 'fix(ngChecked): ensure that ngChecked doesn\'t interfere with ngModel', 'Fixes #10662', '22', null, null, 'LeonardoBraga', '2015-01-07T05:26:12Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('355', '37', '10667', 'docs(ngModelOptions): Config objects cannot be shared among ngModelOptions instances.', 'Just thought I\'d add a note about this issue since it hit me during development and I cannot find any note about it in the documentation. Looking at the source code, it seems that the changes to the object made in the block of https://github.com/angular/angular.js/blob/master/src/ng/directive/ngModel.js#L1223 are not idempotent, but I guess that\'s a design choice, not a bug?', '6', null, null, 'mtr', '2015-01-07T11:38:32Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('356', '37', '10668', 'docs(tutorial/7 - Routing', '', '5', null, null, 'mmnl', '2015-01-07T11:54:12Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('357', '37', '10673', 'fix(ngModelOptions): allow sharing options between multiple inputs', 'Closes #10667', '5', null, null, 'shahata', '2015-01-07T21:49:43Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('358', '37', '10674', 'fix(ngModelOptions): Allow sharing ngModelOptions objects between multiple directive instances, even when they specify default behavior.', 'Fixes #10667.', '1', null, null, 'mtr', '2015-01-07T22:31:50Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('359', '37', '10676', 'feat(ngMessages): provide support for dynamic message resolution', '# What\'s the goal here?\r\n\r\n1. To allow multiple message states to use the same message.\r\n2. To allow structural directives such as ngRepeat, ngIf and ngSwitch to add and remove instances of ngMessage within a ngMessage container.\r\n3. To allow form controller code to download and dynamically populate message instances using validations from the server.\r\n\r\n-- commit message --\r\nPrior to this fix it was impossible to apply a binding to a the\r\nngMessage directive to represent the name of the error. It was also\r\nnot possible to use ngRepeat or any other structural directive to\r\ndynamically update the list of messages. This fix ensures that both\r\nthe ngMessage and ngMessages directives automatically update when\r\nany dynamic message data changes.\r\n\r\nBREAKING CHANGE:\r\n\r\nThe `ngMessagesInclude` attribute is now its own directive and that must\r\nbe placed as a **child** element within the element with the ngMessages\r\ndirective. (Keep in mind that the former behaviour of the\r\nngMessageInclude attribute was that all **included** ngMessage template\r\ncode was placed at the **bottom** of the element containing the\r\nngMessages directive; therefore to make this behave in the same way,\r\nplace the element containing the ngMessagesInclude directive at the\r\nend of the container containing the ngMessages directive).\r\n\r\n```html\r\n<!-- AngularJS 1.3.x -->\r\n<div ng-messages=\"model.$error\" ng-messages-include=\"remote.html\">\r\n <div ng-message=\"required\">Your message is required</div>\r\n</div>\r\n\r\n<!-- AngularJS 1.4.x -->\r\n<div ng-messages=\"model.$error\">\r\n <div ng-message=\"required\">Your message is required</div>\r\n <div ng-messages-include=\"remote.html\"></div>\r\n</div>\r\n```\r\n\r\nCloses #10036\r\nCloses #9338', '55', null, null, 'matsko', '2015-01-07T23:17:11Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('360', '37', '10678', 'fix(minErr.js): delete unused variable `arg` in `template.replace`', '', '2', null, null, 'cookfront', '2015-01-08T06:31:28Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('361', '37', '10680', 'docs(date): Change milliseconds pagging syntax', 'Change millisecond pagging syntax : no need to prefix with \',\' or \'.\'.', '5', null, null, 'mmouterde', '2015-01-08T14:29:04Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('362', '37', '10681', 'V1.3.x', '', '3', null, null, 'hrodic', '2015-01-08T15:11:18Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('363', '37', '10684', 'docs(ngMessages): s/no animations present/no messages present', '', '1', null, null, 'ajoslin', '2015-01-08T18:30:30Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('364', '37', '10689', 'fix(ngRoute): dont duplicate optional params into query', 'When calling updateParams with properties which were optional, but\r\npreviously undefined, they would be duplicated into the query params as\r\nwell as into the path.\r\n\r\n[jsfiddle reproduction](http://jsfiddle.net/cryqss2z/)\r\n\r\nFrom `#updateParams` docs:\r\n> Provided property names that match the route\'s path segment definitions will be interpolated into the location\'s path, while remaining properties will be treated as query params.\r\n\r\nIn the actual [implementation of updateParams](https://github.com/angular/angular.js/blob/e24d96827628285976526c7e8d91090a90e36322/src/ngRoute/route.js#L487) the \"remaining properties\" are determined prior to interpolation by checking if the `pathParam` for the given `key` has a value; however, optional parameters may not exist in `pathParams`.\r\n\r\nAlternative fixes might include\r\n- (probably better) running `interpolate` before separating `searchParams`, since it will remove matched keys from the passed in `newParams` object.\r\n- (maybe more correct?) include undefined optional params in the `pathParams` object (switchRouteMatcher L536, `if (key && val)` -> `if(key)`) and then check for the property as opposed to truthiness', '8', null, null, 'omsmith', '2015-01-08T22:01:40Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('365', '37', '10694', 'fix(ng-options): support one-time binding on the options', 'Preserve the $watchDelegate on the watcher used to detect changes on the labels\r\n\r\nCloses #10687', '4', null, null, 'lgalfaso', '2015-01-08T23:24:59Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('366', '37', '10695', 'chore(testing): bump protractor to version 1.6.0', 'This will also be cherry-picked to 1.3 and 1.2', '4', null, null, 'juliemr', '2015-01-08T23:45:29Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('367', '37', '10697', 'fix($q): correctly set constructor on prototypes', 'This patch will correctly set `Promise.prototype.constructor` and `Deferred.prototype.constructor`.\r\n\r\nWhen prototype is set in the form `Foo.prototype = {x: y};`, the constructor will not be set correctly (as opposed to in the form `Foo.prototype.x = y;`.\r\n\r\nAs such, it is necessary to manually add the constructor to the prototype in these cases.', '9', null, null, 'bluepnume', '2015-01-09T11:38:17Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('368', '37', '10701', 'chore(travis): make browserstack unit tests allowed failures', '', '5', null, null, 'juliemr', '2015-01-09T18:23:58Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('369', '37', '10703', 'chore(travis): split out the docs e2e tests into their own travis job', 'Previously, they were in the \'unit\' job to save travis VMs, but this\r\nwas confusing and made it more difficult to track down errors easily.', '6', null, null, 'juliemr', '2015-01-09T20:54:07Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('370', '37', '10705', 'feat($http): add X-Forwarded-* headers to requests', '.... for compatibility with RESTful backends (i.e. Spring MVC + HATEOAS) that are not beeing reversed proxied, and don\'t know for sure wich protocol they are beeing used.\r\n\r\nI found that this could be an usefull thing to be done automatically by Angular as some frameworks (like Spring HATEOAS) rely in this information to generate absolute URLs (cause they expect a reverse proxy to set this headers for them). In a cloud environment (i.e. PaaS), or local environment, this frameworks are not likely to be reverse proxied (although they could) so currently there is no way other than hacking the framework itself, or creating a custom request interceptor in angular to provide this two headers so everything works .... \r\n\r\nI don\'t see any drawbacks (other than the little bit increased request size) in having this set automatically by angularjs. \r\n\r\nAlso I have to change the \'should allow replacement of the headers object\' spec as AFAIK $http could add other headers after the interceptor (as the ones I added or others like XSRF).\r\n\r\nWould be glad to hear any feedbacks about the changes I made :-).', '2', null, null, 'alfonso-presa', '2015-01-10T09:41:50Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('371', '37', '10707', 'fix(input:number): min/max not work when binded variable initial as false value', 'fix(input:number): min/max not work when binded variable initial as false value', '1', null, null, 'z---', '2015-01-11T02:56:28Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('372', '37', '10708', 'docs(tutorial/4 - Two-way Data Binding): describe your change...', 'I have Nodejs v0.10.33, AngularJS v1.3.8, and protractor 1.0.0. The end-to-end test as written always failed with the following messages:\r\n\r\n Expected [ ] to equal [ \'Motorola XOOM™ with Wi-Fi\', \'MOTOROLA XOOM™\' ].\r\n\r\nAfter a great deal of head-scratching I discovered that for whatever reason, element.all(by.repeater(\'phone in phones\').column(\'phone.name\')) was returning this:\r\n\r\n {\"locator_\":{},\"parentElementFinder_\":null}\r\n\r\nHowever, if I added classes to the items I was going to be testing for, and built the array of names from those instead, my test would pass.\r\n\r\nI think something must be wrong either with Angular or Protractor. It would make more sense for the code that\'s already in the tutorial to work.', '4', null, null, 'praxeo', '2015-01-11T03:07:38Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('373', '37', '10710', 'Grammar change', 'Not sure if this is a worthy change but it confused me when I read it.\r\n\r\n\"In practice, different from is by far the most common of the three, in both British and American English:\"\r\nhttp://www.oxforddictionaries.com/us/words/different-from-than-or-to', '6', null, null, 'jDeppen', '2015-01-11T04:38:03Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('374', '37', '10711', 'fix(input:number): min/max not work when binded variable initial as false value', 'fix(input:number): min/max not work when binded variable initial as false value', '1', null, null, 'z---', '2015-01-11T05:27:16Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('375', '37', '10712', 'docs(app): increments year', 'Increments the copyright year from 2014 to 2015.', '0', null, null, 'jesselpalmer', '2015-01-11T09:01:38Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('376', '37', '10713', 'docs(app): increments year', 'Increments the year from 2014 to 2015.', '0', null, null, 'jesselpalmer', '2015-01-11T09:10:21Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('377', '37', '10714', 'docs($templateRequest): remove duplicate \"the\" in return description', 'Introduced with: https://github.com/angular/angular.js/commit/1e5e527c84e2e5e9ed83ceb8e8c9c340c150b960\r\nReported: https://github.com/angular/angular.js/commit/1e5e527c84e2e5e9ed83ceb8e8c9c340c150b960#commitcomment-9123344', '0', null, null, 'campersau', '2015-01-11T10:07:21Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('378', '37', '10716', 'docs(error/nobase): Added trailing slash for base path', 'Trailing slash seems to be necessary, otherwise `$routeProvider` does not match routes correctly. Following is not matched:\r\n\r\nURL: http://www.example.com/b/foo/1234\r\n```html\r\n<base href=\"/b/foo\">\r\n```\r\n\r\n```javascript\r\n$routeProvider.when(\'/:id\', {\r\n templateUrl: \'/view/path.html\',\r\n controller: \'MyCtrl\',\r\n reloadOnSearch: false\r\n});\r\n```', '4', null, null, 'Elijen', '2015-01-11T14:25:15Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('379', '37', '10717', 'Fix memory leak with $setValidity', 'This PR includes:\r\n- commit that correctly cleans up references to input controls in forms after they have been removed\r\n- commit that renames an argument to better reflect its purpose\r\n- commit which tests the form clean-up behavior for $pending inputs', '8', null, null, 'Narretz', '2015-01-11T19:20:48Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('380', '37', '10719', 'docs(tutorial/6 - Templating Links): insert comma', 'The file change inserts a missing comma into the document.', '1', null, null, 'kchia', '2015-01-12T00:31:17Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('381', '37', '10720', 'Docs (index.ngdoc) change: A potential compatibility issue with Firefox OS', 'An update on Firefox OS ver 2.0 seems to cause an issue with dependency injection using Angular JS. Modified the docs to include a link related to Firefox OS.', '6', null, null, 'acegautam', '2015-01-12T05:13:05Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('382', '37', '10723', 'fix(ngScenario): Allow ngScenario to handle lazy-loaded and manually bootstrapped applications', '\r\nI know protractor is preferred, and ngScenario is only in maintenance mode. But, we are limited to\r\nngScenario based on the devices/browsers we are targeting (no web-driver available). So, we need\r\nto address the bug where ngScenario does not work with manual bootstrap and also has issues if\r\nangular.resumeBootstrap is not yet defined (race condition when lazy-loading).', '10', null, null, 'marcfallows', '2015-01-12T10:47:00Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('383', '37', '10724', 'docs(design): highlight source button when focused', 'The \'view source\' and \'improve this Doc\' buttons become unreadable when get focus:\r\n![btn-focus](https://cloud.githubusercontent.com/assets/1024920/5702103/129d1220-9a4d-11e4-9ba4-f03721d22120.png)\r\n', '1', null, null, 'marcin-wosinek', '2015-01-12T11:21:15Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('384', '37', '10725', 'Assign fn.$inject during annotation from array', 'When Angular annotates straight from function it adds `$inject` *static* field to function itself. But when Angular annotates a function from an array it subsequently doesn\'t add the same. It would be advantageous if it did the same as client code may also use this field\'s value.\r\n\r\nUsage example\r\n--\r\nI\'m following John Papa\'s angular guidelines how to write better maintainable angular code. So I\'m writing my controllers/services using actual prototypes (that\'s even better than containing all behaviour within controller\'s scope as John Papa does). To actually work with prototypes we need all constructor injections on instantiated object so they can be accessed from other prototype functions. But to avoid adding these manually one can write a function i.e. `injectParameters` that does it automatically. This specific function reads those either from `$inject` static field or it parses function similar as angular\'s annotation does. The problem happens with minified files where argument names may be different from the actual ones provided in original code. The same problem happens in Angular hence two possible injection scenarios. So because Angular annotation doesn\'t add the `$inject` field when some controller/service was provided using an array there is no possibility to get those names correctly.\r\n\r\n```Javascript\r\nfunction MyController($scope, someResource...) {\r\n injectParameters(this, arguments); // will make all injections accessible under this.injections...\r\n ...\r\n}\r\n\r\nMyController.prototype.doSomething() {\r\n // use injections\r\n this.injections.someResource.get(...);\r\n}', '1', null, null, 'litera', '2015-01-12T13:37:14Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('385', '37', '10726', 'feat(injector): assign $inject field when annotating from an array', 'When Angular annotates straight from function it adds `$inject` *static* field to function itself. But when Angular annotates a function from an array it subsequently doesn\'t add the same. It would be advantageous if it did the same as client code may also use this field\'s value.\r\n\r\nUsage scenario\r\n--\r\nI\'m following [John Papa\'s Angular guidelines](https://github.com/johnpapa/angularjs-styleguide) how to write better maintainable angular code. So I\'m writing my controllers/services using actual prototypes and not anonymous functions. but instead of containing all behaviour within controller\'s constructor as John Papa does I\'m actually writing prototypes. \r\n\r\nTo work with prototypes we need all constructor injections on instantiated object so they can be accessed from other prototype functions. But to avoid tedious and error prone work of adding these manually one can write a function i.e. `injectParameters` that does it automatically. This specific function reads those either from `$inject` static field or it parses function similar as angular\'s annotation does. The problem happens with minified files where argument names may be different or even omitted from the ones provided in original source code. The same problem happens in Angular hence two possible injection scenarios:\r\n\r\n* `angular.module(\"SomeModule\").controller(\"SomeController\", [\"$scope\",..., SomeController]);`\r\n* `SomeController.$inject = [\"$scope\",...];`\r\n\r\nSo because Angular annotation doesn\'t add the `$inject` field when some controller/service was provided using the first method there is no possibility to get those names correctly in client code.\r\n\r\n```Javascript\r\nfunction MyController($scope, someResource...) {\r\n injectParameters(this, arguments); // all injections accessible under i.e. this.injections...\r\n ...\r\n}\r\n\r\nMyController.prototype.doSomething() {\r\n // injections from constructor added by injectParameters to .injections object\r\n this.injections.someResource.get(...);\r\n}', '4', null, null, 'litera', '2015-01-12T13:46:46Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('386', '37', '10727', 'fix(form): ignore properties in $error prototype chain', 'Closes #10469', '1', null, null, 'caitp', '2015-01-12T17:35:16Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('387', '37', '10731', 'chore(npm): Make require()-able as part of publish script', 'Deletes main field of package.json and creates index.js that is CommonJS compatible\r\n\r\n/cc @caitp ', '23', null, null, 'bclinkinbeard', '2015-01-12T21:01:32Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('388', '37', '10732', 'chore(npm): Make modules Browserify compatible', 'Better version of earlier PR.\r\n\r\nindex.js for angular:\r\n```js\r\nrequire(\'./angular\');\r\n\r\nmodule.exports = angular;\r\n```\r\n\r\nindex.js for other modules:\r\n```js\r\nrequire(\'./angular-animate\');\r\n\r\nmodule.exports = angular.module(\'ngAnimate\');\r\n```\r\n\r\nStill working on adding a dependency to angular in package.json of other modules.', '93', null, null, 'bclinkinbeard', '2015-01-13T03:08:46Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('389', '37', '10733', 'Fix merging of two ngIfs in replace mode.', 'I noticed an error while working with ngIf in my project. It is reproduced here: http://codepen.io/kubawalinski/pen/EaWjxe?editors=101. In short, when 2 ngIfs need to be merged the merge is done incorrectly (it just concatenates the conditions with a space character). This is an attempt to fix this by concatenating with the \' && \' string, so that both conditions are checked and both need to be true for the ngIf to kick in.', '14', null, null, 'kubawalinski', '2015-01-13T10:51:51Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('390', '37', '10735', 'Changes at controller\'s method $scope.reset', 'I changed the controller\'s method $scope.reset because it seems that is not reseting the input fields the user filled out, and neither is restoring to their initial state both model objects: $scope.master and $scope.user.\r\n\r\nI hope this help to improve the sample.', '6', null, null, 'luisgallon', '2015-01-13T13:31:02Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('391', '37', '10741', 'docs(tutorial/0 - Bootstrapping): The url http://localhost:8000/app/ ', 'does not resolve to index.html. In stead, it goes to http://localhost:8000/app/#/phones, which is the app. If we explicitly point it at index.html, the behavior is as described in the tutorial.', '1', null, null, 'guidothekp', '2015-01-13T23:50:08Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('392', '37', '10744', 'docs(CONTRIBUTING.md): adds colons to conform to the rest of the document', 'Adds colons before lists or code blocks to conform to the rest of the documentation\r\n\r\n![screen shot 2015-01-13 at 9 47 19 pm](https://cloud.githubusercontent.com/assets/6110221/5734637/d1512686-9b6d-11e4-96bb-daccd3dfd28b.png)\r\n\r\n![screen shot 2015-01-13 at 9 47 32 pm](https://cloud.githubusercontent.com/assets/6110221/5734638/d2dd615e-9b6d-11e4-8086-b9dbc26f144b.png)\r\n', '0', null, null, 'kranrao', '2015-01-14T05:50:07Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('393', '37', '10745', 'fix(angular.copy): should be able to angular.copy Float32Array', 'angular.copy can now copy a Float32Array when only provided src. I added some tests to confirm this.\r\n\r\nfixes #10210', '23', null, null, 'DropsOfSerenity', '2015-01-14T08:39:26Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('394', '37', '10747', 'fix($location): strip off empty hash segments when comparing', 'Backported from e93710fe0e4fb05ceee59a04f290692a5bec5d20\r\n\r\nThe url is the same whether or not there is an empty `#` marker at the end.\r\nThis prevents unwanted calls to update the browser, since the browser is\r\nautomatically applying an empty hash if necessary to prevent page reloads.\r\n\r\nCloses #9635', '2', null, null, 'tleruitte', '2015-01-14T10:11:09Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('395', '37', '10748', 'fix($location): strip off empty hash segments when comparing', 'Backported from e93710fe0e4fb05ceee59a04f290692a5bec5d20\r\n\r\nThe url is the same whether or not there is an empty `#` marker at the end.\r\nThis prevents unwanted calls to update the browser, since the browser is\r\nautomatically applying an empty hash if necessary to prevent page reloads.\r\n\r\nCloses #9635', '5', null, null, 'tleruitte', '2015-01-14T10:38:06Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('396', '37', '10750', 'Adding ng-jq functionality, the ability to choose your angular.element l...', '...ibrary or force jqLite even if jquery is available.', '10', null, null, 'mboudreau', '2015-01-14T11:09:40Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('397', '37', '10752', 'docs(tutorial/10 - Event Handlers): Added missing semicolon in tutorial documentation', 'Added a missing semicolon in definition of $scope.setImage in tutorial documentation step 10.', '4', null, null, 'grubersjoe', '2015-01-14T14:37:09Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('398', '37', '10756', 'fix($compile): support class directives on SVG elements', 'It\'s a pretty trivial change. @Narretz want to review this one?\n\nCloses #10736', '3', null, null, 'caitp', '2015-01-14T22:39:27Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('399', '37', '10757', 'Remove sortedKeys()', 'Since #10639 there\'s only one caller to ``sortedKeys() `` left, so it can be inlined to save some bytes.\r\n\r\nSecond commit applies #9704 and this change to ``testabilityPatch.js`` to keep it in sync.', '1', null, null, 'realityking', '2015-01-14T23:23:47Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('400', '37', '10758', 'refactor(ngSanitize) Remove workarounds for IE8', 'Also provides better tests.', '12', null, null, 'realityking', '2015-01-15T00:46:44Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('401', '37', '10759', 'test($rootScope) test the correct setting of the constructor in IE 11', 'Note: Not actually tested, as I don\'t have a Windows machine handy. Hoping for CI to do the testing for me ;)', '2', null, null, 'realityking', '2015-01-15T01:03:11Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('402', '37', '10761', 'Adding ng-jq functionality, the ability to force jqLite or any other lib...', '...rary by name to be used for angular.element\r\n\r\nAdded unit tests to check that jq function returns the right result, but couldn\'t test adding a fake jQuery object without failing many other tests. Maybe this is better for e2e tests? I would add some, but couldn\'t figure out the structure.', '48', null, null, 'mboudreau', '2015-01-15T05:06:39Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('403', '37', '10763', 'optimization in isBoolean', 'typeof on value and then comparison with string is slower then comparing value directly with boolean ie value === true. It will optimized the performance.', '6', null, null, 'zaheer-ahmed', '2015-01-15T17:35:23Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('404', '37', '10764', 'feat(ngModel) Allow running the formatters without a change to the modelValue', 'This is needed when a formatter can be configured in some way and needs to be rerun after the change. Issue propped up for me when I tried to fix UI Bootstrap with Angular 1.3 (angular-ui/bootstrap#2659)\r\n\r\nFixes #3407', '23', null, null, 'realityking', '2015-01-15T19:58:14Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('405', '37', '10765', 'docs(ngInclude): Typo fixed', 'Typo fixed', '1', null, null, 'SekibOmazic', '2015-01-15T20:04:00Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('406', '37', '10766', 'bug(ngAria): native controls fire a single click event', 'To fix the widespread accessibility issue of `ngClick` on divs, ngAria dynamically binds `keypress` in addition to `tabIndex`. As first implemented, this introduced a bug where `<button>` elements would have both events bound, causing multiple callbacks to fire. This PR makes limits the addition of keypress to `<div>` and `<li>`, which can be overridden with the `bindKeypress` config option.\r\n\r\nCloses https://github.com/angular/angular.js/issues/10388. Thanks to @caitp for the help & unit test on native elements.', '22', null, null, 'marcysutton', '2015-01-15T20:18:52Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('407', '37', '10767', 'docs($rootScope.Scope): Simple typo', '', '1', null, null, 'SekibOmazic', '2015-01-15T20:32:02Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('408', '37', '10769', 'docs(ngMessages): Minimalistic typo', '', '0', null, null, 'SekibOmazic', '2015-01-15T20:40:04Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('409', '37', '1077', 'feat(input type=number): min/max attributes are evaluated', '#1068\n\nBefore the change, one could specify min=\"10\" or max=\"50\". Now it is possible to use expressions, like min=\"{{expression}}\".', '9', null, null, 'witoldsz', '2012-06-19T15:09:44Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('410', '37', '10770', 'fix($animate): ensure no transitions are applied when an empty inline style object is provided', 'Closes #10613', '3', null, null, 'matsko', '2015-01-16T01:55:05Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('411', '37', '10772', 'Update jscs', 'Updates jscs to latest (1.10.0) by updating grunt-jscs to 1.2.0\r\n\r\nadd rule disallowKeywordsOnNewLine: \"else\" ~ 10 changes\r\n\r\n```js\r\n// Valid\r\nif (x) {\r\n} else {\r\n}\r\n// Invalid\r\nif (x) {\r\n}\r\nelse {\r\n}\r\n```\r\nadd rule disallowSpacesInCallExpression ~ 19 changes\r\n```js\r\n// Valid\r\nfunctionCall()\r\n// Invalid\r\nfunctionCall ()\r\n```\r\nadd rule requireSpacesInForStatement ~ 1 change\r\n```js\r\n// Valid\r\nfor (var i=0; i < length; i++)\r\n// Invalid\r\nfor (var i=0;i < length;i++)\r\nfor (var i=0; i < length; i++)\r\n```\r\nadd rule requireSpaceBeforeKeywords ~ 0 changes\r\n\r\n```js\r\n// Valid\r\n} else {\r\n// Invalid\r\n}else {\r\n```\r\n\r\nOthers that could be added:\r\n~32 changes: \"requireCamelCaseOrUpperCaseIdentifiers\": \"ignoreProperties\",\r\n\"requireSpaceBetweenArguments\": true,\r\n\"disallowMultipleLineBreaks\": true\r\n\r\n@caitp ', '7', null, null, 'hzoo', '2015-01-16T03:40:16Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('412', '37', '10778', 'Fix(ngRepeat) do not allow `$id` and `$root` as aliases', 'Currently user can use `$id` or `$root` as alias in ng-repeat directive that leads to rewriting these scope-related variables. This commit fixes this behavior by throwing an error when user try to use these values.', '4', null, null, 'KELiON', '2015-01-16T13:00:30Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('413', '37', '1078', 'documentation fixes', 'There were a few spelling errors, and some broken code based on the change from defer to timeout.\n\nI thought it would be useful to add a \"stop\" button to the timer code (to show how you could programmatically use the timeoutId via your controller), but this does not work inside the generated documentation. \n\nHowever, this same code works within JSFiddle:\n\nhttp://jsfiddle.net/xhrud/ETMg7/\n\nI won\'t be hurt if you decide to ignore the code with the stop button. (Unfortunately, the second commit has the button inside of it, and should be modified.)\n\nChris', '1', null, null, 'xrd', '2012-06-19T19:42:38Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('414', '37', '10780', 'refactor($templateRequest) remove repeated decrementation and unnecessar...', '...y local variable', '3', null, null, 'KELiON', '2015-01-16T15:42:50Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('415', '37', '10786', 'docs(app): fixes material build', 'The theme css files were reorganized at some point in Angular Material 0.7.x and the build is now failing because the files are missing. The styles on the site do not work correctly now with 0.7.x because the css is missing. This change will keep us on 0.6.x until we can update the theme issue.', '2', null, null, 'jesselpalmer', '2015-01-17T04:30:36Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('416', '37', '10789', 'docs(angular.bootstrap): fns passed as modules are called on config stag...', '...e', '1', null, null, 'thorn0', '2015-01-17T16:05:32Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('417', '37', '10790', 'fix(ngController): allow bound constructor fns as controllers', 'Fixes #10784', '5', null, null, 'pkozlowski-opensource', '2015-01-17T18:35:40Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('418', '37', '10791', 'docs(ngInit): fix code block not being displayed in the note section', 'The note section is blank in https://docs.angularjs.org/api/ng/directive/ngInit', '0', null, null, 'Boshen', '2015-01-18T00:53:48Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('419', '37', '10793', 'docs(ngClass): fix formatting', 'adds line break between add/remove in animations. Previously showing up on one line like this: \"add - happens just before the class is applied to the element remove - happens just before the class is removed from the element\"', '3', null, null, 'espiler', '2015-01-18T10:48:31Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('420', '37', '10794', 'docs($cookieStore#get): Clarified that undefined is returned if no cookie exists', 'Simply clarified that ``undefined`` is the return value if no cookie exists.', '3', null, null, 'robinwassen', '2015-01-18T15:38:44Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('421', '37', '10797', 'Fix/jquery touch', 'This is an addition to PR #8584. The discussion is also there.', '16', null, null, 'pomerantsev', '2015-01-18T20:41:39Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('422', '37', '10798', 'feat(ngSwitch): add an optional attribute ngSwitchWhenSeparator', 'Adds an optional attribute `ngSwitchWhenSeparator` that allows multiple tokens to match a given `ngSwitchWhen`.\r\n\r\nCloses #3410\r\nCloses #3516', '6', null, null, 'lgalfaso', '2015-01-18T20:56:25Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('423', '37', '108', 'Scenario runner element', 'Adds all the missing jQuery methods to element() DSL', '0', null, null, 'esprehn', '2010-10-29T20:28:56Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('424', '37', '1080', 'making sure jasmine-node is getting called from bash script', 'Hey, sat back down just before leaving work to start the automatically generated externs.js thing and caught this bit in gen_docs.sh', '2', null, null, 'jzacsh', '2012-06-19T21:55:49Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('425', '37', '10802', 'chore(npm): Make require()-able as part of publish script', 'This brings back Ben\'s patch and just add the quotes to `module.exports`', '5', null, null, 'spacepluk', '2015-01-19T09:12:11Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('426', '37', '10804', 'docs(guide/Introduction): CRUD & Punctuation', 'Added description of what CRUD means. Improved readability: Ensured that colons were followed by a capital letter, some sprinkled commas.', '3', null, null, 'samilamti', '2015-01-19T13:04:29Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('427', '37', '10809', 'docs(guide/Controllers): describe your change...', 'dont\' show when num is NaN', '2', null, null, 'ozdemirr', '2015-01-19T22:57:14Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('428', '37', '10810', 'docs($routeProvider): describe your change...', 'Purpose of \"templateUrl\" option (as a string value) within \"param\" parameter when there also exists \"path\" parameter \"in the API\": \r\n>>> \"path\" allows scenarios where same route URL is used with different \"controller\"s\r\n>>> \"templateURL\" allows scenarios where route URL is different for same \"controller\".', '5', null, null, 'prashant-gcm', '2015-01-20T00:41:28Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('429', '37', '10818', 'Adds missing $setUntouched method to nullFormCtrl.', '', '2', null, null, 'firletka', '2015-01-20T20:54:32Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('430', '37', '10819', 'fix(compare-master-to-stable.js): include current version in comparisons', '\r\nChange to include current prerelease versions in comparisons\r\n\r\nCloses #10816', '4', null, null, 'rphv', '2015-01-20T20:55:51Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('431', '37', '1082', 'New costumization possibilities to currency', 'Added new costumization possibilities to currency:\n- Fraction size\n- Change default negative numbers parentheses to \'-\' minus symbol\n\nPrevious behavior remains the same but when using the new optional parameters, the currency symbol becomes obligatory.', '2', null, null, 'Urigo', '2012-06-20T19:22:45Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('432', '37', '10820', 'fix(ngModel): fix issues when parserName is same as validator key', 'When a parser has the same name as a validator key, and a parse error\r\noccurs, set validity for parser name after setting validity for the\r\nvalidator key.\r\n\r\nOtherwise, the parse key is set, and then immediately afterwards the\r\nvalidator key is unset (because parse errors remove all other\r\nvalidations).', '2', null, null, 'Narretz', '2015-01-20T22:58:56Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('433', '37', '10821', '(docs) typo ngMessages', '', '3', null, null, 'nickvdyck', '2015-01-20T23:07:42Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('434', '37', '10822', 'fix($location): Allow urlencoded slashes to remain encoded', 'Encoded slashes passed to $location.url() may now stay encoded if\r\n$locationProvider.leaveSlashesEncoded(true) is called in the config\r\nblock. Other encoded entities continue to be decoded as before,\r\nregardless of leaveSlashesEncoded value. Previously all entities,\r\nincluding slashes, were decoded, which caused a problem when trying\r\nto capture route params, which are slash-delimited.\r\n\r\nCloses #10479', '1', null, null, 'kaitrin', '2015-01-20T23:07:45Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('435', '37', '10823', 'fix($location): Allow urlencoded slashes to remain encoded', 'Encoded slashes passed to $location.url() may now stay encoded if\r\n$locationProvider.leaveSlashesEncoded(true) is called in the config\r\nblock. Other encoded entities continue to be decoded as before,\r\nregardless of leaveSlashesEncoded value. Previously all entities,\r\nincluding slashes, were decoded, which caused a problem when trying\r\nto capture route params, which are slash-delimited.\r\n\r\nCloses #10479', '5', null, null, 'kaitrin', '2015-01-21T02:54:23Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('436', '37', '10826', 'feat(openPlunkr): enable ctrl+click', 'This is an initial suggestion for dealing with the problem described in #10641. To summarize, the problem is:\r\n\r\n* The \"Edit in Plunkr\" anchor tag has an ng-click attribute\r\n* The `openPlunkr` function is fired on click which calls `formPostData`\r\n* `formPostData` creates a new form element, adds it to the page, posts it, and removes the form element\r\n* The form, when posted, opens in the same page (`target=\"_self\"`)\r\n* This can be unhelpful for people who want to stay on the AngularJS documentation site.\r\n* Changing the target attribute to `\"_blank\"`, however, can trigger the popup blocker.\r\n* If a user chose to bypass pop-up blocker one time and click the link, they would arrive at a new default plnkr, not a plnkr with the desired template.\r\n\r\nTo resolve, the following steps were taken:\r\n* Pass the `$event` object into the `openPlunkr` function\r\n* Check if the ctrl button was pressed during click\r\n * If true, set `target=\"_blank\"`\r\n * If false, set `target=\"_self\"`\r\n\r\nThis enables a user to \"opt-in\" to the new window functionality, and the assumption is that they will whitelist the AngularJS docs page so their popup blocker doesn\'t block the popup. However, for the users who do not ctrl+click, they will continue experiencing the default functionality and not experience the undesired behavior described above.', '2', null, null, 'ghoti143', '2015-01-21T16:42:50Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('437', '37', '10827', 'docs(ngIf): Fixed typo', '\"falsy\" -> \"false\"', '6', null, null, 'MetalMichael', '2015-01-21T19:32:53Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('438', '37', '10832', 'link to Google CDN is wrong', 'it points to https://developers.google.com/speed/libraries/devguide#angularjs\r\n\r\ninstead of http://cdnjs.com/libraries/angular.js/', '5', null, null, 'Starojitski', '2015-01-22T11:31:15Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('439', '37', '10839', 'fix(ngPluralize): cap value - offset to 0', 'BREAKING CHANGE:\r\n\r\nngPluralize won\'t produce messages with signed (negative) values anymore.\r\n\r\nCloses #10836\r\n\r\n---\r\n\r\nmaybe this should be optional, but idk', '0', null, null, 'caitp', '2015-01-22T20:28:42Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('440', '37', '1084', 'feat(ng-controller): support as instance syntax', 'Support ng-controller=\"MyController as my\" syntax\nwhich publishes the controller instance to the \ncurrent scope.', '2', null, null, 'mhevery', '2012-06-20T21:27:44Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('441', '37', '10841', 'fix(ngPluralize): fix wrong text content when count is null/undefined', 'When `lastCount` was evaluated to an non-numeric value (e.g. \"other\") and\r\n`count` was evaluated to `NaN` (e.g. `null`/`undefined`), the text content\r\nwould be (wrongly) based on the previous template.\r\nThis commits makes sure the text content is updated correctly.\r\n\r\nIn order to customize the message shown upon `null`/`undefined` one can\r\nspecify a `\'NaN\'` property on the `when` exression object.\r\n\r\nCloses #10836', '2', null, null, 'gkalpak', '2015-01-22T23:20:10Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('442', '37', '10842', 'docs(tutorial/4 - Two-way Data Binding): Fixed variable name in order dropdown', '', '1', null, null, 'dnicolson', '2015-01-23T04:33:15Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('443', '37', '10843', 'docs(tutorial/4 - Two-way Data Binding): Variable name typo', 'This appears to be a typo in the tutorial as the protractor build fails when using the `{{phone.name}}` variable name.\r\n\r\nAdditionally, performing a `git checkout -f step-4` results in the `scenario.js` file using the `phone.name` variable name.', '2', null, null, 'dnicolson', '2015-01-23T04:55:59Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('444', '37', '10849', 'fix(htmlAnchorDirective): remove event listener if target is not element', 'Previously, when an `a` tag element used a directive with a replacing template, and did not include an `href` or `name` attribute before linkage, the anchor directive would always prevent default.\r\n\r\nNow, the anchor directive will cancel its event listener if the linked element is not the same as the target element of the event.\r\n\r\nCloses #4262', '9', null, null, 'caitp', '2015-01-23T20:17:10Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('445', '37', '10850', 'fix(ngModel): fix issues when parserName is same as validator key', 'For $validate(), it is necessary to store the parseError state\r\nin the controller. Otherwise, if the parser name equals a validator\r\nkey, $validate() will assume a parse error occured if the validator\r\nis invalid.\r\n\r\nAlso, setting the validity for the parser now happens after setting\r\nvalidity for the validator key. Otherwise, the parse key is set,\r\nand then immediately afterwards the validator key is unset\r\n(because parse errors remove all other validations).\r\n\r\nFixes #10698\r\nCloses #10828', '14', null, null, 'Narretz', '2015-01-23T22:02:38Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('446', '37', '10851', 'docs(input[checkbox]): Update example to best practice', 'It\'s not required for the example to function, but it prevents scope weirdness/unexpected behavior when using directives (especially with ngTransclude!). I think it\'s a good pattern to encourage and might prevent a bug down the road for for people who just scan for the monospace font. See [Understanding Scopes](https://github.com/angular/angular.js/wiki/Understanding-Scopes) for mgModel best practices.', '3', null, null, 'mhoffmeyerDC', '2015-01-24T00:08:11Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('447', '37', '10852', 'docs($httpBackend): enhance readability', 'In certain parts of the $httpBackend documentation there is a recurring description for $httpBackend methods that I thought reads a bit strange: \r\n \"...function that receives the url and returns true if the url match the current definition.\". \r\n\r\nThis is easier to read by changing \'the\' to \'a\' and \'match\' to \'matches\':\r\n\"...function that receives ~~the~~ a url and returns true if the url ~~match~~ matches the current definition.\".', '2', null, null, 'Yahkob', '2015-01-24T08:34:30Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('448', '37', '10853', 'feat($httpUrlParams): introduce new service abstracting params serialization', 'This is the first step of the changes [planned]() for $http\'s params serialization. For now a simple refactoring that moves serialization logic to a dedicated service. Even if simple, this first moves already solves some long-opened issues:\r\n\r\nCloses #7429\r\nCloses #9224', '11', null, null, 'pkozlowski-opensource', '2015-01-24T11:33:43Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('449', '37', '10854', 'docs(select): link to ngOptions', '', '0', null, null, 'marcin-wosinek', '2015-01-24T16:02:37Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('450', '37', '10856', 'Regenerated locales due changed currency symbol of Lithuania', 'closes #10855 ', '5', null, null, 'Agrumas', '2015-01-24T20:46:46Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('451', '37', '10857', 'fix(filter): format timezone correctly', 'This fixes timezone formatting in case UTC timezone is used\r\n\r\nCloses #9359', '2', null, null, 'shahata', '2015-01-24T21:18:27Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('452', '37', '10858', 'feat(filter): support conversion to timezone other than UTC', '', '8', null, null, 'shahata', '2015-01-24T21:43:33Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('453', '37', '10862', 'style(*) add rule disallowImplicitTypeConversion', 'Note in route.js the variable slash is already a string\r\nso no conversion is required.', '2', null, null, 'rzschech', '2015-01-25T19:53:59Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('454', '37', '10864', 'chore(ngMock): add `they` helper for testing multiple specs', '', '11', null, null, 'matsko', '2015-01-25T23:20:46Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('455', '37', '10865', 'Add jscs rule requireCurlyBraces and disallowKeywordsOnNewLine', 'I split the `requireCurlyBraces` changes into three commits to make it easer to review the code. They are also ordered from the least contentious (adding curly braces to statements that are already multiline) to most contentious (single line statements that return, break or throw) which makes the code more verbose.\r\n\r\nThe `disallowKeywordsOnNewLine` changes are unfortunately dependent on the `requireCurlyBraces` so can\'t be done as an independent pull request.', '8', null, null, 'rzschech', '2015-01-26T03:53:35Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('456', '37', '10866', 'fix(htmlAnchorDirective): remove \"element !== target element\" check', 'It\'s not really needed due to the way click events are dispatched and propagated', '0', null, null, 'caitp', '2015-01-26T04:39:31Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('457', '37', '10867', 'Update q.js', 'change the variable name to be more accurate describing what it stands for.', '3', null, null, 'cmsdkfz', '2015-01-26T04:55:17Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('458', '37', '10871', 'docs(angular-mocks): replace $rootScope with scope', 'use scope instead of $rootScope in the code example', '8', null, null, 'marcin-wosinek', '2015-01-26T13:02:34Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('459', '37', '10872', 'docs(notarray): add error example and code blocks with suggested fixes', 'Add code examples for the error and the suggested fixes.\r\nFollowup of #10352 suggested by @caitp. ', '0', null, null, 'Puigcerber', '2015-01-26T14:57:00Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('460', '37', '10876', 'docs(CHANGELOG.md): add changelog notes for v1.3.11 and v1.4.0-beta.2', null, '0', null, null, 'caitp', '2015-01-26T21:09:24Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('461', '37', '10880', 'fix(a): don\'t reload if there is only a name attribute', 'Closes #6273', '3', null, null, 'petebacondarwin', '2015-01-27T14:56:03Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('462', '37', '10882', 'docs(guide/Using $location): Replace invalid link.', 'The provided URL incorrectly links to a W3C page about HTML history (retrospective), not about HTML5 Browsing History API. The proposed change is to replace it with correct link to WHATWG HTML5 standard.', '4', null, null, 'AlexYursha', '2015-01-27T16:08:01Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('463', '37', '10883', 'fix($http): properly access request headers with mixed case', 'Fixes #10881', '10', null, null, 'pkozlowski-opensource', '2015-01-27T18:48:26Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('464', '37', '10886', 'docs(error/areq): describe your change...', '', '3', null, null, 'ghost', '2015-01-27T21:49:01Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('465', '37', '1089', 'fix typo', '', '1', null, null, 'kevinold', '2012-06-22T21:13:27Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('466', '37', '10893', 'fix(ngOptions): fix model<->option interaction when using track by', 'Closes #10869', '6', null, null, 'petebacondarwin', '2015-01-28T13:39:36Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('467', '37', '10894', 'fix($parse): remove references to last arguments to a fn call', 'This can be an issue if running (and killing) multiple apps/injectors on the same page. The `args` array holds references to all previous arguments to a function call and thus they cannot be garbage-collected.\r\n\r\nIn a regular (one app/injector on a page) app, this is not an issue.\r\n\r\ncc @aaronfrost', '3', null, null, 'vojtajina', '2015-01-28T15:00:48Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('468', '37', '10895', 'fix($rootScope): allow destroying a root scope', 'When running (i.e. bootstrapping and killing) multiple apps on the same page,\r\nit makes sense to destroy the root scope.\r\n\r\ncc @aaronfrost\r\n\r\n@IgorMinar @petebacondarwin What was the reason for ignoring `$destroy` on a root scope? Am I missing something here?', '18', null, null, 'vojtajina', '2015-01-28T15:17:32Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('469', '37', '10896', 'routeParams are {!Object<string, string>}', 'Calling Object.keys on null is a TypeError. And the mapping should be string -> string.', '0', null, null, 'wesalvaro', '2015-01-28T18:30:07Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('470', '37', '10898', 'fix(validators): check if viewValue is empty for maxlength', '@petebacondarwin This is the bug you found where $isEmpty is called with the modelValue. To make this consistent, we should also add this test to all other validators. Does this make sense to you?', '1', null, null, 'Narretz', '2015-01-28T22:03:31Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('471', '37', '10899', 'feat(limitTo): extend the filter to take a beginning index argument', 'Extend the limitTo filter to take an optional argument for beginning index. It provides a slice-alike functionality to manipulate the input.\r\n\r\nCloses #5355', '4', null, null, 'tameraydin', '2015-01-29T02:21:56Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('472', '37', '109', 'Scenario runner app info', 'Move navigateTo() under browser() and provide browser().location() to allow expecting on the URL of the iframe.', '1', null, null, 'esprehn', '2010-10-29T23:42:26Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('473', '37', '10907', 'user formatNumber from ExternalAPI', 'allow to use \'formatNumber\' function from ExternalAPI\r\nto make more effective filters and directives with apps\r\n<pre>\r\n function publishExternalAPI(angular) {\r\n+ \'formatNumber\': formatNumber,\r\n });\r\n</pre>\r\n', '5', null, null, 'unspike', '2015-01-29T11:49:08Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('474', '37', '10909', 'docs(tutorial/11 - REST and Custom Services): Updated Jasmine matchers l...', '...ink\r\nExisting wiki link is deprecated. ', '5', null, null, 'rohitkandhal', '2015-01-29T16:20:12Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('475', '37', '10910', 'fix($controller): throw better error when controller expression is bad', 'Previously, the error was a JS runtime error when trying to access a property of `null`. But, it\'s\na bit nicer to throw a real error and provide a description of how to fix it. Developer ergonomics\nand all that.\n\nCloses #10875', '1', null, null, 'caitp', '2015-01-29T17:14:57Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('476', '37', '10913', 'docs(ngHide): Use proper selector for CSS override', 'The animation selector gives the default styles greater specificity that should be matched when overriding.\r\n\r\nCloses #10902', '1', null, null, 'iangreenleaf', '2015-01-29T21:54:21Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('477', '37', '10919', 'feat(ngLocale): Add FIRSTDAYOFWEEK and WEEKENDRANGE from google data', 'This data is available on the Google closure localization data used. This pull request adds `FIRSTDAYOFWEEK` and `WEEKENDRANGE` into the `DATETIME_FORMATS` property of $locale.', '19', null, null, 'santialbo', '2015-01-30T22:04:04Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('478', '37', '10920', 'docs(guide/Developer Guide): Updated \"AngularJS\" Book Link', 'Added latest 2014 revision \"AngularJS: Up and Running\" with Amazon link. \"AngularJS\" was previous 2013 version.', '3', null, null, 'AnthumChris', '2015-01-30T23:51:43Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('479', '37', '10922', 'feat(ngModelOptions): allow options to be inherited from ancestors', 'Previously, you had to apply the complete set of ngModelOptions at every point where\r\nyou might want to modify just one or two settings.\r\n\r\nThis change allows more general settings to be applied at nearer the top of the DOM\r\nand then for more specific settings to override those general settings further down\r\nin the DOM.\r\n\r\n*It should also be noted that this change means that `ctrl.$options` will always reference a valid object\r\nand so a large part of this PR is removing the unnecessary checks for existence of that object.*\r\n\r\nBREAKING CHANGE:\r\n\r\nPreviously, if a setting was not applied on ngModelOptions, then it would default\r\nto undefined. Now the setting will be inherited from the nearest ngModelOptions\r\nancestor.\r\n\r\nIt is possible that an ngModelOptions directive that does not set a property,\r\nhas an ancestor ngModelOptions that does set this property to a value other than\r\nundefined. This would cause the ngModel and input controls below this ngModelOptions\r\ndirective to display different behaviour. This is fixed by explictly setting the\r\nproperty in the ngModelOptions to prevent it from inheriting from the ancestor.', '30', null, null, 'petebacondarwin', '2015-01-31T15:42:21Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('480', '37', '10926', 'fix ($compile): keeps prototype properties for template URL directives', 'currently, if a directive definition objects has prototype properties, such as a compile function, those are lost when compiled if the directive has a templateUrl function. Steps to reproduce:\r\n\r\n```js\r\ndirective(\"templateUrlDoesntWork\", function() {\r\n var base = {\r\n compile: function() { \r\n return function(scope, element, attrs) {\r\n scope.value = \"Test\"\r\n }\r\n }\r\n }\r\n inherited = Object.create(base)\r\n inherited.templateUrl = \"test.html\"\r\n return inherited;\r\n}\r\n```\r\n\r\nThe DDO\'s compile function will never be called. On the other hand the same version with a plain template works:\r\n\r\n```js\r\ndirective(\"templateWorks\", function() {\r\n var base = {\r\n compile: function() { \r\n return function(scope, element, attrs) {\r\n scope.value = \"Test\"\r\n }\r\n }\r\n }\r\n inherited = Object.create(base)\r\n inherited.template = \"<p>{{value}}<p>\"\r\n return inherited;\r\n}\r\n```\r\n\r\nThe DDO\'s compile function will be called.\r\n\r\nThis makes a difference for an increasing number of people particularly who are experimenting with ES6 classes in Angular 1.x.', '10', null, null, 'hannahhoward', '2015-02-01T09:31:18Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('481', '37', '10936', 'chore(docs): fix nav scrolling for non-mobile screens', 'Left nav is hidden behind the footer and it\'s impossible to scroll up further\r\n\r\n![screen shot 2015-02-02 at 18 53 25](https://cloud.githubusercontent.com/assets/326935/6005962/cc830588-ab0e-11e4-8ced-a643a7ac59e8.png)\r\n\r\nBrowsers: Chrome 40, FF 35', '0', null, null, 'lukaselmer', '2015-02-02T18:26:04Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('482', '37', '10937', '\"Better user experience\" than what?', 'An adjective was used in comparative form without an antecedent, and, thus, the sentence was not inherently clear.', '5', null, null, 'morrissinger', '2015-02-02T19:12:55Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('483', '37', '10941', 'perf(filterFilter): change loop validation', 'The filterFilter uses the filter method from Array but it seems that the forLoop is more performatic than the native methods.\r\n \r\njsPerf: http://jsperf.com/aarontgrogg-array-filter-vs-for-loop', '8', null, null, 'HenriqueLimas', '2015-02-03T03:15:57Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('484', '37', '10948', 'fix($parse): handle null targets at assign', 'When assigning to a sub property of a property that its value is `null` then write an empty object to the property that will contain the sub-property', '4', null, null, 'lgalfaso', '2015-02-03T17:25:24Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('485', '37', '10950', 'docs(misc-core): Add `undefined` as in/outputs of to/fromJson', 'Request Type: docs\r\n\r\nComponent(s): misc-core\r\n\r\nImpact: small\r\n\r\nComplexity: small\r\n\r\nDetailed Description:\r\nIt is acceptable to pass and possible to receive `undefined` when using the `angular.toJson` and `angular.fromJson` methods.', '6', null, null, 'wesalvaro', '2015-02-03T22:41:26Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('486', '37', '10952', 'fix(sanitize): handle newline characters inside special tags', 'Handle newlines characters when they are present inside `<script>` and `<style>` tags.\r\n\r\nCloses #10943', '4', null, null, 'lgalfaso', '2015-02-03T23:29:23Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('487', '37', '10960', 'fix($location): prevent page reload if url has empty hash at the end', 'If initial url has empty hash at the end, $location replaces it with url without hash causing page reload\r\n\r\nCloses #10397', '2', null, null, 'dtritus', '2015-02-04T09:02:28Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('488', '37', '10964', 'docs(misc/Downloading): Change version to latest.', '', '3', null, null, 'izeye', '2015-02-04T15:46:56Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('489', '37', '10969', 'fix(ngMock): handle cases where injector is created before tests', 'This caused an exception for people who created an injector before the tests actually began to run. Since the array was initialized only in beforeEach, anyone accessing it before that would throw. This is solved easily but initializing the array immediately.\r\n\r\nCloses #10967', '3', null, null, 'shahata', '2015-02-04T20:45:26Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('490', '37', '10970', 'fix($parse): Initialize elements in an array from left to right', 'When constructing an array, never lazy initialize the elements and build the array strictly from left to right.\r\n\r\nCloses: #10968', '2', null, null, 'lgalfaso', '2015-02-04T23:21:15Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('491', '37', '10976', 'fix(sanitize): handle newline characters inside <script> for IE', 'Tweak the regex used match characters inside <script> and <style> to a IE compatible regex.', '5', null, null, 'lgalfaso', '2015-02-05T10:40:49Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('492', '37', '10978', 'optimization in isBoolean', 'typeof comparison with string is slower than triple equal comparison.', '4', null, null, 'zaheer-ahmed', '2015-02-05T11:31:05Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('493', '37', '10983', 'Watch the ngInit so that if it changes it can be re-evaluated.', 'If `ng-init` is used for creating a variable alias it currently only evaluates that alias when it is created. For example:\r\n\r\n```html\r\n<div ng-init=\"model=some.long.variable.name.object\">\r\n <input ng-model=\"model.foo\">\r\n <input ng-model=\"model.bar\">\r\n</div>\r\n```\r\n\r\nIf `some.long.variable.name.object` changes then model won\'t be updated. This change will ensure that if it changes it will be re-evaluated.', '4', null, null, 'rwlogel', '2015-02-05T19:31:46Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('494', '37', '10985', 'fix(ngTouch): don\'t prevent the click event after a touchmove', 'Remove the touchmove handler so that resetState is not called on touchmove. The touchend event handler already prevents the click from being triggered if the distance moved exceeds the MOVE_TOLERANCE, so detection of touchmove is not needed. Previously, because of resetState on touchmove, the click would not be triggered even if the event coordinates changed by only 1px or 2px, which seems to be very common for taps on mobile browsers.', '2', null, null, 'mikec', '2015-02-05T23:09:33Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('495', '37', '10987', 'refactor(ngSwitch):delete default directive restriction', 'Delete the directive restriction to avoid code duplication since the default is already applied\r\n\r\nThis line is uneccesary because the default value is set inside the registerDirective function:\r\n\r\n```\r\ndirective.index = index;\r\ndirective.name = directive.name || name;\r\ndirective.require = directive.require || (directive.controller && directive.name);\r\ndirective.restrict = directive.restrict || \'EA\';\r\n```\r\n\r\nPR baked during http://www.meetup.com/AngularJS-BH/events/220033641/', '0', null, null, 'diegofss11', '2015-02-06T01:48:55Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('496', '37', '10989', 'invoke angular.element(\'\').click in controller got an error', 'that \"node\" maybe undefined in compositeLinkFn function', '3', null, null, 'liuxiaodong', '2015-02-06T02:38:52Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('497', '37', '10990', 'fix(ngSanitize): do not ignore white-listed svg camelCased attributes', 'Closes #10779\r\nPR baked during http://www.meetup.com/AngularJS-BH/events/220033641/', '3', null, null, 'hugomn', '2015-02-06T03:53:25Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('498', '37', '10992', 'Update filter.js', 'Solve case : https://github.com/angular/angular.js/issues/10991\r\nwith using filter and deep object', '11', null, null, 'ElephantRose', '2015-02-06T10:49:38Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('499', '37', '10996', 'fix(ngTouch): check undefined tagName for SVG event target', 'When target click element is an SVG tag, event.target.tagName and event.target.blur are undefined on Chrome v40 and iOS 8.1.3', '6', null, null, 'mikec', '2015-02-06T17:43:52Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('500', '37', '10999', 'doc(filter): support timezones other than UTC', '', '0', null, null, 'shahata', '2015-02-06T22:33:03Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('501', '37', '11', 'Implement ng:src and ng:href with markup', '', '1', null, null, 'alkis', '2010-09-17T17:48:38Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('502', '37', '110', 'Fix $location service', 'Fixed the issue #98', '2', null, null, 'vojtajina', '2010-10-30T15:06:34Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('503', '37', '11000', 'Update controller.ngdoc fixes grammar', 'Improper use of the word \'which\'. \r\n\r\nBEFORE: The following example uses a Controller to add a method to the scope, which doubles a number:\r\nAFTER: The following example uses a Controller to add a method, which doubles a number, to the scope:', '3', null, null, 'rwuebker', '2015-02-06T23:03:29Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('504', '37', '11005', 'feat(ngModel): support conversion to timezone other than UTC', '', '3', null, null, 'shahata', '2015-02-07T17:36:46Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('505', '37', '11006', 'updated copy to throw an error if attempting to copy an element. if copy...', '...ing an object that contains an element, the element isnt copied recursively. watch does not copy an object for the last value if it is an element.', '3', null, null, 'iamchairs', '2015-02-07T19:46:59Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('506', '37', '11007', 'fix(ngAria): correctly set \"checked\" attr for checkboxes and radios', 'Make sure the checked attribute is set correctly for:\r\n- checkboxes with string and integer models using ngTrueValue /\r\nngFalseValue\r\n- radios with integer models\r\n- radios with boolean models using ngValue\r\n\r\nFixes #10389\r\nFixes #10212\r\n\r\n@marcysutton can you take a look at this?', '4', null, null, 'Narretz', '2015-02-08T18:17:25Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('507', '37', '11009', '\'reset all errors in form\' functionality', 'This PR contains new method for form and inputs (controllers) that allows to reset all errors added with $setValidity method. \r\nUse case: \r\n 1. User fills form and click submit button. Application sends request to the server. Server validates this form somehow. Server decided that field \'A\' is invalid. \r\n 2. Application calls $setValidity method for the input \'A\' to mark it as ng-invalid-*\r\n 3. User changes field \'A\' and click submit button. \r\n 4. At this time server decided that in this condition user specified wrong value in the field \'B\'.\r\n 5. At this time, application can\'t reset fields marked with $setValidity all together. \r\n\r\nThat\'s the functionality I tried to cover with this PR.\r\n\r\n plunker: http://plnkr.co/edit/aev16Y3cAxTljhctUDMI', '1', null, null, 'taqi', '2015-02-09T15:38:49Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('508', '37', '11011', '\'reset all errors in form\' functionality', 'This PR contains new method for form and inputs (controllers) that allows to reset all errors added with $setValidity method.\r\nUse case:\r\n1. User fills form and click submit button. Application sends request to the server. Server validates this form somehow. Server decided that field \'A\' is invalid.\r\n2. Application calls $setValidity method for the input \'A\' to mark it as ng-invalid-*\r\n3. User changes field \'A\' and click submit button.\r\n4. At this time server decided that in this condition user specified wrong value in the field \'B\'.\r\nAt this time, application can\'t reset fields marked with $setValidity all together.\r\n\r\nThat\'s the functionality I tried to cover with this PR.\r\n\r\nplunker: http://plnkr.co/edit/aev16Y3cAxTljhctUDMI\r\n', '1', null, null, 'taqi', '2015-02-09T15:57:37Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('509', '37', '11012', 'feat(ngModel, form): add \'reset all errors\' functionality', 'This PR contains new method for form and inputs (controllers) that allows to reset all errors added with $setValidity method.\r\nUse case:\r\n1. User fills form and click submit button. Application sends request to the server. Server validates this form somehow. Server decided that field \'A\' is invalid.\r\n2. Application calls $setValidity method for the input \'A\' to mark it as ng-invalid-*\r\n3. User changes field \'A\' and click submit button.\r\n4. At this time server decided that in this condition user specified wrong value in the field \'B\'.\r\nAt this time, application can\'t reset fields marked with $setValidity all together.\r\n\r\nThat\'s the functionality I tried to cover with this PR.\r\n\r\nplunker: http://plnkr.co/edit/aev16Y3cAxTljhctUDMI\r\n', '3', null, null, 'taqi', '2015-02-09T16:04:22Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('510', '37', '11014', 'Update animations.css', 'well done', '3', null, null, 'joshuamahlum', '2015-02-09T17:11:06Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('511', '37', '11017', 'feat(ngOptions): add support for disabling an option', 'This patch adds support for disabling options based on model values. The\r\n\"disable when\" syntax allows for listening to changes on those model values,\r\nin order to dynamically enable and disable the options.\r\n\r\nThe changes prevent disabled options from being written to the selectCtrl\r\nfrom the model. If a disabled selection is present on the model, normal\r\nunknown or empty functionality kicks in.\r\n\r\ncloses #638', '22', null, null, 'sjbarker', '2015-02-09T21:53:59Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('512', '37', '11018', 'remove scare quotes and so-called', 'So-called is defined as \"commonly named\" or \"falsely or improperly so named\". The scare quotes are definitely unnecessary. It makes it sound like things aren\'t actually called that, or it hints at sarcasm: \"He\'s the so-called \'mayor\', but he never does anything!\" \r\n\r\nhttp://en.wikipedia.org/wiki/Scare_quotes', '3', null, null, 'chrisranderson', '2015-02-10T04:15:59Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('513', '37', '11021', 'refactor(interpolate): remove redundant $watchGroup param', '', '1', null, null, 'marcin-wosinek', '2015-02-10T12:25:29Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('514', '37', '11023', 'fix(form): set $submitted to true on child forms when parent is submitted', 'FormController will now call $setSubmitted on its child forms when it is submitted.\r\n\r\nCloses #10071', '17', null, null, 'ckniffen', '2015-02-10T19:02:45Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('515', '37', '11026', 'docs($resource): describe your change...', 'fix typo: \'parametrized\' -> \'parameterized\'.', '3', null, null, 'HarveyZhang', '2015-02-10T23:32:44Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('516', '37', '11027', 'Fixing ng-jq bug with using getNgAttribute before jqLite variable is set', 'The unit tests wasn\'t able to catch this unless it\'s on a \'fresh\' angular page with ng-jq already added before angular bootstrapping. I\'ve removed the need for jq() to rely on getNgAttribute and instead using element.getAttribute function with the found prefix.\r\n\r\nCould use some direction on how to test ng-jq more thoroughly so this doesn\'t happen again in the future.\r\n\r\nThis fixes issue #11016.', '4', null, null, 'mboudreau', '2015-02-10T23:57:05Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('517', '37', '11028', 'fix($rootScope, ngRepeat): accomodate objects resulting from Object.create(null)', 'Use Object.hasOwnProperty.call when iterating over properties of user-supplied objects.\r\nAllow for objects not inheriting from Object.prototype.', '6', null, null, 'HandyAndyShortStack', '2015-02-11T00:16:29Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('518', '37', '11029', 'docs(guide/concepts): (fix) spelling error', 'Fixed spelling error on line 185', '3', null, null, 'mryan3', '2015-02-11T01:38:18Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('519', '37', '11030', 'Including doc for personal newbie error case.', 'I got an error leading me to this doc via the link below from the log exception\r\n\r\nhttps://docs.angularjs.org/error/$injector/unpr?p0=$scopeProvider%20%3C-%20$scope%20%3C-%20NoteService\r\n\r\nand it was still difficult to figure out the cause.\r\nI later(it took me hours) discovered that i mistakenly registered my controller as a service.', '4', null, null, 'ahmedalejo', '2015-02-11T02:10:55Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('520', '37', '11035', 'Issue with canceling XHR request using promises - fixed', 'Fixes #10890 and #9332.', '19', null, null, 'netman92', '2015-02-11T12:54:31Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('521', '37', '11036', 'docs(tutorial/12 - Applying Animations): Grammar', 'Added a comma in a conditional sentence.', '3', null, null, 'AskYous', '2015-02-11T16:20:28Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('522', '37', '11037', 'docs(tutorial/12 - Applying Animations): Grammar', 'Added missing \"the\" in a sentence.', '0', null, null, 'AskYous', '2015-02-11T16:23:39Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('523', '37', '11042', 'chore(ci): make all browserstack tests allowed failures', '', '1', null, null, 'juliemr', '2015-02-12T01:11:51Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('524', '37', '11043', 'chore(ci): update to use the latest sauce connect (4.3 to 4.3.6)', 'I\'m hoping that this will address some of the \'Bad Gateway\' issues that we\'ve been seeing with sauce labs.', '1', null, null, 'juliemr', '2015-02-12T01:29:52Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('525', '37', '11044', 'Fixing ng-jq issue with getNgAttribute', 'The unit tests wasn\'t able to catch this unless it\'s on a \'fresh\' angular page with ng-jq already added before angular bootstrapping. I\'ve removed the need for jq() to rely on getNgAttribute and instead using element.getAttribute function with the found prefix.\r\n\r\nCould use some direction on how to test ng-jq more thoroughly so this doesn\'t happen again in the future.\r\n\r\nThis fixes issue #11016.', '14', null, null, 'mboudreau', '2015-02-12T02:49:49Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('526', '37', '11046', 'fix(ngModel): fix issues when parserName is same as validator key', '', '2', null, null, 'petebacondarwin', '2015-02-12T08:30:37Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('527', '37', '1105', 'Update directive docs, change $defer to $timeout', 'Minor fix to directive docs, change $defer to $timeout', '1', null, null, 'm5m1th', '2012-07-02T01:32:08Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('528', '37', '11051', 'fix(syntax): `.finally` syntax error in Android 2.3', 'Android 2.3 throws an `Uncaught SyntaxError: Unexpected token finally`\r\npointing at this line. Change `.finally` to bracket notation.', '1', null, null, 'adamdbradley', '2015-02-13T04:00:54Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('529', '37', '11052', 'perf(ngOptions): only watch labels if a display expression is specified', 'See #11050', '2', null, null, 'petebacondarwin', '2015-02-13T11:11:11Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('530', '37', '11057', 'test($interpolate): ensure constant interpolation watchers are removed', 'I\'ve found this test useful when looking into $interpolate changes, similar to the test above it for one-time interpolation...', '0', null, null, 'jbedard', '2015-02-14T06:57:12Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('531', '37', '11058', 'refactor($compile): combining elementControllers and controllers vars', 'Fixes a TODO. Not sure why this wasn\'t done initially...?\r\n\r\n(this was originally part of #9772)', '1', null, null, 'jbedard', '2015-02-14T07:07:34Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('532', '37', '11059', 'perf($compile): avoid .data when fetching required controllers', 'This changes `getControllers` to try fetching controllers from `elementControllers` which in many cases can avoid calling `.data`. For a largetable-bp benchmark of `<input ng-model=\"foo\">` elements this reduces the create step GC about 50% (which seems crazy, but that\'s what chrome keeps claiming...) and improves the time 5-10%.\r\n\r\n(this was originally part of #9772)', '4', null, null, 'jbedard', '2015-02-14T07:21:48Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('533', '37', '1106', 'Tutorial - Step 3 - Filtering repeaters: fixed typo', 'Changed `ngRepeate` to `ngRepeat`.', '2', null, null, 'rishabhsrao', '2012-07-02T09:07:08Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('534', '37', '11062', 'Update broken e2e tests.', 'The e2e tests now don\'t work :-(. This is an update to that.', '8', null, null, 'benedictchen', '2015-02-15T06:23:57Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('535', '37', '11065', 'docs(tutorial/8 - More Templating): describe your change...', 'Fixing missing route params being `undefined` bug.', '4', null, null, 'benedictchen', '2015-02-15T10:21:49Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('536', '37', '11074', 'feat(annotate): support injection of `@` function parameters in CoffeeScript 1.9', 'With the release of CoffeeScript 1.9, they changed the strategy for the\r\ngeneration of internal compiler variable names. This means using\r\nfunction parameters prefixed with an `@` no longer are injected\r\nproperly due to CoffeeScript converting them to an `_at_`. (ie. `@myVal`\r\nbecomes `_at_myVal`). This commit adds support to the Angular\r\nannotator for this.', '4', null, null, 'NickClark', '2015-02-16T16:39:43Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('537', '37', '11079', 'docs(input): better accessibility in examples', 'The input and ngModel docs examples have no labels or accessible error handling. They could do more to encourage accessibility best practices. This change does two things:\r\n\r\n 1. Adds labels to each input.\r\n 1. Wraps error messages with `role=\"alert\" so they will announce in a screen reader.\r\n\r\nEven though Angular 2.0 is coming soon, these docs will live on with the 1.0 project so it makes sense to show more accessible examples. (Better late than never.)', '46', null, null, 'marcysutton', '2015-02-17T00:37:28Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('538', '37', '1108', 'Introduce NgError', 'First change for https://github.com/angular/angular.js/issues/1041\n\nChanges include:\n\n- Introduces a NgError class which extends Error and does String Interpolation\n- Tests for the same\n- Switch over to using NgError with interpolation throughout instead of the current string concatenation method\n\nFew doubts:\n- NgError - SHould I define it as it is or create a provider for it? I don\'t think I like the provider theme for this particular object that is followed for the rest of the objects in the ng codebase, but your call.\n- Documentation - Anything else I need to document? ANy particular format?', '14', null, null, 'shyamseshadri', '2012-07-03T13:02:38Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('539', '37', '11081', 'docs(guide/Services): describe your change...', 'module was not loaded in the unit test program', '3', null, null, 'bhalajin', '2015-02-17T05:00:48Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('540', '37', '11082', 'perf(benchmark): add ngmodel benchmarks to largetable-bp', 'This is the benchmark which I\'ve found useful for testing various ngmodel issues.\r\n\r\n(a similar commit was originally part of #9772)', '0', null, null, 'jbedard', '2015-02-17T05:52:57Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('541', '37', '11083', 'In this here should be an example', '', '5', null, null, 'Rohit3230', '2015-02-17T06:29:56Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('542', '37', '11084', 'perf($compile): replace forEach(controller) with plain loops', 'Pretty minor but it is often a couple % spent just within these forEach(controller) calls. Minor perf aside, imo moving this chunk of code to it\'s own method is nicer anyway to reduce the size of `nodeLinkFn` a bit... \r\n\r\n(this was originally part of #9772)', '11', null, null, 'jbedard', '2015-02-17T07:32:56Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('543', '37', '11086', 'Update filter.js', 'fix(filterFilter): solve issue #10991 with null property value when using objects with filter\r\n\r\nRegarding the issue #10991 and the following discussion #10992', '10', null, null, 'ElephantRose', '2015-02-17T09:53:18Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('544', '37', '11087', 'docs(ngRepeat): there is no clarification about \'as\'', 'as [variable name] is not an operator but rather a part of ngRepeat micro-syntax so it can be used only at the end (and not as operator, inside an expression)\r\n\r\nThere is no such clarification. It would be better to make such addition in it.', '4', null, null, 'FlamesoFF', '2015-02-17T10:42:53Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('545', '37', '11088', 'refactor($templateRequest): Usage of .finally is throwing errors in And...', '', '2', null, null, 'dbabaioff', '2015-02-17T14:33:19Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('546', '37', '1109', 'let ng-pluralize support promises in when expressions', 'I\'m not sure, this is the best approach, but it worked for me (tm).', '2', null, null, 'm6w6', '2012-07-03T14:05:16Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('547', '37', '11092', 'fix(select): remove unknown option when model is undefined and empty option is available', 'Closes #11078', '3', null, null, 'petebacondarwin', '2015-02-17T22:50:38Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('548', '37', '11094', 'docs(limitToFilter): mark the `begin` param as optional', '', '0', null, null, 'gkalpak', '2015-02-18T05:48:46Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('549', '37', '11096', 'fix(form): allow dynamic form names which initially evaluate to blank', 'Previously the form name watching was initialized based on the initial name *value* instead of the attribute being set.', '10', null, null, 'jbedard', '2015-02-18T07:20:13Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('550', '37', '11097', 'fix($http): promise chain for helper methods', 'can has less promise chain breaking\r\n\r\n```javascript\r\nangular.module(\'app\', [])\r\n.factory(\'Auth\', function($http) {\r\n return {\r\n login: function(data) {\r\n return $http.post(\'/signup\', data)\r\n .success(function(data) {\r\n return data;\r\n })\r\n .error(function(err) {\r\n return $q.reject(err);\r\n });\r\n } // end login\r\n }; // end module\r\n}) // end factory\r\n.controller(\'MainCtrl\', function($scope, $state, Auth) {\r\n\r\n $scope.login = function(user) {\r\n Auth.login(user).then(function(data) {\r\n $state.go(\'dashboard\');\r\n })\r\n .catch(function(err) {\r\n alert(err);\r\n });\r\n }; // end login\r\n}); // end ctrl\r\n```\r\nsince the promise chain is broken when using `Auth.login().then(otherStuff).catch(errorStuff)` you get the result from the http and not the error from `.error`.', '4', null, null, 'gdi2290', '2015-02-18T08:18:37Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('551', '37', '111', 'Update extensionMap()', 'See issue #51\r\n\r\nIf user override existing extension, angular properties ($) will be preserved.\r\n\r\nThis piece of logic could be refactored into separate method:\r\nSomething like we have extend(), addMissingProperties() - I can\'t find a name\r\nfor this method...\r\n', '5', null, null, 'vojtajina', '2010-10-30T19:00:00Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('552', '37', '11103', 'chore(travis): turn on caching for node_modules and bower_components directories', 'The cache behavior is documented at http://docs.travis-ci.com/user/caching/\r\n\r\nThis commit also disabled our custom caching via npm-bundler-deps.sh', '0', null, null, 'IgorMinar', '2015-02-19T10:47:34Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('553', '37', '11104', 'doc(ngIf): mention multiElement in documentation', '', '12', null, null, 'marcin-wosinek', '2015-02-19T11:38:21Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('554', '37', '11106', 'using ng-checked=\"expression\" will never update the respective ng-model value.', 'I\'m adding description so that everyone know that updating ng-checked for checked will never update the binding between ng-model variable.\r\n\r\nPlunkr\r\nhttp://plnkr.co/edit/vdVMmhe0rY1aGzX4koyM?p=preview', '4', null, null, 'pankajparkar', '2015-02-19T18:26:11Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('555', '37', '11107', 'docs(guide/Expressions): add punctuation for clarity', 'add commas and an \'a\' for clarity', '0', null, null, 'kevdonk', '2015-02-19T21:38:47Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('556', '37', '11108', 'docs($sce): .trustAs() contexts list contains typo', '`resource_url` --> `resourceUrl`\r\nDocumentation for docs($secDelegate) is correct.', '3', null, null, 'awdyson', '2015-02-19T23:29:11Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('557', '37', '11110', 'Fix npm shrinkwrap', 'cc: @juliemr ', '24', null, null, 'IgorMinar', '2015-02-20T05:44:05Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('558', '37', '11111', 'chore(ci): update npm before install', '', '3', null, null, 'juliemr', '2015-02-20T06:08:58Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('559', '37', '11116', 'fix(filterFilter): solve issue #10991 with null property value when using objects with filter ', 'fix(filterFilter): solve issue #10991 with null property value when using objects with filter \r\n\r\n Regarding the issue #10991 and the following discussion #10992', '13', null, null, 'ElephantRose', '2015-02-20T11:03:22Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('560', '37', '11117', 'ngBind directive and array', 'Hello,\r\nI have an issue with the ngBind directive.\r\nIf I try to pass an array or a function that return an array angular give me this error:\r\n> Error: 10 $digest() iterations reached. Aborting!\r\nWatchers fired in the last 5 iterations: [[\"[\\\"1\\\",\\\"2\\\",\\\"3\\\"]; newVal: [\\\"1\\\",\\\"2\\\",\\\"3\\\"]; oldVal: [\\\"1\\\",\\\"2\\\",\\\"3\\\"]\"],[\"[\\\"1\\\",\\\"2\\\",\\\"3\\\"]; newVal: [\\\"1\\\",\\\"2\\\",\\\"3\\\"]; oldVal: [\\\"1\\\",\\\"2\\\",\\\"3\\\"]\"],[\"[\\\"1\\\",\\\"2\\\",\\\"3\\\"]; newVal: [\\\"1\\\",\\\"2\\\",\\\"3\\\"]; oldVal: [\\\"1\\\",\\\"2\\\",\\\"3\\\"]\"],[\"[\\\"1\\\",\\\"2\\\",\\\"3\\\"]; newVal: [\\\"1\\\",\\\"2\\\",\\\"3\\\"]; oldVal: [\\\"1\\\",\\\"2\\\",\\\"3\\\"]\"],[\"[\\\"1\\\",\\\"2\\\",\\\"3\\\"]; newVal: [\\\"1\\\",\\\"2\\\",\\\"3\\\"]; oldVal: [\\\"1\\\",\\\"2\\\",\\\"3\\\"]\"]]\r\n at Error (native)\r\n at Object.$get.e.$digest (http://cdnjs.cloudflare.com/ajax/libs/angular.js/1.0.3/angular.min.js:85:217)\r\n at Object.$get.e.$apply (http://cdnjs.cloudflare.com/ajax/libs/angular.js/1.0.3/angular.min.js:86:469)\r\n at http://cdnjs.cloudflare.com/ajax/libs/angular.js/1.0.3/angular.min.js:15:396\r\n at Object.d [as invoke] (http://cdnjs.cloudflare.com/ajax/libs/angular.js/1.0.3/angular.min.js:26:401)\r\n at pb (http://cdnjs.cloudflare.com/ajax/libs/angular.js/1.0.3/angular.min.js:15:317)\r\n at jc (http://cdnjs.cloudflare.com/ajax/libs/angular.js/1.0.3/angular.min.js:15:178)\r\n at http://cdnjs.cloudflare.com/ajax/libs/angular.js/1.0.3/angular.min.js:159:424\r\n at HTMLDocument.a (http://cdnjs.cloudflare.com/ajax/libs/angular.js/1.0.3/angular.min.js:114:500)\r\n at http://cdnjs.cloudflare.com/ajax/libs/angular.js/1.0.3/angular.min.js:22:462\r\n2015-02-20 14:17:54.409angular.min.js:85 Uncaught Error: 10 $digest() iterations reached. Aborting!\r\nWatchers fired in the last 5 iterations: [[\"[\\\"1\\\",\\\"2\\\",\\\"3\\\"]; newVal: [\\\"1\\\",\\\"2\\\",\\\"3\\\"]; oldVal: [\\\"1\\\",\\\"2\\\",\\\"3\\\"]\"],[\"[\\\"1\\\",\\\"2\\\",\\\"3\\\"]; newVal: [\\\"1\\\",\\\"2\\\",\\\"3\\\"]; oldVal: [\\\"1\\\",\\\"2\\\",\\\"3\\\"]\"],[\"[\\\"1\\\",\\\"2\\\",\\\"3\\\"]; newVal: [\\\"1\\\",\\\"2\\\",\\\"3\\\"]; oldVal: [\\\"1\\\",\\\"2\\\",\\\"3\\\"]\"],[\"[\\\"1\\\",\\\"2\\\",\\\"3\\\"]; newVal: [\\\"1\\\",\\\"2\\\",\\\"3\\\"]; oldVal: [\\\"1\\\",\\\"2\\\",\\\"3\\\"]\"],[\"[\\\"1\\\",\\\"2\\\",\\\"3\\\"]; newVal: [\\\"1\\\",\\\"2\\\",\\\"3\\\"]; oldVal: [\\\"1\\\",\\\"2\\\",\\\"3\\\"]\"]]\r\n\r\nI think that the problem is that the watcher un nbBind directive don\'t compare the result of the expression the right way because of the third argument:\r\n\r\n>When objectEquality == true, inequality of the watchExpression is determined according to the angular.equals function. To save the value of the object for later comparison, the angular.copy function is used. This therefore means that watching complex objects will have adverse memory and performance implications.\r\n\r\nMaybe that set it to true all the time is not a good solution for that problem (memory and so perfomance), but I think add a strict argument to the directive (or an orther ngBindStrict directive) may be usefull ?\r\n\r\nI put the case in a jsfiddle here -> http://jsfiddle.net/rk5g8gmc/17/\r\n\r\nthanks !', '2', null, null, 'ydeshayes', '2015-02-20T13:28:58Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('561', '37', '11119', 'refactor(ngSwitch):delete default directive restriction', 'delete the directive restriction to avoid code duplication since the default is already applied\r\n\r\nCloses #10987', '2', null, null, 'pkozlowski-opensource', '2015-02-20T20:28:12Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('562', '37', '11124', 'fix(ngSanitize): Do not ignore white-listed svg camelCased attributes', 'Closes #10779\r\nCloses #10990 \r\n\r\nThis is rebases & cleaned-up version of #11030 to check it on TravisCI', '1', null, null, 'pkozlowski-opensource', '2015-02-21T17:38:46Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('563', '37', '11126', 'Cherry pick 11110', '', '2', null, null, 'IgorMinar', '2015-02-22T02:56:14Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('564', '37', '11127', 'Cherry pick 11110', '', '0', null, null, 'IgorMinar', '2015-02-22T02:57:22Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('565', '37', '1113', 'Dynamic default params for $resource', 'As discussed in an email thread, here is a pull request to get dynamic default parameters for $resource so it\'s possible to do:\n\nvar User = $resource(\'/user\', {\'group\': function() { return $location.search().group; }});\n\n....\n//modify group in $location\n....\n\n// the group is fetched only when I request for the user\nuser = User.get({\'userId\': myId}, function() { .... });', '9', null, null, 'lascap', '2012-07-04T08:11:33Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('566', '37', '11132', 'docs(versioning): modify versioning for < v1.0.1', 'less than angular v1.0.2 dose not support Semantic Versioning. so You can not access api docs because of difference of file path. fix it.\r\n\r\nIf merge this PR You can access less than v1.0.2 api docs from versioning select menu on api doc.', '1', null, null, 'kashiro', '2015-02-22T13:08:08Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('567', '37', '11133', 'docs(ngDisabled): improve wording', 'Fixes #11032', '2', null, null, 'pkozlowski-opensource', '2015-02-22T15:45:12Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('568', '37', '11138', 'docs(ngDisabled): clarify the explanation of attributes and interpolatio...', '...n', '1', null, null, 'Narretz', '2015-02-22T18:26:12Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('569', '37', '11142', 'chore(grunt): use path.normalize in grunt shell:npm-install', 'This fixes the command on Windows clients.\r\n\r\ncc @IgorMinar \r\n\r\nAlso needed for 1.3.x', '2', null, null, 'Narretz', '2015-02-22T20:45:44Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('570', '37', '11144', 'docs(orderBy): Start with a simpler example.', 'Per the question raised at this Stack Overflow question:\r\nhttp://stackoverflow.com/questions/24048590/angularjs-ng-repeat-orderby-date-not-working\r\n\r\nThe first example on this page is too complex to convey the simplest possible case for using this function.', '7', null, null, 'edthedev', '2015-02-23T01:29:53Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('571', '37', '11146', 'updated isDate() function description', 'Provided proper description for isDate() function to help developers avoid confusion.', '7', null, null, 'jparmar', '2015-02-23T09:53:53Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('572', '37', '1115', 'AST modifier', 'Hey,\n\nI have added a error-compressor folder to the lib. There are two files:\n\n-compressor.js : This file is a node.js file, which pulls in uglify-js and basically looks through the AST and modifies it in place to replace\n\nNgError(\"This {0} is {1}\", foo, bar);\n\nwith\n\nNgError(\"NgErr 1 : {0} {1}\", foo, bar);\n\nand creates a table with entries\n\n1: This {foo} is {bar}: NgErr 1 : {foo} {bar}\n\nThis can later be outputted to a file with proper HTML formatting.\n\nNext steps would be to clean this up and integrate it as part of the compile process, which I will do tomorrow.', '1', null, null, 'shyamseshadri', '2012-07-04T12:21:50Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('573', '37', '11150', 'docs($animate): describe your change...', 'Adding a clarifying sentence to $animate method to explain that a CSS Style in `from` will be applied immediately if there is no corresponding CSS Style in `to`.', '3', null, null, 'GregM', '2015-02-23T17:07:39Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('574', '37', '11152', 'feat($interpolate): MessageFormat extensions', 'See [**plunker example**](http://plnkr.co/edit/QBVRQ70dvKZDWmHW9RyR?p=preview)\r\n\r\nExtend interpolation with MessageFormat like syntax.\r\n\r\nRef: <https://docs.google.com/a/google.com/document/d/1pbtW2yvtmFBikfRrJd8VAsabiFkKezmYZ_PbgdjQOVU/edit>\r\n\r\nExample:\r\n\r\n```html\r\n\r\n{{recipients.length, plural, offset:1\r\n =0 {You gave no gifts}\r\n =1 { {{ recipients[0].gender, select,\r\n male {You gave him a gift.}\r\n female {You gave her a gift.}\r\n other {You gave them a gift.}\r\n }}\r\n }\r\n one { {{ recipients[0].gender, select,\r\n male {You gave him and one other person a gift.}\r\n female {You gave her and one other person a gift.}\r\n other {You gave them and one other person a gift.}\r\n }}\r\n }\r\n other {You gave {{recipients[0].gender}} and # other people gifts. }\r\n}}\r\n```\r\n\r\nThis is a SEPARATE module so you MUST include\r\nangular-messageformat.min.js. In addition, your application module\r\nshould depend on the \"ngMessageFormat\".\r\n(e.g. angular.module(\'myApp\', [\'ngMessageFormat\']);)\r\n\r\n$interpolate automatically gets the new behavior.\r\n\r\nQuick note on syntax differences from MessageFormat:\r\n- MessageFormat directives are always inside {{ }} instead of\r\n single { }. This ensures a consistent interpolation syntax (else you\r\n could interpolate in more than one way and have to pick one based on\r\n feature availability for that syntax.)\r\n- The first word inside such syntax can be an arbitrary Angular\r\n expression instead of a single identifier.\r\n- You can nest them as deep as you want. As mentioned earlier, you\r\n would use {{ }} to start the nested interpolation that may optionally\r\n include select/plural extensions.\r\n- Only \"select\" and \"plural\" keywords are currently recognized.\r\n- Quoting support is coming in a future commit.\r\n- Positional arguments/placeholders are not supported. They don\'t make\r\n sense in Angular templates anyway (they are only helpful when using\r\n API calls from a programming language.)\r\n- Redefining of the startSymbol and endSymbol used for interpolation is\r\n not currently supported yet.', '40', null, null, 'chirayuk', '2015-02-23T20:13:19Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('575', '37', '11154', 'chore(grunt): use rimraf to remove node_modules on Windows', 'This works very well.\r\nThe way it\'s called however is quite obtuse at the moment, so I\'m happy with any suggestions.', '1', null, null, 'Narretz', '2015-02-23T22:34:15Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('576', '37', '11155', ' GET file://query.yahooapis.com/... net::ERR_FILE_NOT_FOUND', 'This is an error due to index.html request from the local hosting server. Faninace.js reference the URL address start from //query.yahooapi.com/.... \r\nSolution: Add http: in front of the //query.yahooapis.com/....', '3', null, null, 'gonghaima', '2015-02-24T02:48:13Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('577', '37', '11156', 'step_05.ngdoc Bug Fixes', 'The code snippets demonstrating dependency injection don\'t show the dependencies being injected, but only as arguments. These changes are untested, but should be correct.', '4', null, null, 'martellaj', '2015-02-24T04:36:01Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('578', '37', '11159', 'feat($qRaf): introduce requestAnimationFrame-based promise service', '', '26', null, null, 'matsko', '2015-02-24T06:33:32Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('579', '37', '11161', 'chore(ngLocale): build commonjs files in closure slurper', 'As decided in https://github.com/angular/angular.js/pull/10732#issuecomment-75739646', '4', null, null, 'bendrucker', '2015-02-24T12:28:13Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('580', '37', '11164', 'chore(bower/publish): run local precommit script if available', 'This allows us to do processing on the files in angular bower repositories before committing them.\r\nIn particular we can generate the i18n locale export files.\r\nSee #10732 ', '0', null, null, 'petebacondarwin', '2015-02-24T15:01:40Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('581', '37', '11168', 'chore(ci): update Karma to 0.12.32-beta.0', 'This will hopefully make the CI more stable because of its updated\r\nversion of socket.io.', '7', null, null, 'juliemr', '2015-02-24T17:24:19Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('582', '37', '11171', 'fix(select): Select option with ngOptions when label equals $viewValue', 'Fix selectController when using ngOptions and the label equals the $viewValue of the ngModel.\r\nOtherwise, when the options are loaded, selectController set the value of the select to a \r\nnon existing value\r\n\r\nFixes #11170', '1', null, null, 'felixcoto', '2015-02-24T18:48:35Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('583', '37', '11172', 'docs(ngModel.NgModelController): Remove \"newer browsers only\" clarification on contenteditable', 'contenteditable is supported in many more browsers than Angular itself is.\r\n\r\nhttp://caniuse.com/#feat=contenteditable', '3', null, null, 'jkjustjoshing', '2015-02-24T19:33:38Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('584', '37', '11173', 'perf(rootScope): Fix a memory leak', 'Closes #11169', '10', null, null, 'realityking', '2015-02-25T01:58:17Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('585', '37', '11180', 'docs(guide/Directives): mentioned shorthand for \"return function()\"', 'The shorthand is little confusing, added clarification.', '6', null, null, 'zbycz', '2015-02-25T16:25:20Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('586', '37', '11182', 'Fix ngjq', '@mboudreau This is a wip for the e2e tests. You can play around with it. (use `grunt test:protractor`) You can als comment out the other test paths in `protractor.conf.js`, so only the e2e folders get run:\r\n```\r\n// \'build/docs/ptore2e/**/*.js\',\r\n// \'docs/app/e2e/**/*.scenario.js\'\r\n```\r\n\r\nThe problem is currently that we don\'t have a reliable method of detecting what is loaded, because `jq` is private. We might have to expose it. Currently we can only test that it doesn\'t break.', '25', null, null, 'Narretz', '2015-02-25T20:22:21Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('587', '37', '11185', 'V1.2.x', '', '1', null, null, 'rpadala-nisum-com', '2015-02-26T02:35:21Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('588', '37', '11189', 'docs(ngMessages): ng-messages-include defined on ng-messages element', 'I was having issues implementing `ngMessages` together with `ngMessagesInclude` where the template I was trying to include simply wouldn\'t show up. This was until I realized that, contrary to how the docs describe it, Angular expected ng-messages-include to be defined on the same element as ng-messages (which I later discovered was how eg. [this tutorial](http://www.yearofmoo.com/2014/05/how-to-use-ngmessages-in-angularjs.html) described the implementation of ngMessages).', '5', null, null, 'fredrikekelund', '2015-02-26T09:56:07Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('589', '37', '11192', 'docs(ngDisabled): Clarify \"incorrect\" example', 'Add obvious label to example of incorrect usage. To a user scanning the docs (ie. me) it\'s easy to miss the fact that this top example doesn\'t actually work.', '4', null, null, 'ejb', '2015-02-26T16:04:59Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('590', '37', '11194', 'docs(tutorial/0 - Bootstrapping): Clearing browser cache guarantees that your app will retrieve new files.', 'Clearing browser cache guarantees that your app will retrieve new files.', '4', null, null, 'BorlandP', '2015-02-26T16:54:15Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('591', '37', '11199', 'fix(ngMessages): ensure that multi-level transclusion works with ngMessagesInclude', 'ngRepeat and any other directives that alter the DOM structure using\r\ntransclusion may cause ngMessagesInclude to behave in an unpredictable\r\nmanner. This fix ensures that the element containing the ngMessagesInclude\r\ndirective will stay in the DOM to avoid these issues.\r\n\r\nCloses #11196', '17', null, null, 'matsko', '2015-02-26T21:01:13Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('592', '37', '1120', 'aded app protocol to httpBackend.js', 'Ng-view was not updating when a routeChange occurred. ', '6', null, null, 'beatscode', '2012-07-06T11:13:35Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('593', '37', '11205', 'fix(Angular): properly compare RegExp with other objects for equality', 'Fixes #11204', '4', null, null, 'pkozlowski-opensource', '2015-02-27T15:14:26Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('594', '37', '11206', 'Updated the require section to reflect issue 11198', 'To make things less confusing, explicitly state that require WILL NOT cause a compile error if a link function is not specified.\r\n\r\nhttps://github.com/angular/angular.js/issues/11198\r\nstackoverflow.com/questions/28730346/require-ddo-option-of-angular-directive-does-not-throw-an-error-when-it-should', '4', null, null, 'bborowin', '2015-02-27T16:01:25Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('595', '37', '1121', 'Name all anonymous watch functions in Angular', 'Hi,\n\nThis PR includes a commit which names all anonymous functions inside $scope.$watch. This is for issue https://github.com/angular/angular.js/issues/1119 in the 1.0.x milestone.\n\nThanks,\nShyam', '2', null, null, 'shyamseshadri', '2012-07-06T12:03:12Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('596', '37', '11211', 'Added the missing word to the sentence', '', '1', null, null, 'toxickg', '2015-02-28T12:46:51Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('597', '37', '11212', 'fix(ngTouch): don\'t blur form elements', 'Form element focus should not be prevented by ng-click.\r\nThe issue was introduced by #2989, and happens on mobile browsers that support touch events.\r\nPlunker to demonstrate the issue: http://embed.plnkr.co/CxeuWocoPE70vzrevrIi\r\n\r\nCloses #4030, #6432\n\n<!-- Reviewable:start -->\n[<img src=\"https://reviewable.io/review_button.png\" height=40 alt=\"Review on Reviewable\"/>](https://reviewable.io/reviews/angular/angular.js/11212)\n<!-- Reviewable:end -->\n', '8', null, null, 'mikec', '2015-02-28T21:10:52Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('598', '37', '11214', 'docs(CONTRIBUTING): add whitespaces for consistent styling', '', '0', null, null, 'stevemao', '2015-03-01T07:16:23Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('599', '37', '11215', 'fix(copy): do not copy the same object twice', '#11099 made me curious if there are any easy performance improvements in `copy`. Instead I found some weird edge cases and inconsistencies. Performance also improved in all the cases I tried (~25% less time & memory in the latest dataset I\'ve been testing, but this will vary greatly depending on data).\r\n\r\nChanges:\r\n* Move the stack check before creating new objects instead of before recursing them. This avoids creating objects/arrays just to throw them out in the recursive call. This fixes non-recursed objects being duplicated when there are multiple references.\r\n* Move the stack push to after creating new objects instead of after the recursive call to avoid object/arrays being pushed twice. The extra `return` on the recursive calls is also needed for this.\r\n* Added various tests that were useful while testing different solutions. The \'should handle date/regex objects with multiple references\' is the only one that previously failed.', '4', null, null, 'jbedard', '2015-03-02T00:38:55Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('600', '37', '1122', 'Issue 1101: Allow startingTag method to handle text / comment nodes', 'Fix for issue https://github.com/angular/angular.js/issues/1101\n\nPlease take a look and see if this was the problem being discussed.\n\nShyam', '5', null, null, 'shyamseshadri', '2012-07-06T13:54:49Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('601', '37', '11222', 'ng-cookies squashed', '@petebacondarwin - the commits are not precisely as you requested since some of the commits you listed didn\'t seem right to me but I hope it is close enough :)', '2', null, null, 'shahata', '2015-03-02T20:20:54Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('602', '37', '11225', 'docs(guide/Animations): describe your change...', 'Changes: *then* to *than*\r\n\r\nAlthough the CSS is a little different then what we saw before, the idea is the same.\r\n\r\nto\r\n\r\nAlthough the CSS is a little different than what we saw before, the idea is the same.', '5', null, null, 'jmarkevicius', '2015-03-03T11:05:55Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('603', '37', '11233', 'docs($q): describe your change...', 'Included an example of how $q.all() is used', '7', null, null, 'eddiejhong', '2015-03-03T16:58:17Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('604', '37', '11236', 'Conditional to avoid error message', 'In some moment, <code>parent</code> returns undefined on load view', '4', null, null, 'keitoliveira', '2015-03-04T04:44:44Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('605', '37', '11238', '[WIP] feat($httpUrlParams): introduce new service abstracting params serialization', '@petebacondarwin @caitp here is another stab at having configurable strategies for $http request params serialization. This is still WIP (missing tests and doc updates) but wanted to check this one with you before putting more work into this approach. \r\n\r\nHere is the basic idea:\r\n* we introduce a new service (and the associated provider), `$httpUrlParams`, that is responsible for serializing $http\'s request params\r\n* this new service has essentially one method: `serialize = function(params, mode)` where `mode` is a flag / key that people can use to trigger different serialization strategies (ex. per domain)\r\n* the new provider allows you to configure a default mode (ships with the one named `traditional`) and register mode handlers (a function)\r\n* people, while doing `$http` calls can trigger different modes by passing `paramsMode` in the config object, ex.:\r\n\r\n```javascript\r\n$http.get(myUrl, {\r\n params: {...},\r\n paramsMode: \'jquery\'\r\n}).then(...);\r\n```\r\n\r\nIt would be totally awesome if we could ship it with 1.4, so any input would be much appreciated.', '33', null, null, 'pkozlowski-opensource', '2015-03-04T13:46:39Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('606', '37', '11239', 'feat(ngMock): allow mock $controller service to set up controller bindings', 'Adds a new mock for the $controller service, in order to simplify testing using the\nbindToController feature.\n\n```js\nvar dictionaryOfControllerBindings = {\n data: [\n { id: 0, phone: \'...\', name: \'...\' },\n { id: 1, phone: \'...\', name: \'...\' },\n ]\n};\n\n// When the MyCtrl constructor is called, `this.data ~= dictionaryOfControllerBindings.data`\n$controller(MyCtrl, myLocals, dictionaryOfControllerBindings);\n```\n\nCloses #9425', '11', null, null, 'caitp', '2015-03-04T17:20:33Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('607', '37', '11241', 'fix($rootScope): allow destroying a root scope', 'Builds on #10895', '2', null, null, 'petebacondarwin', '2015-03-04T17:53:20Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('608', '37', '11242', 'feat(isNaN): isNumberNaN', 'window.isNaN(lol); //=> true\r\nNumber.isNaN(lol); //=> false\r\n\r\nisNaN converts its arguments into a Number before checking if its NaN. Number.isNaN fixes this but we can also polyfill it', '9', null, null, 'gdi2290', '2015-03-04T20:14:24Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('609', '37', '11243', 'fix(input[type=email]) validate email array created by ng-list', 'Fix validation of mails addresses in an array generated by ng-list.', '3', null, null, 'christopher-ramirez', '2015-03-04T20:52:25Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('610', '37', '11244', 'aria-checked=\"{{checked}}\" - to reflect check state ', 'IMHO this needs to be changed from \r\n<some-checkbox role=\"checkbox\" ng-model=\"checked\" ng-class=\"{active: checked}\"\r\nto\r\n<some-checkbox role=\"checkbox\" aria-checked=\"{{checked}}\" ng-model=\"checked\" ng-class=\"{active: checked}\"\r\n \r\nin order to be proper read by a screen-reader', '2', null, null, 'neilyoung', '2015-03-04T23:38:59Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('611', '37', '11246', 'test(IE8): Remove workarounds for IE8', 'For some reason shrink-wrap just blew on my system, so this is untested.', '1', null, null, 'realityking', '2015-03-05T00:55:28Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('612', '37', '11248', 'refactor($compile): use indexof/splice instead of manually manipulating jquery object', 'jQuery/jqLite objects have a `splice` method on them, and `indexof.call` works on them, so those 2 methods can be used instead of the double loop.\r\n\r\nThe standard case (replacing one element) just does an assignment while other cases use `splice`. This could be changed to always use splice if wanted, but I thought the 99% case was worth it.\r\n\r\n(this is a subset of #9365 that can be done on it\'s own)', '6', null, null, 'jbedard', '2015-03-05T04:20:59Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('613', '37', '11250', 'possible', 'the expected should be false right? test', '3', null, null, 'naterex', '2015-03-05T07:57:07Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('614', '37', '11251', 'test', 'test', '2', null, null, 'naterex', '2015-03-05T08:04:23Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('615', '37', '11266', 'fix(date filter): display localised era for `G` format code', 'Fixes #10503', '4', null, null, 'petebacondarwin', '2015-03-06T14:58:52Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('616', '37', '11269', 'docs(tutorial/0 - Bootstrapping): Add a \"the\" before \"imperative / manua...', '...l way\"\r\n\r\nI\'m assuming \"imperative / manual\" is modifying \"way\" in which case I think \"the\" is needed.\r\n\r\nI don\'t really know grammar, but as a native speaker it sounds odd without \"the\".', '3', null, null, 'b0ri5', '2015-03-07T05:22:31Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('617', '37', '1127', 'Issue #856: add ability to reset a form to its pristine state', 'This is a fix for the (quite up-voted now) issue #856. The whole commit boils down to adding the $setPristine() method to both ng.directive:form.FormController and ng.directive:ngModel.NgModelController; tests are added as well.\n\nHere is a jsFiddle that shows an issue: http://jsfiddle.net/pkozlowski_opensource/qT9pu/2/ (just type sth in a field and then delete it).\n\nHere is another jsFillde with the issue fixed: http://jsfiddle.net/pkozlowski_opensource/2x8HD/4/ (just type sth in a field and then delete it and click on \'Revert edits\').\n ', '20', null, null, 'pkozlowski-opensource', '2012-07-07T17:27:14Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('618', '37', '11270', 'docs(tutorial/0 - Bootstrapping): Clarifying where the callback is defined', 'Saying that the script-tag registers a callback was for me very confusing, and I think specifying that it is the code in the script that registers the callback makes this a bit clearer.', '4', null, null, 'kjarnet', '2015-03-07T08:05:00Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('619', '37', '11271', 'docs(form): Add comma to line 319 for readability', 'Line 319 is hard to read on the first glimpse. \r\n\r\nCurrently the sentence reads: \r\n\"In Angular forms can be nested\"\r\n\r\nThe sentence should read either \r\n\"In Angular, forms can be nested\"\r\nor \r\n\"Forms can be nested in angular\"\r\n\r\nI changed it to the former in this pull request.', '3', null, null, 'amZotti', '2015-03-07T16:19:49Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('620', '37', '11272', 'feat($http): flag timed out requests', 'This allows differentiating a network error from a timeout.\r\n\r\nIf you guys thinks this is OK I\'ll write some tests and update the docs.', '5', null, null, 'gabrielmaldi', '2015-03-07T20:44:47Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('621', '37', '11273', 'fix(ngAnimate): Change to falsy value in addClass and removeClass', '- Change addClass & removeClass to pass in string to setClass so\r\n $$setClassImmediately does not trigger due to arrays always being\r\ntruthy\r\n\r\nThis fixes #11268 .', '1', null, null, 'wesleycho', '2015-03-08T16:05:01Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('622', '37', '11274', 'docs(tutorial/3 - Filtering Repeaters): trim title', 'trims the title when query is empty.', '3', null, null, 'wuyiw', '2015-03-09T02:47:09Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('623', '37', '11275', 'fix(jqLite.attr): ignore comment, text and attribute nodes when setting/...', '...getting attributes\r\n\r\nfollow jQuery handling of the attr function\r\n\r\nFixes #11038', '5', null, null, 'RobiFerentz', '2015-03-09T07:53:56Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('624', '37', '11278', 'An example implementation of .directive `bind`', 'Example implementation to implement #10007\r\n\r\nBased on [this comment](https://github.com/angular/angular.js/issues/10007#issuecomment-77763231) by @gautelo.\r\n\r\n**Note** This PR was created using the github editor and is expected to be more instructional than anything. Not expected to be merged.', '4', null, null, 'kentcdodds', '2015-03-09T12:23:19Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('625', '37', '11280', 'Changed aria-live attribute value from polite to assertive', 'For ngMessages directive ngAria generates aria-live with value assertive and not polite.', '7', null, null, 'RaphStein', '2015-03-09T17:09:17Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('626', '37', '11281', 'feat($compile): Throw error on incorrect casing', '- Adds error message for when the first letter of the directive name is\r\n not capitalized in the definition\r\n\r\nThis addresses #11109 .', '22', null, null, 'wesleycho', '2015-03-09T18:14:16Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('627', '37', '11284', 'docs(angular.extend): final param documentation does not match functionality', 'The `deep` property is hard-coded to `false` and is not configurable as the docs suggest. I\'m not sure if the documentation is incorrect or the implementation is incorrect.', '3', null, null, 'davej', '2015-03-10T10:11:50Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('628', '37', '11285', 'docs($templateCache): highlight the $templateCache service', '', '4', null, null, 'cironunes', '2015-03-10T12:29:40Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('629', '37', '11290', 'fix($sanitize): don\'t allow svg animation tags', 'After #11124 got merged, a security vulnerability got introduced.\r\nAnimation in SVG became tolerated by the sanitizer.\r\n\r\nExploit Example:\r\n```\r\n<svg>\r\n <a xmlns:xlink=\"http://www.w3.org/1999/xlink\" xlink:href=\"?\">\r\n <circle r=\"400\"></circle>\r\n <animate attributeName=\"xlink:href\" begin=\"0\" from=\"javascript:alert(1)\" to=\"&\" />\r\n </a>\r\n</svg>\r\n```\r\n\r\nHere we are animating an anchor\'s href, starting from a value that\'s a javascript URI,\r\nallowing the executing of arbitrary javascript in the process.\r\n\r\nPreventing only the animation of links is tricky, as SVG is weird and namespaces aren\'t predictable.\r\nWe\'ve decided to have the sanitizer filter out SVG animation tags instead.\r\n\r\nConsidering the sanitizer is commonly used to sanitize untrusted HTML code, this shouldn\'t affect\r\nmany apps in the wild. Also, no release has been with #11124 in it, but not this fix.', '14', null, null, 'rodyhaddad', '2015-03-10T22:17:14Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('630', '37', '11293', 'docs(guide/Services): Fix link to #module.Factory', '', '5', null, null, 'eeue56', '2015-03-11T11:49:45Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('631', '37', '11294', 'docs($templateCache): highlight the $templateCache service', '', '0', null, null, 'cironunes', '2015-03-11T12:02:54Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('632', '37', '11297', 'docs($log): Add debug button to example', 'Add debug button to example. It was in teh docs but not the example.\r\n\r\nNo breaking changes.', '4', null, null, 'SyntaxRules', '2015-03-11T20:03:51Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('633', '37', '11298', 'chore(ci): bump sc version to 4.3.7', '', '2', null, null, 'juliemr', '2015-03-11T20:34:13Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('634', '37', '11300', 'Add provider.$decorator to angular.Module', 'Allow for decorators to be added prior to the angular.config process.\r\n\r\nUse case: I am working on a project using ui.router and would like to modify the $stateProvide.state service and would like to ensure that my modification will always be applied prior to any angular.config blocks which could contain $stateProvide.state requests.\r\n\r\nThis would also allow any decorators to be clearly delineated in your code and not lost in a config block.', '4', null, null, 'RodneyEbanks', '2015-03-11T21:37:51Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('635', '37', '11301', 'refactor(ngPluralize):delete default directive restriction', 'Delete the directive restriction to avoid code duplication since the default is already applied\r\n\r\nThis line is uneccesary because the default value is set inside the registerDirective function:\r\n\r\n```\r\ndirective.index = index;\r\ndirective.name = directive.name || name;\r\ndirective.require = directive.require || (directive.controller && directive.name);\r\ndirective.restrict = directive.restrict || \'EA\';\r\n```', '0', null, null, 'diegofss11', '2015-03-11T23:12:26Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('636', '37', '11302', 'fix($location): LocationHashbangUrl() undefined error', 'Reproduce unit code and fix code for LocationHashbangUrl() undefined error 1.2 rc3 #4776\r\n\r\nI have also caused the scenario reporting below.\r\nhttps://github.com/angular/angular.js/issues/4776#issuecomment-65290297\r\n', '4', null, null, 'tsuyoshizawa', '2015-03-12T03:35:37Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('637', '37', '11305', 'feat(ng, decorator): Add decorator Method (provider.$decorator) to angular.Module', 'Allow for decorators to be added prior to the angular.config process.\r\n\r\nUse case: I am working on a project using ui.router and would like to modify the $stateProvide.state service and would like to ensure that my modification will always be applied prior to any angular.config blocks which could contain $stateProvide.state requests.\r\n\r\nThis would also allow any decorators to be clearly delineated in your code and not lost in a config block.\r\n\r\nReplaces Pull Request #11300', '3', null, null, 'RodneyEbanks', '2015-03-12T08:14:34Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('638', '37', '11306', 'docs(ngMessage): move up ngMessages link', 'I\'ve missed link to main documentation - it is hidden below example box. Here I\'m moving to main documentation text block.', '1', null, null, 'marcin-wosinek', '2015-03-12T14:14:53Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('639', '37', '11307', 'docs(guide/Conceptual Overview): adding a hyphen for clarity', 'Minor change, but the heading for \"View independent business logic...\" would be more clear if it had a hyphen, \"View-independent\". Perhaps it\'s because I\'m new to javascript and its terminology, but I read \"View\" as a verb rather than a noun on the first pass and had to read on a bit to understand that it was, instead, referring to The View. If you go just by grammar rules, making \"view independent\" into the compound adjective, \"view-independent\", makes it clear that it is modifying \"business logic\". (http://www.grammarbook.com/punctuation/hyphens.asp - see Rule 1).', '4', null, null, 'meldaravaniel', '2015-03-12T15:34:07Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('640', '37', '11310', 'docs(ngRepeat): improve the explanation of keys', 'Improve grammar and phrasing on lines 36/37. The existing language uses poor grammar. Another possible replacement is \"the order in which keys are returned,\" but the keys are not actually returned in any order--they are all returned at once, and they have an order. The best phrasing seems to be \"the order of keys returned.\" An even better explanation might actually say what function is returning the keys eg Object.keys. This might read something like \"You need to be aware that the JavaScript specification does not define the order of keys returned by Object.keys(),\" however it is not clear if the original author was referring to Object.keys().', '0', null, null, 'jasperSpeicher', '2015-03-12T22:21:26Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('641', '37', '11311', 'chore(apis): add HashMap to the DI', 'HashMap will be used inside of `angular-animate.js` to store details of ongoing animations on a per-element basis. Right now HashMap is only available in core, but this patch will make it available to other areas.', '0', null, null, 'matsko', '2015-03-12T23:52:58Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('642', '37', '11318', 'docs(guide/Data Binding): add heading to page', 'the other pages have one, this makes them look more unified.', '1', null, null, 'meldaravaniel', '2015-03-13T15:01:49Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('643', '37', '11319', 'docs(guide/Forms): format headers to match other docs', 'Primary header with page title, secondary headers for each description section.', '1', null, null, 'meldaravaniel', '2015-03-13T15:15:38Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('644', '37', '11320', 'docs(guide/Controllers): grammar and header fixes', 'fixed a comma and made the headers more logical.', '1', null, null, 'meldaravaniel', '2015-03-13T16:00:31Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('645', '37', '11321', 'fix(ngAria): handle custom elements with role=\"checkbox\"', 'In https://github.com/angular/angular.js/commit/d6eba21733c6e67e90e3a4763d8d41ad89a73a0c#diff-91e9129201746ba107348c9a0a7735edR218, we fixed some issues with checkboxes with string and integer models using ngTrueValue / ngFalseValue, but I did not take into consideration custom `role=\"checkbox\"` elements (as in the ngAria docs). They are currently broken, because the new way of checking \"checkedness\" is by using ngModel.$isEmpty, which has a special implementation for checkboxes. Custom elements obviously lack this.\r\nMy idea is to provide the checkbox $isEmpety implementation as a default to all elements that come with role=\"checkbox\" in the preLink fn. It can then be overwritten by the custom implementation. (since ngAria is simply assuming that a custom checkbox will have a boolean checkstate, which might not be the case).\r\n\r\n@marcysutton can you have a look at this?', '4', null, null, 'Narretz', '2015-03-13T17:37:52Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('646', '37', '11322', 'wip-chore: refactor npm install', 'This is an attempt to nodejs-ify the install-dependencies.sh script. \r\n\r\n`Gruntfile-test.js` is almost empty, so you can test the install script without having to do a complete `npm install`. Basically, you just need to `npm install rimraf grunt shelljs q` if the removing / install does not go through completely.\r\n\r\nThe problem is now that `grunt npm-install --gruntfile=Gruntfile-test.js` does not actually call \'rimraf\'. It works when I call the file directly via `node` and append `installDependencies()` at the end of the .js file.\r\n\r\n', '2', null, null, 'Narretz', '2015-03-13T17:58:45Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('647', '37', '11324', 'Install dependencies', 'Simplifies #11322', '7', null, null, 'petebacondarwin', '2015-03-13T22:13:48Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('648', '37', '11326', 'respect explicit return values from controller functions (fixes #11147)', 'When controller functions return an explicit value that value should be what is passed to the linking functions, and to any child/sibling controllers that `require` it. It should also be bound to the data store on the DOM element.\r\n\r\nCloses #11147 ', '30', null, null, 'jamestalmage', '2015-03-14T04:52:15Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('649', '37', '11327', 'docs(misc/Downloading): Latest version', 'Updated the CDN link and description to 1.3.14', '3', null, null, 'svershin', '2015-03-14T10:32:12Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('650', '37', '11333', 'fix($http): throw error if success and error methods do not receive a fu...', '...nction\r\n\r\nCloses #11330', '13', null, null, 'petebacondarwin', '2015-03-16T12:37:28Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('651', '37', '11334', 'possible solution for #11157', '* https://github.com/angular/angular.js/issues/11157', '2', null, null, 'jamjamg', '2015-03-16T15:37:57Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('652', '37', '11336', 'ngAnimate 1.4 Refactor', 'All of ngAnimate has been rewritten to make the internals of the\r\nanimation code more flexible, reuseable and performant.\r\n\r\nBREAKING CHANGE: JavaSript and CSS animations can no longer be run in\r\nparallel. With earlier versions of ngAnimate, both CSS and JS animations\r\nwould be run together when multiple animations were detected. This\r\nfeature has now been removed, however, the same effect, with even more\r\npossibilities, can be achieved by injecting `$animateCss` into a\r\nJavaScript-defined animation and creating custom CSS-based animations\r\nfrom there. Read the ngAnimate docs for more info.\r\n\r\nBREAKING CHANGE: The function params for `$animate.enabled()` when an\r\nelement is used are now flipped. This fix allows the function to act as\r\na getter when a single element param is provided.\r\n\r\n```js\r\n// < 1.4\r\n$animate.enabled(false, element);\r\n\r\n// 1.4+\r\n$animate.enabled(element, false);\r\n```\r\n\r\nBREAKING CHANGE: In addition to disabling the children of the element,\r\n`$animate.enabled(element, false)` will now also disable animations on\r\nthe element itself.\r\n\r\nBREAKING CHANGE: Animation-related callbacks are now fired on\r\n`$animate.on` instead of directly being on the element.\r\n\r\n```js\r\n// < 1.4\r\nelement.on(\'$animate:before\', function(e, data) {\r\n if (data.event === \'enter\') { ... }\r\n});\r\nelement.off(\'$animate:before\', fn);\r\n\r\n// 1.4+\r\n$animate.on(element, \'enter\', function(data) {\r\n //...\r\n});\r\n$animate.off(element, \'enter\', fn);\r\n```\r\n\r\nBREAKING CHANGE: There is no need to call `$scope.$apply` or\r\n`$scope.$digest` inside of a animation promise callback anymore\r\nsince the promise is resolved within a digest automatically (but a\r\ndigest is not run unless the promise is chained).\r\n\r\n```js\r\n// < 1.4\r\n$animate.enter(element).then(function() {\r\n $scope.$apply(function() {\r\n $scope.explode = true;\r\n });\r\n});\r\n\r\n// 1.4+\r\n$animate.enter(element).then(function() {\r\n $scope.explode = true;\r\n});\r\n```\r\n\r\nBREAKING CHANGE: When an enter, leave or move animation is triggered then it\r\nwill always end any pending or active parent class based animations\r\n(animations triggered via ngClass) in order to ensure that any CSS\r\nstyles are resolved in time.', '53', null, null, 'matsko', '2015-03-16T19:12:12Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('653', '37', '11340', 'fix(ngAria): change accessibility keypress event to use event.which if it is provided', 'fix(ngAria): change accessibility keypress event to use event.which if it is provided\r\n\r\nIn Firefox, keyboard events for printable characters (e.g. space) do not use event.keyCode. Use event.which if it is provided before falling back to event.keyCode.', '13', null, null, 'andrewaustin', '2015-03-17T02:32:29Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('654', '37', '11342', 'ngClick using ngTouch fires twice issue on iOS', 'This closes #6251', '7', null, null, 'NorikDavtian', '2015-03-17T06:59:59Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('655', '37', '11344', 'fix for #11343 - bindToController for multiple directives', 'Fix for issue https://github.com/angular/angular.js/issues/11343', '2', null, null, 'jtorbicki', '2015-03-17T12:19:00Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('656', '37', '11345', 'fix for #11343 - bindToController for multiple directives', 'Second attempt due to merge conflicts :) Fix for issue https://github.com/angular/angular.js/issues/11343', '18', null, null, 'jtorbicki', '2015-03-17T15:28:46Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('657', '37', '11350', 'chore(ci): make wait_for_browser_provider time out after 2 minutes', 'Before, if something went wrong, wait_for_browser_provider.sh would\r\nwait indefinitely, and logs would never get printed. Now, we\'ll bail\r\nearly, and get some actual logs on what the problem was.', '2', null, null, 'juliemr', '2015-03-17T17:00:17Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('658', '37', '11351', 'docs(error/inprog): describe your change...typos?', '', '2', null, null, 'Cayan', '2015-03-17T21:17:00Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('659', '37', '11353', 'refactor npm install (again)', '', '16', null, null, 'Narretz', '2015-03-17T22:33:11Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('660', '37', '11354', 'chore(ci): force travis to print logs after driver provider timeout', 'Travis does not do the after_script step if before_script fails,\r\nso wait_for_browser_provider.sh was not printing out logs.\r\nForce it to print them manually.', '3', null, null, 'juliemr', '2015-03-17T22:39:38Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('661', '37', '11355', 'feat($http): CORS requests support for IE9', 'IE9 use it\'s own way to do CORS requests, so for this case (only) we should use XDomainRequest. More about it: http://www.html5rocks.com/en/tutorials/cors/', '6', null, null, 'e-oz', '2015-03-18T02:30:51Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('662', '37', '11359', 'fix(ngTouch): prevent touchmove from canceling a click', 'Usually browsers fire touchstart and touchend, and ng-click works.\r\nBut some browsers (I only experienced it on iOS) fire touchmove\r\nbetween touchstart and touchend, and so before this fix ng-click\r\nwould not work in this case.\r\nAlso, the test for touchmove was incorrect: it did not test\r\nthe touchmove event itself, but rather the coordinates change,\r\nwhich is handled elsewhere. If the coordinates are the same and\r\nthe interval is not too long, ng-click should fire, no matter if\r\nthere was a touchmove or not.', '1', null, null, 'pomerantsev', '2015-03-18T12:58:53Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('663', '37', '11363', 'feat($resource): Include request context in error message', 'Currently the badcfg error only reports that the wrong type of response was received (object instead of array, or array instead of object), but no further context is included. This change includes the request method and url to assist with debugging.', '0', null, null, 'Jaco-Pretorius', '2015-03-18T18:43:14Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('664', '37', '11365', 'Ensure boolean values for aria-* attributes', 'aria-* (e.g. aria-hidden) values should mirror the truthiness of their ng-*\r\ncounterparts (e.g. ng-show, ng-hide) instead of their actual value\r\n', '4', null, null, 'fredsa', '2015-03-18T21:03:27Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('665', '37', '11367', 'chore(test): bump Protractor version to 2.0.0', '', '4', null, null, 'juliemr', '2015-03-18T23:24:15Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('666', '37', '11369', 'feat($animateRunner): prototype code for $animateRunner', 'DO NOT MERGE. JUST A PR FOR REVIEW PURPOSES.', '22', null, null, 'matsko', '2015-03-19T05:21:59Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('667', '37', '1137', 'Dev guide doc fixes', 'Here are a number of spelling and grammatical fixes for the first few pages of the Developer Guide. Cheers.', '2', null, null, 'jamiekrug', '2012-07-12T02:38:54Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('668', '37', '11380', 'fix(httpBackend): Change to more friendly language', '- Change to more neutral word\r\n\r\nAddresses #11364', '0', null, null, 'wesleycho', '2015-03-20T04:19:08Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('669', '37', '11381', 'fix(ngInput): change URL_REGEXP to better match RFC3987', 'The URL_REGEXP in use to perform validation in ngInput is too restrictive and fails to\r\nfollow RFC3987. In particular, it only accepts ftp, http, and https scheme components and\r\nrejects perfectly valid schemes such as \"file\", \"mailto\", \"chrome-extension\",\r\netc. The regex also requires the scheme to be followed by two \"/\" but the RFC says\r\n0 to n are acceptable. This change fixes both of these issues to better align to\r\nthe standard.\r\n\r\nCloses #11341', '12', null, null, 'andrewaustin', '2015-03-20T04:49:02Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('670', '37', '11383', 'Jasmine\'s Description is changed', 'Jasmine is \"behavior-driven development framework\" not the \"test-driven development framework\"', '3', null, null, 'yuvi314', '2015-03-20T07:07:26Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('671', '37', '11386', '[WIP] feat($httpUrlBuilderFactory): introduce new service abstracting url building', 'Here you have my proposal for having configurable strategies for `$http` url building.\r\nThis is a WIP, and tries to solve same problems than #11238 addresses, but with a different perspective, covering more use cases and adding more freedom.\r\n\r\n**Key points**: \r\n* New service `$httpUrlBuilderFactory`, that serves as **foundation** for making totally custom urls.\r\n* Default overridable implementation in core\r\n* Users can customize _per request_ how a url is built, or set a new default to the whole app.\r\n\r\n**Rationale**:\r\nURL Building and parameter serialization are complementary problems.\r\nSerialization can be seen as converting objects to a set of `{key, value}` Strings, and URL Building is aggregating this set to create an encoded URL (`?key=value`) With this separation, users can rehuse some of the parts: how to serialize (`var arr = [1,2] => {arr[], 1}, {arr[],2}`) and how to build (encode, concat params with `;` ...) \r\n\r\nHaving in mind keeping core small, and give full control to user for easy customization, only the current building URL is shipped, but the users can make whatever they want. `jquery` and other param serialization would be coded easily in userland.\r\n\r\n**Examples**\r\n```js\r\n// Example 1: Making pirate URLs\r\nangular.module(\'App\')\r\n.factory(\'pirateBuildUrl\', function($httpUrlBuilderFactory) {\r\n function pirateSerializer(params, addKeyValue) {\r\n //params is the $http request `params` config property\r\n angular.forEach(params, function(value, key) {\r\n addKeyValue(\'ARR\' + key, value);\r\n });\r\n }\r\n return $httpUrlBuilderFactory(pirateSerializer);\r\n})\r\n.config(function($httpProvider) {\r\n //Specify default urlBuilder for the whole app \r\n //Compatibility with defaults.cache usage: you can set also a function here\r\n $httpProvider.defaults.buildUrl = \'pirateBuildUrl\';\r\n})\r\n.run(function() {\r\n $http.get(\'http://myapi.com/things\', {\r\n params: {\r\n id: 5\r\n },\r\n // or specify per request urlBuild (or a function, like the `cache` property)\r\n buildUrl: \'pirateBuildUrl\'\r\n}); // GET http://myapi.com/things?ARRid=5\r\n```\r\n\r\n```js\r\n// Example 2: freedom in urlBuilding. Crazy things are possible. Nice for testing\r\nangular.module(\'App\')\r\n.factory(\'testBuildUrl\', function() {\r\n return function(url, params) {\r\n return url + \'?\' + JSON.stringify(params); \r\n };\r\n})\r\n.run(function() {\r\n $http.get(\'http://myapi.com/things\', {\r\n params: { id: 5 },\r\n buildUrl: \'testBuildUrl\'\r\n}); // GET http://myapi.com/things?{\"id\":5}\r\n```\r\n\r\nI\'d this **full** core customization available in userland, and forget about crazy tests and interceptors to communicate with complex backends. WDYT?\r\n', '1', null, null, 'jmendiara', '2015-03-20T17:09:07Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('672', '37', '11388', 'fix(cookieReader): safely access $document so it can be mocked', 'Closes #11373', '8', null, null, 'shahata', '2015-03-21T19:47:19Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('673', '37', '11389', 'docs(ngCsp): describe your change...', 'added a reference to https://code.angularjs.org/snapshot/angular-csp.css to include in ngCsp required apps', '3', null, null, 'chiptus', '2015-03-21T20:08:21Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('674', '37', '11393', 'docs(orderBy): Replace operator = with ===', 'Fix documentation error on line 20 incorrectly mentioning an assignment operator in a comparison operation. Code on line 235 uses strict comparison operator.\r\n\r\nCloses #11392', '0', null, null, 'wiseleo', '2015-03-22T06:37:25Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('675', '37', '11395', 'docs($http): remove trailing comma from code example', 'Remove trailing comma from code example to keep flow with the rest of the code examples', '0', null, null, 'bradleyprice', '2015-03-22T09:43:55Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('676', '37', '11396', 'docs($http): remove trailing comma from code example', 'Remove trailing comma from code example to keep flow with the rest of the code examples', '1', null, null, 'bradleyprice', '2015-03-22T09:47:40Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('677', '37', '11398', 'docs: #11187 readability improvement', 'Tried with border horizontal; It didn\'t look great, also the content is not standing out.\r\n\r\nSo I have implemented with borders all. Let me know your thoughts. ', '5', null, null, 'logeshpaul', '2015-03-22T16:08:25Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('678', '37', '1140', 'Email validation don\'t support non-ascii domains', 'A small commit for my work in norway. Added email validation to accept norwegian and some other legal domain-letters. Hope youl pull it.\n\nSjur Hernes', '6', null, null, 'sjhernes', '2012-07-13T17:01:33Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('679', '37', '11405', 'Fix ng style lazy one-time binding regression', 'There\'s no easy way to make the one-time binding work woth $watchCollection, so the easiest way is probably to revert the commit, as suggested by @lgalfaso ', '1', null, null, 'Narretz', '2015-03-23T20:39:53Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('680', '37', '11410', 'docs(guide/Unit Testing): fixing the example for testing fiflter.', 'Hi there,\r\nIt seems that in the example which starts at line 256 there need to be an injection for $filter as in the previous example.', '10', null, null, 'gonengar', '2015-03-24T18:09:39Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('681', '37', '11411', 'fix(ngModel): allow setting model to NaN when asyncValidator is present', 'Fixes #11315 ', '5', null, null, 'Narretz', '2015-03-24T20:10:14Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('682', '37', '11412', 'fix(select): don\'t call $render twice if $viewValue ref changes', 'Credits to @tepez for the fix\r\n\r\nCloses #11329', '3', null, null, 'Narretz', '2015-03-24T20:14:21Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('683', '37', '11413', 'docs($routeProvider): Document resolved values', 'Document that resolved values are available in `$route.current.locals`', '8', null, null, 'fredsa', '2015-03-24T20:20:22Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('684', '37', '11419', 'docs($route): document $routeUpdate', 'Document $routeUpdate parameter.', '0', null, null, 'fredsa', '2015-03-24T21:42:48Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('685', '37', '1142', 'prevent resulting src=\"\" in html', 'Hello,\n\nCurrent implementation of ngSrc may lead to empty src attribute when page is loading.\n\nFor example:\n```\n<img ng-src=\"{{image.url}}\">\n```\ncan be temporarily rendered as\n```\n<img src=\"\">\n```\nbefore the ```image``` resource is loaded.\n\nSome browser emits a request to *the current page* when seeing ```<img src=\"\">``` (Firefox13 and IE8 will, Chromium20 won\'t), which leads to performance problems.\n\nThis commit addressed this issue.', '4', null, null, 'xrchen', '2012-07-14T04:14:12Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('686', '37', '11441', 'refactor($compile): remove unused `return` statement', 'As discussed in https://github.com/angular/angular.js/commit/89447b3f2b4c6db62c24473a81fedc3b04242b85#commitcomment-10280666.', '1', null, null, 'gkalpak', '2015-03-27T10:38:55Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('687', '37', '11443', 'fix(ngSanitize): use the smallest match on searching end tags', 'ngSanitize searches the string of the end tag with the longest match.\r\nSo it removes all of the HTML strings between script elements.\r\nWe should use the smallest possible match.\r\n\r\nCloses #11442', '2', null, null, 'memolog', '2015-03-27T11:54:55Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('688', '37', '11445', 'fix(filterFilter): fix matching against `null`/`undefined`', 'Included fixes:\r\n\r\n* Do not convert `null`/`undefined` to strings for substring matching in\r\n non-strict comparison mode. Prevents `null`/`undefined` from being\r\n matched against e.g. \'u\'.\r\n* Let `null` (as a top-level filter expression) match \"deeply\" (as do\r\n booleans, numbers and strings).\r\n E.g. let `filterFilter(arr, null)` match an item like `{someProp: null}`.\r\n\r\nCloses #11432\r\n\r\n--\r\n<sub>1st and 3rd commits are refactorings (not important for the fix).\r\nThe 2nd commit contains the actual fix(es).\r\nI kept them separate, for easier reviewing or eclectic merging.I can squash them if you think it is better.\r\n</sub>', '7', null, null, 'gkalpak', '2015-03-27T15:06:22Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('689', '37', '11448', 'perf(ngOptions): only perform deep equality check on ngModel if using track by', 'Closes #11447', '14', null, null, 'booleanbetrayal', '2015-03-27T18:33:54Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('690', '37', '1145', 'docs(tutorial): correct typos and clarify a few sections', '* fix some typos\n* fix a few broken references\n* clarify some sections that needed more explanation\n* consistently capitalize \"Angular\"\n* link to correct URL for application steps on GitHub', '3', null, null, 'fernandoacorreia', '2012-07-15T18:09:17Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('691', '37', '11450', 'docs(guide/Conceptual Overview): remove text from in-page anchor tags', 'The in-page anchor tags that serve as bookmarks for information about views and models have \r\nvisible text content that unintentionally makes them seem like clickable links navigating to \r\nother parts of the page or to entirely different pages. However, since these anchor tags only serve as bookmarks, they should not contain any text. Because these anchor tags do not redirect anywhere, most readers will assume the links are broken and that they are missing out on information. Removing the text from the within the anchor tags will avoid such confusion since readers will not see such text marked up as a clickable hyperlink.\r\n\r\nThe bookmark links for View and Model in the table of contents at the top of the page still direct the user to the same places.\r\n\r\nNo source files were changed.\r\n\r\n## Before\r\n![](http://www.webpagescreenshot.info/i3/55164cbc5bcc20-30684507)\r\n\r\n## After\r\n![](http://www.webpagescreenshot.info/i3/55164dd0028a61-16124113)', '0', null, null, 'kevhuang', '2015-03-28T06:52:19Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('692', '37', '11455', 'fix($parse): fix parse errors on older Android WebViews which choke with reserved keywords', 'Older Android WebViews (2.3) can\'t handle calling methods named after reserved keywords such as `.if()`, `.return()`, `.default()`, `catch.()`, `finally.()`.', '7', null, null, 'gabrielmaldi', '2015-03-29T03:25:45Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('693', '37', '11459', 'docs(tutorial/Tutorial): added npm init step', 'I lost some minutes to understand why there were errors launching npm install', '3', null, null, 'Mirk01', '2015-03-30T10:12:00Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('694', '37', '11460', 'Made for loops more consistent', 'Some for loops were storing the obj.length in a variable, some weren\'t. I converted them to all cache the length.', '1', null, null, 'James-Dunn', '2015-03-30T11:18:17Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('695', '37', '11461', 'feat($http): support custom params serializers', '@petebacondarwin I still need to add docs but if you could have a look at the impl / tests it would help us iterate faster on this one.', '19', null, null, 'pkozlowski-opensource', '2015-03-30T13:38:29Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('696', '37', '11463', 'docs(error/infdig): Boolean directives taking toggle values by mistake can generate this error', 'One common mistake is passing a toggle value to a directive which takes boolian.', '3', null, null, 'mansabbloch', '2015-03-30T15:04:57Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('697', '37', '11469', 'fix(ngAnimate): ensure that minified repaint code isn\'t removed', 'Closes #9936 \r\n\r\n1.2 / 1.3 / 1.4', '6', null, null, 'matsko', '2015-03-31T04:21:54Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('698', '37', '1147', 'Add support to Catch-All routes', 'It allows to accept routes like `edit/color/:color/largecode/*largecode` to match with something like this \n`http://appdomain.com/edit/color/brown/largecode/code/with/slashs`.\n\n**I really need it because my app ids contains slashs.**', '11', null, null, 'andresmoschini', '2012-07-16T16:18:58Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('699', '37', '11471', 'fix(ngTouch): register touches properly when jQuery is used', 'If jQuery was used with Angular the touch logic was looking for touches\r\nunder the original event object. However, jQuery wraps all events, keeping\r\nthe original one under the originalEvent property and copies/normalizes some\r\nof event properties. Not all properties are copied, e.g. touches which caused\r\nthem to not be recognized properly.\r\n\r\nThanks to @mcmar & @pomerantsev for original patch ideas.\r\n\r\nFixes #4001\r\nCloses #8584\r\nCloses #10797', '6', null, null, 'mzgol', '2015-03-31T16:11:35Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('700', '37', '11473', 'fix($resource) add @ support for properties names', 'Add support for properties that starts with @. This is useful when working with BadgerFish convention.', '8', null, null, 'mustela', '2015-03-31T22:21:14Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('701', '37', '11476', 'Merge pull request #1 from angular/master', 'update', '1', null, null, 'dshm', '2015-04-01T11:29:23Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('702', '37', '11479', 'feat(travis): run unit tests on iOS 8', 'Refs #11471', '1', null, null, 'mzgol', '2015-04-01T16:06:43Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('703', '37', '11483', 'docs(ngModel): fix docs reference to `$modelValue`', 'Fix reference to `$modelValue` within `ngModel` documentation', '1', null, null, 'LeonardoBraga', '2015-04-02T01:01:31Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('704', '37', '11485', 'Update Croatian first day of the week', 'It\'s strange to see Sunday as the first day of the week. This patch changes it to Monday.', '4', null, null, 'toncid', '2015-04-02T07:22:54Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('705', '37', '11488', 'fix(ngTouch): register touches properly when jQuery is used', 'TEMP to check iOS tests', '1', null, null, 'petebacondarwin', '2015-04-02T12:45:09Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('706', '37', '11493', 'fix(ngTouch): make tests pass on Chrome with touch enabled', 'Using the `initTouchEvent()` method (introduces in 06a9f0a) did not correctly initialize the event, nor did the event get dispatched on the target element (e.g. on desktop Chrome with touch-events enabled).\r\n\r\nUsing the `Event` constructor and manually attaching a `TouchList`, works around the issue (although not a proper fix).\r\n\r\n/ping @mzgol, @petebacondarwin', '8', null, null, 'gkalpak', '2015-04-02T16:37:33Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('707', '37', '11497', 'docs(guide/Unit Testing): describe your change...', 'The test says \"descending\" order but it actually expects \"ascending\" order ( jeff -> jack -> igor).', '3', null, null, 'goblortikus', '2015-04-02T18:59:00Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('708', '37', '11498', 'DO NOT MERGE - Testing PR #11493', '', '0', null, null, 'gkalpak', '2015-04-02T19:25:12Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('709', '37', '11499', 'Pr9905', '', '1', null, null, 'petebacondarwin', '2015-04-02T20:47:49Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('710', '37', '1150', 'Update master', 'Translate i18n fr-fr locale', '1', null, null, 'Alex-D', '2012-07-17T10:23:42Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('711', '37', '11502', 'fix(ngAnimate): use negative delay values to drive animation blocking', 'DO NOT MERGE YET. IT STILL NEEDS MORE LIVE TESTING USING ANYTHING < 1.4.\r\n\r\nApplies to 1.2 and 1.3.\r\n\r\nwhen CSS transitions are used via ngAnimate a pre-emptive \"block\" is\r\napplied to the element (via `transition: 0s none`) in order to gaurantee\r\nthat the `.ng-enter`, `.ng-leave` and/or `.ng-move` CSS classes are\r\napplied instantly. By setting `0s none` we gaurantee that the styles\r\npresent within these classes actually appear on the element. While this\r\nworks it causes a major issue with CSS classes since they disupt an ongoing\r\ntransition since the `0s none` value is destructive.\r\n\r\nThis fix makes use of negative delay values in transitions to handle\r\nthis \"blocking\" mechanism yet it doesn\'t trigger the problems that setting\r\n\r\nCloses #11481', '4', null, null, 'matsko', '2015-04-03T04:33:16Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('712', '37', '11503', 'docs($http): clarify side effects of transformRequest functions', 'Closes #11438', '5', null, null, 'pkozlowski-opensource', '2015-04-03T10:28:22Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('713', '37', '11507', 'fix @param tag for $provide.decorator', 'The $provide.decorator function, as per the documentation, \"is called using the auto.injector.invoke method and is therefore fully injectable.\"\r\n\r\nThe current @param contradicts this by stating that only Functions may be used as an argument.', '3', null, null, 'KevinBrogan', '2015-04-03T20:29:42Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('714', '37', '11508', 'fix(jqLite): Check \"length\" in obj in isArrayLike for iOS JIT bug', 'to prevent iOS8 JIT bug (https://bugs.webkit.org/show_bug.cgi?id=142792) from surfacing\r\n\r\nThis is the fix implemented in [underscore.js](https://github.com/jridgewell/underscore/commit/086a56d04c0214054219d83eff25a4cbba524fc2) and most likely the fix that will be implemented in [jQuery](https://github.com/jquery/jquery/issues/2145#issuecomment-88650887).\r\n\r\nIt\'s not a very easy to recreate bug, but I stumbled upon it myself in our production app and was able to narrow it down to isArrayLike after several hours of banging my head. This plunkr was the closest I got to consistently surfacing the bug in Angular: http://plnkr.co/edit/UQ5NhZnRuafNxWiJuuyN\r\n\r\nThat ng-repeat will fail, but only on iOS8 (and i\'ve personally only had it fail on iPad) about 50% of the time after a few digests. If it doesn\'t fail quick reloading the plunkr a few times will usually get it to fail.', '15', null, null, 'snapwich', '2015-04-03T22:16:41Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('715', '37', '11509', 'docs(ngSwitch): Replace tt tag with code tag', 'Use of tt is discouraged, see:\r\nhttps://developer.mozilla.org/en-US/docs/Web/HTML/Element/tt\r\nhttp://www.w3.org/wiki/HTML/Elements/tt', '3', null, null, 'rparrapy', '2015-04-04T00:58:43Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('716', '37', '1151', 'Allow change browser URL without reinitialize controller status', '', '13', null, null, 'andresmoschini', '2012-07-18T12:13:45Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('717', '37', '11512', 'Dynamic option can hold empty value now so you don\'t have to initially p...', '...ut it inside select (issue #11470)', '9', null, null, 'slavede', '2015-04-04T13:58:06Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('718', '37', '11515', 'fix($cookies): update $cookies to prevent duplicate cookie writes', 'update $cookies to prevent duplicate cookie writes and play nice with external code\r\n\r\nUpdate the ngCookies service to prevent repetitive writes via $browser.cookies()\r\nAlso it is possible for $cookies to get confused about cookies modified outside of $cookies and\r\nsee those changes as user changes via the $cookies service which would then be set again. This\r\nunnecessary setting of cookies can duplicate or overwrite depending on the original cookie\'s\r\ndomain. This update prevents that scenario.\r\n\r\nCloses #11490', '4', null, null, 'chrisakers', '2015-04-05T05:01:38Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('719', '37', '11517', 'docs(tutorial/0 - Bootstrapping): improved info', 'added info for beginners', '2', null, null, 'Cheaterz', '2015-04-05T14:08:24Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('720', '37', '11518', 'Update step_10.ngdoc (added missing semicolon)', 'Added missing semicolon', '3', null, null, 'fdnhkj', '2015-04-05T17:00:27Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('721', '37', '11519', 'docs(angular.injector): improved clarity of docs', '', '4', null, null, 'harish208', '2015-04-06T09:24:02Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('722', '37', '1152', 'Minor grammatical fix.', 'EOM', '1', null, null, 'brettcannon', '2012-07-18T18:32:24Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('723', '37', '11520', 'fix($compile): do not use jQuery class API', 'jQuery class API causes issues with SVG elements', '6', null, null, 'dtritus', '2015-04-06T11:56:12Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('724', '37', '11523', 'fix(ngMock): Add responseType function parameter in mock httpbackend for', 'passthrough\r\n\r\nThe ngMock $httpBackend allows http request routes that have not been defined\r\nfor mocking to be passed through to the real http backend service. The\r\nresponseType parameter was missing in the ngMock httpbackend parameter\r\nlist.\r\n\r\ncloses #5415', '1', null, null, 'prateek14', '2015-04-07T00:49:42Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('725', '37', '11524', 'fix(ngMock): Add responseType function parameter in mock httpbackend for passthrough', '\r\nThe ngMock $httpBackend allows http request routes that have not been defined\r\nfor mocking to be passed through to the real http backend service. The\r\nresponseType parameter was missing in the ngMock httpbackend parameter\r\nlist.\r\n\r\ncloses #5415', '4', null, null, 'prateek14', '2015-04-07T01:03:03Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('726', '37', '11525', 'Npm update', '', '2', null, null, 'solidua', '2015-04-07T03:45:53Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('727', '37', '11526', 'docs(guide/Conceptual Overview): missing word in sentnce', 'This sentence is missing something...\r\n\r\nAn expression in a template is a JavaScript-like code snippet that allows to read and write variables.', '4', null, null, 'Matt-Hill-83', '2015-04-07T06:58:36Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('728', '37', '11527', 'docs(ngMessages): missing quote in sample', 'A tiny quote is missing in documentation of `ngMessages` for the brand new `ngMessageExp`', '0', null, null, 'cexbrayat', '2015-04-07T08:24:34Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('729', '37', '11528', 'docs(angular.injector): missing optional parameter mark', '', '0', null, null, 'zuzusik', '2015-04-07T18:41:28Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('730', '37', '11529', 'rf', '', '3', null, null, 'ozzeD', '2015-04-07T18:46:52Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('731', '37', '1153', 'Mention how attribute names map to directive names.', 'In the tutorial, the ngApp directive suddenly pops up without directly connecting it to the ng-app attribute. Explaining that explicitly and how attribute names map to directive names help make sure that one doesn\'t think they missed something or there is a typo in the directive name compared to the attribute (and vice-versa).', '2', null, null, 'brettcannon', '2012-07-18T18:57:15Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('732', '37', '11534', 'docs(filter): Note about exact match in object', 'Added note that when filtering for specific matches in javascript you MUST wrap the object key in quotes. Also provided example.', '7', null, null, 'jpribesh', '2015-04-09T04:33:34Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('733', '37', '1154', 'Adjective accidentally made into an adverb.', '\"prototypically descendant\" is incorrect as you are describing what the descendant is (\"prototypical\") instead of an action being performed on the descendant (\"prototypically\").', '2', null, null, 'brettcannon', '2012-07-18T19:01:58Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('734', '37', '11544', 'docs($resource): Make a correction in the example. ', 'Parameter object property name should match the extraction string', '1', null, null, 'yilinglu', '2015-04-10T07:47:35Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('735', '37', '11545', 'docs(guide/Developer Guide): describe your change...', '', '4', null, null, 'jijopaulose', '2015-04-10T12:04:46Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('736', '37', '11546', 'docs(tutorial/11 - REST and Custom Services): describe your change...', 'For someone that is totally unfamiliar with AngularJS (or any code segment for that matter), it is not ever easier to understand what is happening when an abstraction is used.\r\n\r\nI propose dropping this sentence entirely. Regardless, the phrase \"controllers is doing\" is grammatically incorrect. It should be \"controllers are doing\".', '4', null, null, 'jpgrace', '2015-04-10T20:27:28Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('737', '37', '11547', 'feat($http): add XHR events configuration option', 'Allows for arbitrary event handling on requests.\r\n\r\nThere are no tests here, it\'s just a proposal for discussion of #1934 .\r\nI\'ll add tests if a decision is made to go ahead with it.\r\nThis may also simplify testing by just firing events on the `mockXhr` object.', '20', null, null, 'chrisirhc', '2015-04-10T23:55:40Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('738', '37', '1155', 'fix(docs): indicate support for passing a string as the `controller` pro...', 'fix(docs): indicate support for passing a string as the `controller` property on $routeProvider\'s route object', '1', null, null, 'briceburg', '2012-07-18T19:21:20Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('739', '37', '1156', 'Tweak formatting and wording of a list.', 'Having a single word sentence and another one not containing a grammatically correct sentence seemed. Maybe use colons to denote that they are acting as topics for the rest of the li (as this patch does)?', '1', null, null, 'brettcannon', '2012-07-18T19:24:57Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('740', '37', '11560', 'fix(ngAnimate): do not abort animation if only `ng-anchor-in` is used', '', '2', null, null, 'matsko', '2015-04-13T16:57:06Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('741', '37', '11561', 'fix($http): stop $httpBackend conversion of falsy values to null before xh...', '...r.send()\r\n\r\nstop $httpBackend from potentially overriding false values to null when sending a falsy value to a web service via POST or PUT et al', '2', null, null, 'royka', '2015-04-13T17:13:58Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('742', '37', '11564', 'refactor(directives.js): restrict default AC -> AE', 'let\'s be honest, no one uses Class directives in Angular1 and this will be more inline with Angular2. I can also change it to \'AEC\' for the defaults to be backwards compatible.', '2', null, null, 'gdi2290', '2015-04-13T19:41:21Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('743', '37', '11566', 'fix(ngAnimate): ensure ngClass-based classes are always resolved for CSS-enabled animations', '', '2', null, null, 'matsko', '2015-04-13T21:36:40Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('744', '37', '11567', 'stop coercing falsy values to null before xhr.send()', 'This is intended to resolve https://github.com/angular/angular.js/issues/11552.', '9', null, null, 'johnhoffman', '2015-04-13T23:40:31Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('745', '37', '11568', 'feat($animate): provide support for animations on elements outside of $rootElement', 'By default, ngAnimate only considers animations for elements that live within `$rootElement`. This is to prevent the accidental animation of elements that fall outside of an application. This feature, however, is limited since it prevents animations from running on elements that are situated by the `body` tag while being outside of `ng-app`. Drop down menus for example use absolute positioning and are therefore situated directly inside of `document.body`. This fix allows for this to work by using `$animate.pin()` to flag elements that live outside of `$rootElement`.\r\n\r\n\r\n--- commit ---\r\n\r\nBeforehand it was impossible to issue an animation via $animate on an\r\nelement that is outside the realm of an Angular app. Take for example a\r\ndropdown menu where the menu is positioned with absolute positioning...\r\nThe element will most likely need to be placed by the `<body>` tag, but\r\nif the angular application is bootstrapped elsewhere then it cannot be\r\nanimated.\r\n\r\nThis fix provides support for `$animate.pin()` which allows for an\r\nexternal element to be virtually placed in the DOM structure of a host\r\nparent element within the DOM of an angular app.', '2', null, null, 'matsko', '2015-04-14T00:23:20Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('746', '37', '11569', 'fix(ngAnimate): ensure that a filtered-out leave animation always runs its DOM operation', 'This patch fixes the issue where filtered-out leave animations were not\r\nproperly run the DOM operation when closed.\r\n\r\nCloses #11555', '5', null, null, 'matsko', '2015-04-14T00:57:31Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('747', '37', '1157', 'Consistently use __bold__ for things that must be done when moving the n...', '...g-controller declaration.', '1', null, null, 'brettcannon', '2012-07-18T19:26:30Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('748', '37', '11570', 'docs(form): remove obsolete tt element', 'Remove the [**obsolete** HTML Teletype Text Element `<tt>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/tt) and replace it with [`<code>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/code). Add more semanticity and make use of the [HTML5 specification](http://www.w3.org/TR/html5/text-level-semantics.html#the-code-element).\r\n\r\nSimilar to https://github.com/rparrapy/angular.js/commit/8b6deb6f4f924bda469a68c7256235257a8bf9b1', '0', null, null, 'jeffwesson', '2015-04-14T01:01:02Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('749', '37', '11572', 'test(ngAnimate): add basic integration tests for JS/CSS $animate-based animations', '', '2', null, null, 'matsko', '2015-04-14T03:22:56Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('750', '37', '11575', 'fix(ngAnimate): ensure that animations work when the app is bootstrapped on the document node', 'Closes #11574', '7', null, null, 'matsko', '2015-04-14T05:21:18Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('751', '37', '11576', 'docs(i18n): expand the MessageFormat syntax documentation', '', '34', null, null, 'chirayuk', '2015-04-14T08:03:07Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('752', '37', '11577', 'Update ngClick.js - find label inside parent element to correctly prevent second click from being busted', 'In our code we have an input element inside a label. The click on the label generates two clicks, but the second click was not recognised by angular-touch as a label click, because it only looks at the current element, instead of looking for a label in parent elements. Therefore, the second click gets busted, and clicking on the label doesn\'t do anything for 2500ms.\r\n\r\nI added the additional lookup for a containing label inside one of the conditions inside the onClick method.', '3', null, null, 'mobilabgit', '2015-04-14T08:38:16Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('753', '37', '11579', 'fix($http): stop $httpBackend coersion of falsy values to null before xh...', '...r.send()\r\n\r\nstop $httpBackend from potentially overriding false values to null when sending a falsy value to a web service via POST or PUT et al', '2', null, null, 'royka', '2015-04-14T13:35:30Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('754', '37', '1158', 'Remove a redundant \"in\".', '\"Within\" gets the point across already.', '1', null, null, 'brettcannon', '2012-07-18T19:38:53Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('755', '37', '11581', 'fix($location): prevent infinite $digest from no trailing slash in IE9', 'fix($location): prevent infinite $digest from no trailing slash in IE9\r\n\r\nThis fix prevents IE9 from throwing an infinite $digest error when the user accesses the base\r\nURL of the site without a trailing slash. Suppose you owned http://www.mysite.com/app\r\nand had an Angular app hosted in a subdirectory \"app\". If an IE9 user accessed\r\nhttp://www.mysite.com/app infinite $digest errors would be thrown on the console, but the app\r\nitself would eventually resolve properly and work fine. Now the infinite $digest errors will\r\nnot be thrown.\r\n\r\nCloses #11439', '7', null, null, 'hamfastgamgee', '2015-04-14T15:41:43Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('756', '37', '11582', 'stop coercing falsy values to null before xhr.send()', 'This is intended to resolve https://github.com/angular/angular.js/issues/11552.', '0', null, null, 'johnhoffman', '2015-04-14T17:24:32Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('757', '37', '11584', 'docs(MIGRATION): add notes for the migration from 1.3 to 1.4', '', '12', null, null, 'matsko', '2015-04-14T18:40:06Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('758', '37', '11585', 'fix($browser): prevent infinite $digest from no trailing slash in IE9', 'fix($browser): prevent infinite $digest from no trailing slash in IE9\r\n\r\nThis fix prevents IE9 from throwing an infinite $digest error when the user accesses the base\r\nURL of the site without a trailing slash. Suppose you owned http://www.mysite.com/app\r\nand had an Angular app hosted in a subdirectory \"app\". If an IE9 user accessed\r\nhttp://www.mysite.com/app infinite $digest errors would be thrown on the console, but the app\r\nitself would eventually resolve properly and work fine. Now the infinite $digest errors will\r\nnot be thrown.\r\n\r\nCloses #11439', '0', null, null, 'hamfastgamgee', '2015-04-14T18:52:59Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('759', '37', '11587', 'fix($browser): prevent infinite $digest from no trailing slash in IE9', 'fix($browser): prevent infinite $digest from no trailing slash in IE9\r\n\r\nThis fix prevents IE9 from throwing an infinite $digest error when the\r\nuser accesses the base\r\nURL of the site without a trailing slash. Suppose you owned\r\nhttp://www.mysite.com/app\r\nand had an Angular app hosted in a subdirectory \"app\". If an IE9 user\r\naccessed\r\nhttp://www.mysite.com/app infinite $digest errors would be thrown on the\r\nconsole, but the app\r\nitself would eventually resolve properly and work fine. Now the infinite\r\n$digest errors will\r\nnot be thrown.\r\n\r\nCloses #11439', '2', null, null, 'hamfastgamgee', '2015-04-14T19:08:45Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('760', '37', '11588', 'docs($httpParamSerializerJQLike): fix link to `jquery.param`', 'Currently, the trailing `}` is interpreted as part of the URL, leading to a 404 on `jquery.com`.', '0', null, null, 'gkalpak', '2015-04-14T19:20:28Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('761', '37', '11589', 'docs($httpProvider): fix link to $httpParamSerializer', '', '0', null, null, 'gkalpak', '2015-04-14T19:25:07Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('762', '37', '11590', 'docs($httpProvider): fix link to $injector', '', '0', null, null, 'gkalpak', '2015-04-14T19:29:25Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('763', '37', '11591', 'docs($http): minor fixes in `paramSerializer` description', '', '0', null, null, 'gkalpak', '2015-04-14T19:33:57Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('764', '37', '11592', 'fix(ngMessageFormat): minified symbol and nested required expression', 'Add an E2E test that works against the minified module to test that the\r\nminified build works correctly.\r\n\r\nFix a bug where mustHaveExpression was passed through to submessages\r\nunchanged. Use of the messageFormat syntax automatically means that you\r\nare using an expression. Therefore, submessages should not be required\r\nto also have messages. This closes #11414', '1', null, null, 'chirayuk', '2015-04-14T19:47:11Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('765', '37', '11593', 'stop coercing falsy values to null before xhr.send()', 'This is intended to resolve https://github.com/angular/angular.js/issues/11552.', '9', null, null, 'johnhoffman', '2015-04-14T20:06:55Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('766', '37', '11594', 'fix(ngResource): add put/patch to default actions #11571', 'This patch adds put/patch to default actions so implementing a custom request for these common use cases is no longer required.\r\n\r\nCloses #11571\n\n<!-- Reviewable:start -->\n[<img src=\"https://reviewable.io/review_button.png\" height=40 alt=\"Review on Reviewable\"/>](https://reviewable.io/reviews/angular/angular.js/11594)\n<!-- Reviewable:end -->\n', '4', null, null, 'nhodges', '2015-04-14T21:40:01Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('767', '37', '11597', 'chore(ngMessageFormat): rename angular-messageFormat to angular-message-format', 'Closes #11595', '1', null, null, 'chirayuk', '2015-04-15T01:20:23Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('768', '37', '116', 'Scenario runner jquery issue 113', 'Fix future names for generated jQuery methods and make future names more consistent in general.', '1', null, null, 'esprehn', '2010-11-02T00:25:30Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('769', '37', '1160', 'Don\'t want the present participle of \"is\".', '\"not being able\" is pretty much only good at the beginning of a sentence; want \"not be able\" instead.', '1', null, null, 'brettcannon', '2012-07-18T20:24:47Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('770', '37', '11600', 'docs($http): minor fixes regarding params serializers', '', '0', null, null, 'gkalpak', '2015-04-15T13:41:10Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('771', '37', '11601', 'docs($http): minor fixes regarding params serializers', '', '2', null, null, 'gkalpak', '2015-04-15T13:48:18Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('772', '37', '11604', 'docs(ngModel): getterSetter and `arguments.length` vs. `angular.isDefined`', 'When using `ng-model-options=\"{ getterSetter: true }\"` one should be aware that the getter/setter method could be called with an argument set to undefined even if the method is used as setter. This e.g. happens when the model is invalid:\r\nhttps://github.com/angular/angular.js/blob/dd8b157299520e8167b918439c2d3534e8cba550/src/ng/directive/ngModel.js#L535\r\n\r\nUsing `arguments.length` reliably detects whether the getter/setter should act as getter or setter.\r\nCredits for the concept:\r\nhttps://github.com/angular/angular.js/issues/11361#issuecomment-84022489\r\n\r\nI believe that this should be documented as failing to realise this can cause weird behaviour and large time spendings on hunting bugs (at least that happened to me).', '3', null, null, 'yankee42', '2015-04-15T20:16:02Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('773', '37', '11607', 'Bower publish ng message format', '', '0', null, null, 'chirayuk', '2015-04-15T20:46:37Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('774', '37', '11608', 'docs($animate): include docs for `on`, `off`, `enabled` and `cancel`', '', '14', null, null, 'matsko', '2015-04-15T22:19:20Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('775', '37', '11609', 'fix(ngSanitize): escape the wide char quote marks in a regex in linky.js', '[#11598](https://github.com/angular/angular.js/issues/11598)\r\n\r\nIt is all about the wide quote mark chars introduced in 1.3.x. I have escaped these chars.\r\n\r\nActually the escaped chars are what is in the compressed sanitize.min.js. If not escaped, there is a chance to get messed up on some machines, causing the script not working.', '3', null, null, 'luanshixia', '2015-04-16T03:11:53Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('776', '37', '1161', 'Grammatical fix', 'Ditch a double use of the word \"mock\" and added an \"a\" as needed.', '1', null, null, 'brettcannon', '2012-07-18T20:31:01Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('777', '37', '11611', 'docs(ngMessages): describe your change...', 'ng-messages including a different template.', '4', null, null, 'melvin0008', '2015-04-16T09:57:50Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('778', '37', '11612', 'docs(misc/Downloading): upgrade CDN path 1.3.15', 'In order to reference to the latest stable angular version.\r\nBackground: a lot of people, including me, copy this snipped and use them in their project without checking for the latest stable version.', '3', null, null, 'johannes-weber', '2015-04-16T10:05:21Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('779', '37', '11614', 'docs(angular.element): css() api incompatibility.', '\"When a number is passed as the value, jQuery will convert it to a string and add px to the end of that string.\"\r\nhttp://api.jquery.com/css/#css2\r\n\r\njqLite does not appear to do this. \r\n\r\nPartial fix for #11626 .\r\n(can submit full fix if desired)\r\n\r\n', '6', null, null, 'adam77', '2015-04-16T10:34:47Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('780', '37', '11615', 'docs(ngMessages): missing quotation mark...', '... let the example fail. It seem to be a copy paste fail.', '4', null, null, 'ElRaph', '2015-04-16T12:41:06Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('781', '37', '11617', 'fix(filterFilter): fix matching against `null`/`undefined`', 'Included fixes:\r\n\r\n* Do not convert `null`/`undefined` to strings for substring matching in non-strict comparison mode.\r\n Prevents `null`/`undefined` from being matched against e.g. \'u\'.\r\n* Let `null` (as a top-level filter expression) match \"deeply\" (as do booleans, numbers and strings).\r\n E.g. let `filterFilter(arr, null)` match an item like `{someProp: null}`.\r\n\r\nFixes #11573\r\n\r\n--\r\n(Cherry-picked from b5002ab to fix regressions as described in https://github.com/angular/angular.js/pull/11445#issuecomment-87956330.)', '0', null, null, 'gkalpak', '2015-04-16T13:59:50Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('782', '37', '1162', 'Fix some awkward wording.', 'Typically you exist *in* a scope, not on it. But since the sentence is about the `scope` object, it makes sense to use \"on\", but only if you make it clear you are talking about the object and not the concept.\n\nAlso removed an unneeded comma.', '1', null, null, 'brettcannon', '2012-07-18T20:37:26Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('783', '37', '11620', 'fix(ngAnimate): close parent animations only when there are classes to resolve', 'Previously if a parent animation was cancelled then it would not resolve\r\nthe runner when that happens. This is now fixed in this patch. Another\r\nfix in this patch ensures that a parent animation is only cancelled if\r\nthe animation contains any classes to resolve. This prevents inline\r\nanimations from being cancelled.', '1', null, null, 'matsko', '2015-04-16T18:39:06Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('784', '37', '11623', 'sec(http): JSONP should require trusted resource URLs', 'WORK-IN-PROGRESS. Do **NOT** merge. More work needs to be done and the tests are currently broken.\r\n\r\n- JSONP should require trusted resource URLs. This would be a breaking\r\n change but maybe not too onerous since same origin URLs are trusted in\r\n the default config and you can easily whitelist any 3rd party URLs you\r\n trust in one single place (your app/module config.)\r\n- fix a bug where $http can\'t handle $sce wrapper URLs.\r\n\r\nCloses #11352\r\nCloses #11328', '9', null, null, 'chirayuk', '2015-04-16T21:06:46Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('785', '37', '11628', 'fix($compile): exception when using \"watch\" as isolated scope binding variable in Firefox', 'Firefox throws \"Error: can\'t convert undefined to object\" exception when using \"watch\" as a isolated scope binding\r\nIt is because in Firefox Object.prototype.watch is defined and the related code is not using hasOwnProperty to check property availability.\r\n\r\nCloses #11627', '27', null, null, 'randing89', '2015-04-17T02:08:56Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('786', '37', '11631', 'Fixed CHANGELOG.md markup below v.1.2.14', '', '1', null, null, 'CamaroSS', '2015-04-17T09:23:34Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('787', '37', '11635', 'fix($httpParamSerializerJQLike): Follow jQuery parameter serialization l...', '...ogic\r\n\r\nFollow jQuery parameter serialization logic for nested objects.\r\n\r\nCloses #11551', '13', null, null, 'lgalfaso', '2015-04-17T15:16:35Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('788', '37', '11640', 'fix($animate): make sure the JS animation lookup is an object lookup', 'The lookup type was an array before, but it should be an empty object.\r\n\r\nCloses #11619', '2', null, null, 'matsko', '2015-04-17T21:26:25Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('789', '37', '11644', 'fix(ngMessageFormat): ensure bindings are valid for Protractor', 'Yes, yes, I know. This PR requires unit tests, etc, etc.\r\nJust pushing here for @chirayuk to take care of. Thanks @chirayuk !', '3', null, null, 'petebacondarwin', '2015-04-18T20:30:50Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('790', '37', '11645', 'docs(guide/Scopes): remove unnecessary parenthesis', '', '0', null, null, 'brunocoelho', '2015-04-18T23:59:58Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('791', '37', '11646', 'docs(ngJq): fix directive usage', 'Should fix the usage example, see https://docs.angularjs.org/api/ng/directive/ngJq', '1', null, null, 'cexbrayat', '2015-04-19T01:40:36Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('792', '37', '11648', 'Note about required quotes for dashed class names', 'This is a nasty hidden gotcha. http://stackoverflow.com/a/15582433/710394\r\nAny time someone says, \"After hours of hacking around, it turns out...\" it\'s probably a good candidate for inclusion in the docs.', '4', null, null, 'aschriner', '2015-04-19T04:25:38Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('793', '37', '11649', 'fix(ngMessageFormat): ensure bindings are valid for Protractor', 'Refer original PR #11644 ', '1', null, null, 'chirayuk', '2015-04-19T09:20:23Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('794', '37', '11653', 'fix(equals): handle objects with circular references', 'Make `angular.equals` handle circular references.\r\n\r\nCloses #11372', '24', null, null, 'lgalfaso', '2015-04-20T11:15:49Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('795', '37', '11656', 'fix($browser): prevent infinite $digest from no trailing slash in IE9', 'fix($browser): prevent infinite $digest from no trailing slash in IE9\r\n\r\nThis fix prevents IE9 from throwing an infinite $digest error when the user accesses the base\r\nURL of the site without a trailing slash. Suppose you owned http://www.mysite.com/app\r\nand had an Angular app hosted in a subdirectory \"app\". If an IE9 user accessed\r\nhttp://www.mysite.com/app infinite $digest errors would be thrown on the console, but the app\r\nitself would eventually resolve properly and work fine. Now the infinite $digest errors will\r\nnot be thrown.\r\n\r\nCloses #11439', '2', null, null, 'hamfastgamgee', '2015-04-20T17:14:08Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('796', '37', '11661', 'docs(ngCloak): remove information for ie7', 'IE7 is not supported. Also change `#template2` text to `\'world\'`.', '0', null, null, 'stevemao', '2015-04-21T01:04:38Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('797', '37', '11672', 'Fixed grammatical error', 'Changed \"a animation\" to \"an animation\" for grammatical consistency', '4', null, null, 'fahd', '2015-04-21T21:55:49Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('798', '37', '11673', 'feat(compile): add \'directives\' property to ddo to preload templates', 'this can be useful when you have many nested directives and you want to download all of the required templates in parallel instead of downloading the next template serially only after each downloaded template is compiled.', '19', null, null, 'shahata', '2015-04-21T23:49:13Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('799', '37', '11674', 'Fixed formatting in line 9', '- Added space and comma\r\n- No source code affected', '4', null, null, 'vokoshyv', '2015-04-22T04:11:28Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('800', '37', '11675', 'fix($browser): prevent infinite $digest from no trailing slash in IE9', 'fix($browser): prevent infinite $digest from no trailing slash in IE9\r\n\r\nThis fix prevents IE9 from throwing an infinite $digest error when the user accesses the base\r\nURL of the site without a trailing slash. Suppose you owned http://www.mysite.com/app\r\nand had an Angular app hosted in a subdirectory \"app\". If an IE9 user accessed\r\nhttp://www.mysite.com/app infinite $digest errors would be thrown on the console, but the app\r\nitself would eventually resolve properly and work fine. Now the infinite $digest errors will\r\nnot be thrown.\r\n\r\nCloses #11439', '38', null, null, 'hamfastgamgee', '2015-04-22T11:32:11Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('801', '37', '11678', 'Create angular-svg.md', '', '1', null, null, 'wonderfan', '2015-04-22T14:14:29Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('802', '37', '11684', 'Select test', '', '2', null, null, 'vivekanandars', '2015-04-22T21:39:27Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('803', '37', '11686', 'docs(contribute): transpose \"however\" and \"it\'s\"', 'Transpose \"however\" and \"it\'s\" on line 156 for slightly better readability', '0', null, null, 'thatType', '2015-04-23T02:15:53Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('804', '37', '11688', 'fix($compile): Better error message on empty template', 'If a user ends up trying to call $compile with an empty string, they will get an error from jqLite\r\nThis commit introduces a much more accurate error to aid in debugging.\r\n\r\nPlunker: http://plnkr.co/edit/YNxDVQNMTsiNV3WhmjcT?p=preview', '1', null, null, 'SomeKittens', '2015-04-23T04:32:32Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('805', '37', '11689', 'Materialize', 'vxbn', '3', null, null, 'eros2123', '2015-04-23T05:13:16Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('806', '37', '1169', 'fixes ng-pluralize when $interpolate is using non-standard start/end symbols', 'Addresses issue #1134', '3', null, null, 'btford', '2012-07-19T08:11:08Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('807', '37', '11695', '$swipe: Make a swipe event inactive from the start callback.', 'Implementation proposition for issue #11694', '3', null, null, 'matthieusieben', '2015-04-23T15:06:57Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('808', '37', '11696', 'Create lomo1122', '', '2', null, null, 'lomo1122', '2015-04-23T15:41:28Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('809', '37', '11697', '$swipe: Make a swipe event inactive from the start callback.', 'Implementation proposition for issue #11694', '1', null, null, 'matthieusieben', '2015-04-23T15:42:21Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('810', '37', '11698', '$swipe: Make a swipe event inactive from the start callback.', 'Implementation proposition for issue #11694', '1', null, null, 'matthieusieben', '2015-04-23T15:48:43Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('811', '37', '11699', 'docs($httpBackend): compare $httpBackend API to $http API', 'Documentation states $httpBackend has the same API as $httpBackend, it compares the API to itself. This change compares the API to $http instead.', '2', null, null, 'ciwchris', '2015-04-23T17:54:45Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('812', '37', '117', 'Scenario runner browser reload', 'Implement browser().reload() to fix the personalLog demo', '1', null, null, 'esprehn', '2010-11-02T00:26:12Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('813', '37', '11701', 'docs(error/nonassign): add optional binding example', '', '1', null, null, 'kentcdodds', '2015-04-23T18:18:59Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('814', '37', '11702', 'feat(directives.js): default replace true', 'better for animations/css/seo', '1', null, null, 'gdi2290', '2015-04-23T18:23:07Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('815', '37', '11704', 'Fixes for ngAnimate to get it work for RC1', '', '8', null, null, 'matsko', '2015-04-23T23:01:51Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('816', '37', '11706', 'Merge pull request #1 from angular/master', 'fix(select): allow empty option to be added dynamically by ng-repeat', '1', null, null, 'heziqiang99', '2015-04-24T07:29:57Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('817', '37', '1171', 'Remove a sudden listing of an attribute name next to its directive name.', 'In the entire tutorial up to this point, it has been left up to the reader to map directive names to attribute names (except for the introduction of the concept in step 0). This patch keeps this consistency by removing the single instance thus far of bothering to list the directive name and attribute name directly next to each other.', '4', null, null, 'brettcannon', '2012-07-19T14:06:13Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('818', '37', '11710', 'refactor($browser): Remove unused variable.', '', '1', null, null, 'johnnyghost', '2015-04-24T13:53:28Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('819', '37', '11712', 'docs($q): Improve documentation of .then', 'Adds short explanation of promise chaining and a link for further explanation.\r\n\r\nCloses #11708', '0', null, null, 'kentcdodds', '2015-04-24T14:05:41Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('820', '37', '11718', 'Travis debug karma socketio', '', '1', null, null, 'aboalata', '2015-04-24T20:14:30Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('821', '37', '11719', 'fix(orderBy): Throw exception when orderBy is given a non array-like object.', 'Throws exception when orderBy is given a non array-like object to sort.\r\n\r\nCloses #11255.\n\n<!-- Reviewable:start -->\n[<img src=\"https://reviewable.io/review_button.png\" height=40 alt=\"Review on Reviewable\"/>](https://reviewable.io/reviews/angular/angular.js/11719)\n<!-- Reviewable:end -->\n', '51', null, null, 'nhodges', '2015-04-24T21:42:42Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('822', '37', '1172', 'Capitalize \"Angular\".', '', '1', null, null, 'brettcannon', '2012-07-19T14:12:45Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('823', '37', '11720', 'fix(merge): treat dates as atomic values instead of objects.', 'Makes `angular.merge` copy dates correctly.\r\n\r\nBefore and after this change:\r\n\r\n![image](https://cloud.githubusercontent.com/assets/6508058/7330176/fb9a8f08-eabf-11e4-8e4d-a1517e02198a.png)\r\n', '9', null, null, 'gabrielmaldi', '2015-04-24T23:26:02Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('824', '37', '11722', 'fix(ngAnimate): Fix text node animation', 'Change to comment stripping code to return text nodes in addition to element nodes\r\n\r\nCloses #11703', '3', null, null, 'circlingthesun', '2015-04-25T00:15:16Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('825', '37', '11725', 'Improve the CSS Animation API for $animateCss and JS Animations ', 'I wrote this PR at the airport', '6', null, null, 'matsko', '2015-04-25T14:05:31Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('826', '37', '11726', 'docs(tutorial/7 - Routing): Remove an extra \"/\"', '', '2', null, null, 'b0ri5', '2015-04-25T18:07:08Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('827', '37', '1173', 'Tweak some grammar and add some links relating to DI.', 'The sentence was awkward without the pause. I also added links to the alluded to tutorial step and the DI guide as linked to in Step 5 itself to learn more about DI.', '1', null, null, 'brettcannon', '2012-07-19T14:21:57Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('828', '37', '11730', 'docs(misc/Getting Started): describe your change...', '', '2', null, null, 'Kissedvard1', '2015-04-26T08:33:09Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('829', '37', '11732', 'docs(CHANGELOG): change name for 1.4.0-rc.1', 'Align version name for 1.4.0-rc.1 to be compliant with version naming convention:\r\nSartorial Chronography => sartorial-chronography', '0', null, null, 'micellius', '2015-04-26T12:29:36Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('830', '37', '11734', 'feat($injector): add strictDi property to $injector instance', 'Add a strictDi property which is true or false when creating an instance of an injector.\r\n\r\nCloses #11728', '5', null, null, 'kentcdodds', '2015-04-27T02:55:58Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('831', '37', '11735', '$animate callbacks using DOM queries', 'This patch fixes ngView to inject `$element` and also patches `$animate.on` and `$animate.off` to provide support for triggering callbacks based on a DOM-query.\r\n\r\nAll of this is to make using animation callbacks within controllers easier.', '7', null, null, 'matsko', '2015-04-27T03:53:14Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('832', '37', '11736', 'feat(ngTranscludeSelect): add ng-transclude-select directive for multi-transclusion', 'I\'ve updated the PR to make the syntax closer to `<content select>` tags (and thus make migration to Angular 2 a bit easier). To transclude in multiple points, you simply:\r\n- set `transclude` to `true`\r\n- use `ng-transclude-select` directives in your template to mark transcludable sections\r\n- when using the directive, add the appropriate selectors to match the template\'s `ng-transclude-select` selectors.\r\n\r\nExample usage:\r\n\r\n*index.html*\r\n```html\r\n<my-container>\r\n <div head>This is head content.</div>\r\n <div body>This is body content.</div>\r\n <div foot>This is foot content.</div>\r\n</my-container>\r\n```\r\n\r\n*myContainer.js*\r\n```javascript\r\nangular.module(\'app\', [])\r\n.directive(\'myContainer\', function() {\r\n return {\r\n transclude: true,\r\n template: [\r\n \'<header ng-transclude-select=\"[head]\"></header>\',\r\n \'<main ng-transclude-select=\"[body]\"></main>\',\r\n \'<footer ng-transclude-select=\"[foot]\"></footer>\'\r\n ].join(\'\')\r\n };\r\n});\r\n```\r\n\r\nThe output in the DOM would be something like:\r\n\r\n```html\r\n <header ng-transclude-select=\"[head]\">\r\n <div head>This is head content.</div>\r\n </header>\r\n <main ng-transclude-select=\"[body]\">\r\n <div body>This is body content.</div> \r\n </main>\r\n <footer ng-transclude-select=\"[foot]\">\r\n <div foot>This is foot content.</div>\r\n </footer>\r\n```\r\n\r\nThe implementation needs work. There are some hacks like wrapping the clone to use `querySelector` - would love to replace that with something better. Another implementation option would be to do all the matching at once - so you could throw an error at any unused clone elements (currently, they are just being cleaned up).\r\n', '9', null, null, 'kara', '2015-04-27T04:02:43Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('833', '37', '11739', 'docs(guide/Migrating from Previous Versions): spelling mistake', '', '3', null, null, 'w3apps', '2015-04-27T12:09:41Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('834', '37', '1174', 'Capitalize \"APIs\"', '', '0', null, null, 'brettcannon', '2012-07-19T14:59:07Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('835', '37', '11740', 'docs(guide/Accessibility): Remove an extra \"a\" in the A11Y doc', '', '0', null, null, 'Gillespie59', '2015-04-27T13:12:21Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('836', '37', '11742', 'chore(docs): Don\'t use Chrome Frame', 'Chrome Frame has stopped development with Chrome 32 release; we shouldn\'t rely\r\non it in the docs.', '0', null, null, 'mzgol', '2015-04-27T19:14:49Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('837', '37', '11743', 'fix(ngOptions): use watchCollection not deep watch of ngModel', '', '9', null, null, 'petebacondarwin', '2015-04-27T21:17:42Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('838', '37', '11744', 'docs($location): explain difference between $location.host() and location.host.', '\r\nsee issue #11741.', '4', null, null, 'dnozay', '2015-04-28T01:22:43Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('839', '37', '11745', 'docs($http): Adds detail about param sorting.', 'Parameters are sorted when added to the URL:\r\nhttps://github.com/angular/angular.js/blob/c8700f04fb6fb5dc21ac24de8665c0476d6db5ef/src/ng/http.js#L24\r\nThis is a very important detail, especially for testing.', '2', null, null, 'wesalvaro', '2015-04-28T04:17:22Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('840', '37', '11747', 'element tag misspelled', 'greeting-box misspelled', '3', null, null, 'eczajk1', '2015-04-28T13:13:54Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('841', '37', '1175', 'Capitalize \"API\"', '', '1', null, null, 'brettcannon', '2012-07-19T15:05:22Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('842', '37', '11755', 'fix(ngAnimate): close follow-up class-based animations when the same class is added/removed when removed/added', 'This patch ensures that if the same CSS class is added/removed within a\r\nfollow-up digest then the previous class-based animation is cancelled\r\nbeforehand.\r\n\r\nCloses #11717', '7', null, null, 'matsko', '2015-04-29T00:19:41Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('843', '37', '11758', 'docs(select): remove obsolete ngOptions equality check comments', '', '0', null, null, 'booleanbetrayal', '2015-04-29T14:42:06Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('844', '37', '1176', 'Add a missing \"the\".', '', '1', null, null, 'brettcannon', '2012-07-19T15:10:44Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('845', '37', '11760', 'fix(ngAnimate): ensure that all jqLite elements are deconstructed properly', 'Prior to this fix if a form DOM element was fed into parts of the\r\nngAnimate queuing code it would attempt to detect if it is a jqLite\r\nobject in an unstable way which would allow a form element to return an\r\ninner input element by index. This patch ensures that jqLite instances\r\nare properly detected using a helper method.\r\n\r\nCloses #11658', '8', null, null, 'matsko', '2015-04-29T18:05:34Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('846', '37', '11761', 'Clarify\'s test case for ng-repeat stability test.', 'Hey Angular devs,\r\n\r\nI was going through the `ng-repeat` directive test cases, and noticed a typo (or at least, I think its a typo) in the setup for the stability test case.\r\n\r\nHaving `{{key}}:{{val}}` in the repeated element did not seem to make sense to me, especially when the expression is `ng-repeat=\"item in items\"`. \r\n\r\nAnyways, hope this helps!', '1', null, null, 'nbrookie', '2015-04-29T18:13:39Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('847', '37', '11764', 'fix($http): do not modify the config object passed into $http short methods', 'Update $http\'s `createShortMethods` and `createShortMethodsWithData` to extend an empty object instead of the passed-in config.\r\n\r\nPreviously, since $http was extending the passed-in config, the changes to the config object persisted even after the call to $http\'s get/post/etc. returned:\r\n```\r\nvar config = { some_key: 1 };\r\n$http.get(\'/testUrl\', config);\r\n// config now contains { some_key: 1, url: \'/testUrl\', method: \'GET\' }\r\n```\r\n\r\nThis causes unexpected behavior if that config object is reused in subsequent calls to $http. The existing test in httpSpec was not properly testing this situation.', '6', null, null, 'maxthyen', '2015-04-30T02:54:04Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('848', '37', '11765', 'fix(ngOptions): correctly watch displayed value for changes', 'ngOptions does not update the displayed value properly if the property being used as the label changes when not using the \"select as\" or \"track by\" syntax, i.e ```<select ng-options=\"value.label for value in array\"></select>``` will not update if ```array[0].label``` is changed but ```<select ng-options=\"value.label as value.label for value in array></select>``` will correctly update.\r\n\r\nThe bug is demonstrated here: [https://jsfiddle.net/76qrsctv/17/](https://jsfiddle.net/76qrsctv/18/)\r\n\r\nThe proposed change fixes this issue.', '4', null, null, 'dremonkey', '2015-04-30T05:35:57Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('849', '37', '11766', 'docs(ngAnimate): example directive \'greetingBox\' misspelled in example', '', '0', null, null, 'rjatkinson2', '2015-04-30T06:05:48Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('850', '37', '1177', 'ngRepeater isn\'t a thing, ngRepeat is', 'And there is no need to make it plural as it is implicit from the word \"use\", e.g. \"look at where we use red in this painting\".', '1', null, null, 'brettcannon', '2012-07-19T15:45:24Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('851', '37', '11771', 'fix(ngOptions): iterate over the options collection in the same way as `...', '...ngRepeat`\r\n\r\nIn `ngRepeat` if the object to be iterated over is \"array-like\" then it only iterates\r\nover the numerical indexes rather than every key on the object. This prevents \"helper\"\r\nmethods from being included in the rendered collection.\r\n\r\nThis commit changes `ngOptions` to iterate in the same way.\r\n\r\nBREAKING CHANGE:\r\n\r\nAlthough it is unlikely that anyone is using it in this way, this change does change the\r\nbehaviour of `ngOptions` in the following case:\r\n\r\n* you are iterating over an array-like object, using the array form of the `ngOptions` syntax\r\n(`item.label for item in items`) and that object contains non-numeric property keys.\r\n\r\nIn this case these properties with non-numeric keys will be ignored.\r\n\r\n** Here array-like is defined by the result of a call to this internal function:\r\nhttps://github.com/angular/angular.js/blob/v1.4.0-rc.1/src/Angular.js#L198-L211 **\r\n\r\nTo get the desired behaviour you need to iterate using the object form of the `ngOptions` syntax\r\n(`value.label` for (key, value) in items)`).\r\n\r\nCloses #11733', '25', null, null, 'petebacondarwin', '2015-04-30T12:09:12Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('852', '37', '11772', 'fix($compile): validate directive name for whitespaces', 'Throw an exception if directive name contains leading or trailing whitespaces\r\n\r\nCloses #11397', '14', null, null, 'lugovsky', '2015-04-30T13:11:53Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('853', '37', '11774', 'fix(ngAria): update `aria-valuemin/max` when `min/max` change', 'As a result of thi fix, `ngMin/Max` also set `aria-valuemin/max` on\r\n\"range\"-shaped elements.\r\n\r\nFixes #11770', '1', null, null, 'gkalpak', '2015-04-30T13:49:16Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('854', '37', '11778', 'docs(changelog): wrap jqLite example containing html with code block', 'This prevents the markdown parser from garbling the input and putting\r\nout broken html.', '3', null, null, 'Narretz', '2015-04-30T20:37:21Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('855', '37', '1178', 'Capitalize Angular.', '', '4', null, null, 'brettcannon', '2012-07-19T16:09:51Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('856', '37', '11780', 'docs(ngJq): update to indicate common pitfall', 'change docs for ngJq so it mentions that the placement of the directive is important with regards to the angular script.\r\n\r\nCloses #11779', '4', null, null, 'kentcdodds', '2015-04-30T22:20:04Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('857', '37', '11784', 'fix(ngOptions): ensure that tracked properties are always watched', 'Commit 47f9fc3e70bc361e8c11fe68dc3ec4489238efb3 failed to account for changes to\r\nthe tracked value of model items in a collection where the select was `multiple`.\r\n\r\nSee https://github.com/angular/angular.js/pull/11743#discussion_r29424578', '10', null, null, 'petebacondarwin', '2015-05-01T11:28:58Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('858', '37', '11786', 'fix($rootScope): stop memory leak in IE9', 'DO NOT MERGE\r\nThis is a work in progress for discussion - it is not ideal is lacking tests.\r\n\r\nCloses #10706', '6', null, null, 'petebacondarwin', '2015-05-01T13:49:10Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('859', '37', '11787', 'fix(filterFilter): allow array like objects to be filtered', 'Throw error if filter is not used with an array like object.\r\n\r\nPrevious PR #10352 restricted filterFilter to use only arrays, but it can perfectly work with array like objects.\r\n\r\nCloses #11782', '20', null, null, 'gonzaloruizdevilla', '2015-05-01T15:58:33Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('860', '37', '11789', 'docs(protractor-conf): fix syntax error', 'Fix comma in line 12 as there is only one key in config.capabilities object.', '1', null, null, 'fahd', '2015-05-01T22:50:22Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('861', '37', '11790', 'chore(sanitize): new implementation of the html sanitized parser', 'This implementation is based on inert document\n\n<!-- Reviewable:start -->\n[<img src=\"https://reviewable.io/review_button.png\" height=40 alt=\"Review on Reviewable\"/>](https://reviewable.io/reviews/angular/angular.js/11790)\n<!-- Reviewable:end -->\n', '22', null, null, 'mhevery', '2015-05-01T23:13:31Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('862', '37', '11793', 'PROOF OF CONCEPT #11775 (show module name for conflicting directives), DO NOT MERGE', '', '3', null, null, 'kentcdodds', '2015-05-02T19:55:25Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('863', '37', '11794', 'chore(jscs): active disallowMultipleLineBreaks rule', '', '6', null, null, 'SebastianM', '2015-05-03T09:35:37Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('864', '37', '11795', 'fix(ngOptions): fix frozen ui in ie with more than one select[multiple]', 'If there are more than one select, and the first select is wrappend\r\nin an element with display: inline or display: inline-block, all but\r\nthe last select are completely unresponsive to any user input.\r\n\r\nThis cannot be tested in a unit-test, as the events must come directly\r\nfrom the ui.\r\n\r\nClose #11314 \r\n\r\nThis is pretty tricky, as we probably need an e2e test for this, but they currently don\'t run on IE. I\'m also not sure if we can simply leave the label setting out.\r\n\r\n@petebacondarwin should we wait with this until we have IE e2e tests?', '4', null, null, 'Narretz', '2015-05-03T14:05:05Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('865', '37', '11796', 'fix($compile): workaround for IE11 MutationObserver', 'IE11 MutationObserver breaks consecutive text nodes into several text nodes.\r\nThis patch merges consecutive text nodes into a single node before\r\nlooking for interpolations.\r\n\r\nCloses #11781', '15', null, null, 'lgalfaso', '2015-05-03T19:28:24Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('866', '37', '118', 'Scenario runner sandbox', 'Disallow running the Scenario Runner from a file:// URL and provide better error messages about it. Also provide error messages about navigating to about:blank which doesn\'t work either.', '3', null, null, 'esprehn', '2010-11-02T01:05:41Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('867', '37', '1180', 'Capitalize \"URL\".', '', '1', null, null, 'brettcannon', '2012-07-19T17:51:32Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('868', '37', '11800', 'fix(core): ensure that multiple requests to requestAnimationFrame are buffered', 'IE11 (and maybe some other browsers) do not optimize multiple calls to\r\nrAF. This code makes that happen internally within the $$rAF service\r\nbefore the next frame kicks in.\r\n\r\nCloses #11791', '9', null, null, 'matsko', '2015-05-04T17:59:30Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('869', '37', '11802', 'Clarified which module to include for ngAria', '', '4', null, null, 'ajbogh', '2015-05-04T22:41:10Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('870', '37', '11803', 'fix(ngAnimate): ensure animations are not attempted on text nodes', 'With the large refactor in 1.4.0-rc.0, the detection code failed to\r\nfilter out text nodes from animating. This fix ensures that now properly\r\nhappens.\r\n\r\nCloses #11703', '2', null, null, 'matsko', '2015-05-04T23:20:48Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('871', '37', '11804', 'fix(ngAnimate): ensure that the temporary CSS classes are applied before detection', 'Prior to 1.4 the `ng-animate` CSS class was applied before the CSS\r\ngetComputedStyle detection was issued. This was lost in the 1.4\r\nrefactor, however, this patch restores the functionality.\r\n\r\nCloses #11769', '0', null, null, 'matsko', '2015-05-05T00:00:20Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('872', '37', '11805', 'fix($animateCss): ensure that detection cache is flushed after animation is closed', 'Closes #11723', '5', null, null, 'matsko', '2015-05-05T01:13:07Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('873', '37', '11807', 'Enforce a best practice on the `ng-animate` CSS class', 'Since ngAnimate uses the `ng-animate` CSS class internally to track\r\nstate it is better to keep this as a reserved CSS class to avoid\r\naccidentally adding / removing the CSS class when an animation is\r\nstarted and closed.\r\n\r\nBREAKING CHANGE: partially or fully using a regex value containing\r\n`ng-animate` as a token is not allowed anymore. Doing so will trigger a\r\nminErr exception to be thrown.\r\n\r\nSo don\'t do this:\r\n\r\n```js\r\n// only animate elements that contain the `ng-animate` CSS class\r\n$animateProvider.classNameFilter(/ng-animate/);\r\n\r\n// or partially contain it\r\n$animateProvider.classNameFilter(/some-class ng-animate another-class/);\r\n\r\n// but this is OK\r\n$animateProvider.classNameFilter(/ng-animate-special/);\r\n```\r\n\r\nCloses #11431', '1', null, null, 'matsko', '2015-05-05T05:00:30Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('874', '37', '11809', 'feat(q): Resolve any promise of array/hash input (q.any)', 'Issue reference: https://github.com/angular/angular.js/issues/11808\r\n\r\n$q is a service inspired by Kris Kowal\'s Q.\r\n\r\nIt\'s usual in frontend applications to make requests to some APIs and based on (at least) a response continue processing the business logic.\r\n\r\nFor example: An e-commerce almost always needs to receive coupons, vouchers and/or freight discounts. A good architecture will separate responsabilities into distinct micro-services. However, the \"perfect\" ui could be a single input text. So, we\'d use a single input to dispatch 3 requests (3 end-points: coupon, voucher and freight discount) and based on any answer apply the user discount. Hence, we need the ability to manage all requests into a single promise.\r\n\r\nThe Kris Kowal\'s Q has the method \"any\" and I think It\'s very helpful. ', '5', null, null, 'candreoliveira', '2015-05-05T05:47:23Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('875', '37', '1181', 'fix(docs): added note about needing JSON shim for IE7 and earlier', 'Addresses issues: #922 #997 #1116', '4', null, null, 'btford', '2012-07-19T17:52:47Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('876', '37', '11814', 'fix(ngClass): add/remove classes which are properties of Object.prototype', '- fast paths for various internal functions when createMap() is used\n- Make createMap() safe for internal functions like copy/equals/forEach\n- Use createMap() in more places to avoid needing hasOwnProperty()\n\nCloses #11813', '9', null, null, 'caitp', '2015-05-05T23:01:17Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('877', '37', '11816', 'Create passerotta', 'prova', '1', null, null, 'patatinabollente', '2015-05-06T08:11:09Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('878', '37', '1182', '\"were\" -> \"where\"', 'Want people to keep going, not suggest that if the whim to strike them and they were to move forward. =)', '1', null, null, 'brettcannon', '2012-07-19T18:20:01Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('879', '37', '11822', 'feat(ngAnimate): generate shared anchor classes between anchor elements as well', 'Prior to this fix when anchored CSS animations were put to use, only the\r\nshared CSS classes between **container** elements were suffixed and\r\napplied to the anchor element. This patch now ensures that in addition\r\nto the container classes, the shared classes between the starting anchor\r\nelement and the destination anchor element are prefixed and applied as\r\nwell.', '2', null, null, 'matsko', '2015-05-06T18:21:10Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('880', '37', '11825', 'Changes and fixes to CSS Anchored Animations', '', '9', null, null, 'matsko', '2015-05-06T23:32:56Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('881', '37', '11826', 'fix($animate): silently ignore the options param if an object is not passed in', 'Earlier versions of Angular expected a function to be passed into the\r\nsame param as the options value. This causes a nasty issue since the\r\ninternal animation code expects the options value to be an object\r\ninstead of a function. This patch adds the code to convert a function\r\nvalue into an empty object when that occurs.\r\n\r\nCloses #11713', '7', null, null, 'matsko', '2015-05-07T00:09:44Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('882', '37', '11829', 'feat($compile): show module name during multidir error', 'Show module name if possible when multidir error happens.\r\n\r\nCloses #11775\r\n\r\nP.S. Hey guys, please check out this solution. Let me know if the way I implemented it looks correct at least from afar.\r\nHonestly, I\'ve spent a lot of time trying to understand the way, that affects core functionality as less as possible and I think that\'s it. But if you see some another solution, I will be glad to hear that. \r\nIn case you think that these changes are critical and this feature doesn\'t worth it, I\'m ready to this as well :).', '10', null, null, 'lugovsky', '2015-05-07T12:23:31Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('883', '37', '1183', 'Capitalize Angular.', '', '1', null, null, 'brettcannon', '2012-07-19T18:22:54Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('884', '37', '11832', 'Corrected formatting errors in src/angular.js', 'Corrected formatting errors on lines 258, 695, 696, 1096, 1219, 1451, and 1536 by adding periods at the end of single line comments that were missing them in order to be consistent with file.\r\n\r\nCapitalized the first letter in the first word of the comments on lines 695, 696, and 1096, to be consistent with the formatting of the rest of the file.\r\n\r\nAdded a space after the // in the comment on line 1536 to be consistent with file.', '3', null, null, 'gberg1', '2015-05-07T17:04:50Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('885', '37', '11833', 'docs(ngAnimate): Change event to ng-enter', 'The event needs to map to the css class, or else the css class won\'t fire\n\n<!-- Reviewable:start -->\n[<img src=\"https://reviewable.io/review_button.png\" height=40 alt=\"Review on Reviewable\"/>](https://reviewable.io/reviews/angular/angular.js/11833)\n<!-- Reviewable:end -->\n', '10', null, null, 'stovenator', '2015-05-07T21:25:18Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('886', '37', '11834', 'chore(injector): avoid invoking noop', '', '6', null, null, 'flhs', '2015-05-07T22:08:37Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('887', '37', '11839', 'ngTransclude content by default', 'Existing content of the element that this directive is placed on will be removed **only** if transcluded content exists. In other case the content will be saved and used as content by default.\r\n\r\nIt will be useful if you need to use default content in directive\'s template and replace it **only** in some directive instances.\r\n\r\n### Example:\r\n\r\n##### Directive template:\r\n```html\r\n<button>\r\n <span ng-transclude>\r\n <i class=\"fa fa-paperclip\"></i>Add to dashboard\r\n </span>\r\n </button>\r\n```\r\n\r\n##### Directive instance with modified content:\r\n```html\r\n<!-- modified button content -->\r\n<pin-chart-button>\r\n <i class=\"fa fa-thumb-tack\"></i>\r\n</pin-chart-button>\r\n```\r\n\r\n##### Which would generate:\r\n```html\r\n<button>\r\n <span>\r\n <i class=\"fa fa-thumb-tack\"></i>\r\n </span>\r\n </button>\r\n```\r\n\r\n##### Directive instance without modified content:\r\n```html\r\n<!-- default button content -->\r\n<pin-chart-button></pin-chart-button>\r\n```\r\n\r\n##### Which would generate:\r\n```html\r\n<button>\r\n <span>\r\n <i class=\"fa fa-paperclip\"></i>Add to dashboard\r\n </span>\r\n </button>\r\n```', '13', null, null, 'dmaslov', '2015-05-08T11:54:49Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('888', '37', '11840', 'Revert ng style regression for 1.3.x', 'I know, 1.4 is around the corner, but this should be handled nevertheless.', '0', null, null, 'Narretz', '2015-05-08T16:56:13Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('889', '37', '11841', 'docs(tutorial/3 - Filtering Repeaters): Missing a variable declaration', 'Need this variable to make the unit test work', '5', null, null, 'tdyck12345', '2015-05-08T20:02:48Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('890', '37', '11842', 'docs(material): rebase materialize branch over 0681a5400e', null, '12', null, null, 'caitp', '2015-05-09T15:35:04Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('891', '37', '11843', 'docs(guide/Modules): simple grammar fix', 'the module consist of… --> the module consists of…', '3', null, null, 'dguzzo', '2015-05-09T20:08:06Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('892', '37', '11845', 'adds angulario resources', 'This adds all of the resources from https://github.com/angular/angular.io/tree/master/public/resources, minus the bio pics, to get a snapshot of the angular.io site\'s styles. I\'m not sure if this is everything, but should be enough to get started.', '0', null, null, 'jesselpalmer', '2015-05-10T03:38:01Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('893', '37', '11846', 'Fix bug in JSON vulnerability regex', 'The old regex fails on Windows or Mac carriage returns/linefeeds.', '8', null, null, 'damoncasale', '2015-05-10T07:31:19Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('894', '37', '11849', 'docs(migration): general improvements', '', '9', null, null, 'Narretz', '2015-05-11T17:39:54Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('895', '37', '1185', 'Fix a spelling mistake by replacing the noun with \"it\"', '', '1', null, null, 'brettcannon', '2012-07-19T20:00:21Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('896', '37', '11851', 'fix(ngAnimate): ensure anchored animations remove the leave element at the correct time', 'Due to a mismatch of where the `options.domOperation` value was stored,\r\nthe element involved in the `leave` animation for an anchored animation\r\nsession was not removed as soon as the leave animation ended. This\r\nresulted in a pending element persisting within the DOM until all\r\nanimations involved in the associated anchor animation were complete.\r\nThis patch fixes this issue.\r\n\r\nCloses #11850', '4', null, null, 'matsko', '2015-05-11T19:09:36Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('897', '37', '11852', 'fix($animateCss): ensure that custom durations do not confuse the gcs cache', 'Closes #11723', '9', null, null, 'matsko', '2015-05-11T20:32:11Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('898', '37', '11853', 'fix(ngAnimate): class-based animations must set the addClass/removeClass class on the element', 'With the abstraction system that ngAnimate uses, $animateCss internally\r\nsets the provided `event` as a CSS class on the element. In this\r\nsituation the `addClass` and `removeClass` events on the element as a\r\nCSS class. This should not happen with class-based animations and this\r\nfeature is unnecessary and has now been removed.\r\n\r\nCloses #11810', '7', null, null, 'matsko', '2015-05-11T20:38:50Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('899', '37', '11854', 'fix(ngAnimate): throw an error if a callback is passed to animate met…', '…hods\r\n\r\nAs of bf0f5502b1bbfddc5cdd2f138efd9188b8c652a9 (released in 1.3.0) it is no longer\r\nvalid to pass a callback to the following functions: `enter`, `move`, `leave`, `addClass`,\r\n`removeClass`, `setClass` and `animate`.\r\n\r\nTo prevent confusing error messages, this change asserts that this parameter is\r\nnot a function.\r\n\r\nCloses #11826\r\nCloses #11713', '7', null, null, 'petebacondarwin', '2015-05-11T21:10:15Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('900', '37', '1186', 'Fix the usage documentation of linky', 'Addresses issue #1067', '2', null, null, 'btford', '2012-07-19T20:54:47Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('901', '37', '11860', 'Providing an example of customizing actions on $resource factory.', '', '6', null, null, 'yilinglu', '2015-05-12T17:19:06Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('902', '37', '11865', 'fix(ngAria): Ensure aria-hidden attribute is always \"true\" or \"false\"', 'Currently when using ngAria with ng-hide directive when value passed\r\nto ng-hide is not boolean aria-hidden attribute is set to an invalid value.\r\nThis fix ensures aria-hidden attribute is always either \"true\" or \"false\".\r\n\r\nFixes #11365 as well.', '0', null, null, 'mmiszy', '2015-05-13T14:26:31Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('903', '37', '11868', 'fix($templateRequest): Set `Accept` header on template requests', 'Set the `Accept` header on HTTP requests for templates to `text/html, text/ng-template`.\r\nPreviously the default request headers sent by `$http` were used.\r\n\r\nCloses #6860\n\n<!-- Reviewable:start -->\n[<img src=\"https://reviewable.io/review_button.png\" height=40 alt=\"Review on Reviewable\"/>](https://reviewable.io/reviews/angular/angular.js/11868)\n<!-- Reviewable:end -->\n', '3', null, null, 'luckycadow', '2015-05-13T23:07:16Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('904', '37', '1187', 'Naive implementation for better error messages from $interpolate', 'This is not yet complete, but I\'m recording this so I don\'t lose my train of thought and get some feedback. It would be nice to know specifically what part of the interpolation failed. For instance, have the massage distinguish between `foo()` and `bar` throwing exceptions with input like: `{{foo()}} and {{bar()}}`. I also still need to add a test for this.\n\nAddresses issue #832.', '7', null, null, 'btford', '2012-07-19T21:11:22Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('905', '37', '11870', 'docs(guide/Using $location), docs(guide/i18n and l10n): Format and grammar fixes.', 'Minor format and grammar fixes.', '0', null, null, 'dguzzo', '2015-05-14T06:53:48Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('906', '37', '11871', 'docs(ngModelOptions): make object notation style consistent', 'There is a space before and after `{` and `}` for most of the objects throughout the docs.', '0', null, null, 'stevemao', '2015-05-14T07:22:55Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('907', '37', '11873', 'fix(select): prevent unknown option being added to select when bound …', '…to null property\r\n\r\nIf a select directive was bound, using ng-model, to a property with a value of null this would\r\nresult in an unknown option being added to the select element with the value \"? object:null ?\".\r\nThis change prevents a null value from adding an unknown option meaning that the extra option is\r\nnot added as a child of the select element\r\n\r\nCloses #11872', '1', null, null, 'divercraig', '2015-05-14T14:45:20Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('908', '37', '11874', 'fix(select): prevent unknown option being added to select when bound …', '…to null property\r\n\r\nIf a select directive was bound, using ng-model, to a property with a value of null this would\r\nresult in an unknown option being added to the select element with the value \"? object:null ?\".\r\nThis change prevents a null value from adding an unknown option meaning that the extra option is\r\nnot added as a child of the select element\r\n\r\nCloses #11872', '0', null, null, 'divercraig', '2015-05-14T15:12:09Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('909', '37', '11875', 'fix(select): prevent unknown option being added to select when bound …', '…to null property\r\n\r\nIf a select directive was bound, using ng-model, to a property with a value of null this would\r\nresult in an unknown option being added to the select element with the value \"? object:null ?\".\r\nThis change prevents a null value from adding an unknown option meaning that the extra option is\r\nnot added as a child of the select element\r\n\r\nCloses #11872', '12', null, null, 'divercraig', '2015-05-14T16:14:42Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('910', '37', '11876', 'docs($httpBackend): correct typo', 'docs($httpBackend): correct typo\r\n\r\nCorrect \"send\" to \"sent\".', '0', null, null, 'shoja', '2015-05-14T18:56:21Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('911', '37', '11878', 'docs(angular.element): describe your change...', 'Adding mention of jqLite support of jQuery FX animation engine - this is mentioned in the jqLite page (https://code.google.com/p/jqlite/wiki/UsingJQLite), but not mentioned in Angular documentation which is confusing', '6', null, null, 'wmyers', '2015-05-15T07:46:12Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('912', '37', '1188', 'Fixes issue #1124 & #1059', '', '1', null, null, 'cristatus', '2012-07-20T08:35:01Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('913', '37', '11880', 'fix(ngAnimate): ensure that \"element\" contains html node', 'Ensure that \"element\" jqlite wrapper contains html node.', '1', null, null, 'kwypchlo', '2015-05-15T12:19:53Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('914', '37', '11881', 'fix(ngAnimate): ensure that \"element\" caintains html node', 'Ensure that \"element\" jqlite wrapper contains html node. It results in an error if it is defined but empty.', '4', null, null, 'kwypchlo', '2015-05-15T12:48:15Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('915', '37', '11888', 'docs(guide/Controllers): I think that it is better to say that a controller is defined using a JavaScript constructor function as we define a class through a constructor.', '\r\n\r\nA controller is a instantiated object created out of the constructor function. So, I feel we should not call a Controller a constructor function.\n\n<!-- Reviewable:start -->\n[<img src=\"https://reviewable.io/review_button.png\" height=40 alt=\"Review on Reviewable\"/>](https://reviewable.io/reviews/angular/angular.js/11888)\n<!-- Reviewable:end -->\n', '8', null, null, 'niteshthakur', '2015-05-17T17:56:03Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('916', '37', '11891', 'feat(ngMessagesConfig): global configuration of the default value for ngMessages\' multiple', '#11797 ', '4', null, null, 'lili21', '2015-05-18T03:16:49Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('917', '37', '11894', 'fix($animate): accept unwrapped DOM elements as inputs for enter + move', 'Prior to this fix the $animate.enter() and $animate.move() events caused\r\nan error when a parent or after element was provided that was not\r\nalready wrapped as a jqLite element. This patch ensures that both\r\nwrapped and unwrapped DOM nodes are allowed.\r\n\r\nCloses #11848', '3', null, null, 'matsko', '2015-05-18T17:47:42Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('918', '37', '11895', 'fix(ngAnimate): ensure that repeated structural calls during pre-digest function', 'Prior to this fix if `$animate.enter()` or `$animate.leave()` was called\r\nbefore a digest was issued then the element may not be cancelled early\r\nenough. This fix ensures that the previous structural animation is\r\ncancelled immediately when a follow-up animation is kicked off.\r\n\r\nCloses #11867', '3', null, null, 'matsko', '2015-05-18T18:57:24Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('919', '37', '11897', 'docs($cookiesProvider): Escaping of HTML', 'Escape the \"base\" HTML element so it will be displayed in the online documentation.', '0', null, null, 'twogood', '2015-05-18T19:50:55Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('920', '37', '11899', 'fix(ngAnimate): ensure that cancelled class-based animations are properly cleaned up', 'Prior to this fix if the same CSS class was added and removed quickly\r\nthen the element being animated would be left with a stale cache of the\r\ncancelled out animation. This would then result in follow-up animations\r\nbeing added to the previous animation which would then never run. A\r\nstale cache was to blame for that. This patch takes care of this issue.\r\n\r\nCloses #11652', '3', null, null, 'matsko', '2015-05-18T22:10:49Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('921', '37', '1190', '\"in depth\" -> \"in-depth\"', '', '1', null, null, 'brettcannon', '2012-07-20T13:10:37Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('922', '37', '11905', 'refactor(ngCsp): Make use of document.head', 'document.head is available since IE9 (https://developer.mozilla.org/en-US/docs/Web/API/Document/head)\r\n\r\nSaves us a bit of DOM querying during startup and a couple of bytes.\n\n<!-- Reviewable:start -->\n[<img src=\"https://reviewable.io/review_button.png\" height=40 alt=\"Review on Reviewable\"/>](https://reviewable.io/reviews/angular/angular.js/11905)\n<!-- Reviewable:end -->\n', '1', null, null, 'realityking', '2015-05-19T18:05:11Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('923', '37', '11907', 'fix(ngAnimate): ensure nested class-based animations are spaced out with a RAF', 'Prior to this fix any nested class-based animations (animations that are\r\ntriggered with addClass/removeClass or ngClass) would cancel each other\r\nout when nested in DOM structure. This fix ensures that the nested\r\nanimations are spaced out with sequenced RAFs so that parent CSS classes\r\nare applied prior to any ancestor animations that are scheduled to run.\r\n\r\nCloses #11812', '7', null, null, 'matsko', '2015-05-20T00:18:00Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('924', '37', '11908', 'docs(guide/Directives): correct the sentence describing compiling a HTML', '>The reason we use the term \"compile\" is that the recursive process of attaching <directives>\r\n>mirrors the process of compiling source code in [compiled programming languages]\r\n\r\nsubstitute \"directives\" with \"event listeners\" in the above sentence.', '4', null, null, 'cockroachzl', '2015-05-20T03:13:01Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('925', '37', '11910', 'docs($resourceProvider): provide info and example for configuring $re…', '…sourceProvider\n\n<!-- Reviewable:start -->\n[<img src=\"https://reviewable.io/review_button.png\" height=40 alt=\"Review on Reviewable\"/>](https://reviewable.io/reviews/angular/angular.js/11910)\n<!-- Reviewable:end -->\n', '7', null, null, 'yilinglu', '2015-05-20T09:42:44Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('926', '37', '11915', 'docs(guide/Filters): describe your change...', 'I had a really hard time understanding that if I use a custom filter from a controller or service, I needed to add the string \"Filter\" to the name of the filter when listing it as a dependency of my controller or service. I hope, by adding this example of the custom filter, \"name\", it becomes apparent. \r\n\r\nIt\'s weird that a developer could refer to the custom filter by it\'s name in a view, like `<div ng-repeat=\"user in array | name:\'a\'\">{{user.name}}</div>` but they have to refer to it by \"nameFilter\" from a controller or service instead of just \"name\".\r\n\r\nIn this example, the error message from angular is really unhelpful when the controller fails to refer to the \"name\" filter by the string \"nameFilter\". The error is, \"Error: [$injector:unpr] Unknown provider: nameProvider <- name <- FilterController\".', '6', null, null, 'swick7', '2015-05-20T15:30:38Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('927', '37', '11916', 'chore(test): update protractor to 2.1', '', '4', null, null, 'juliemr', '2015-05-20T20:11:51Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('928', '37', '11919', 'docs(input[datetime-local]): change type of ngModel in docs', 'In the docs for `input[datetime-local]` it says in the text that model should always be a `Date` object but under Usage and Arguments it says `string`. This fixes so both says `Date`.\r\n\r\nDocs here: https://docs.angularjs.org/api/ng/input/input%5Bdatetime-local%5D\r\n\r\n', '5', null, null, 'mikaelharsjo', '2015-05-21T09:36:38Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('929', '37', '11920', 'docs(input[datetime-local]): change type of ngModel in docs', 'In the docs for `input[datetime-local]` it says in the text that model should always be a `Date` object but under Usage and Arguments it says `string`. This fixes so both says `Date`.\r\n\r\nDocs here: https://docs.angularjs.org/api/ng/input/input%5Bdatetime-local%5D', '6', null, null, 'mikaelharsjo', '2015-05-21T13:03:42Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('930', '37', '11923', 'docs(ngModel): ng-model scope inheritance update', 'ng-model will look to its current scope, then look to all its parent scopes before it implicitly creates a property on the current scope. The current docs don\'t talk about the parent lookup. http://jsfiddle.net/tylermcginnis/ma9a20kq/', '3', null, null, 'tylermcginnis', '2015-05-21T18:43:39Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('931', '37', '11925', 'Corrected date format for Portuguese (both locales)', 'Short date formats in Portuguese (both in Portugal and Brazil) are expressed as dd/MM/yyyy (http://en.wikipedia.org/wiki/Date_format_by_country). I\'ve updated the symbols to reflect that.\n\n<!-- Reviewable:start -->\n[<img src=\"https://reviewable.io/review_button.png\" height=40 alt=\"Review on Reviewable\"/>](https://reviewable.io/reviews/angular/angular.js/11925)\n<!-- Reviewable:end -->\n', '5', null, null, 'rafasoares', '2015-05-21T19:48:17Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('932', '37', '11927', 'fix(ngAnimate): ensure invalid merged animations are cleared from the element', '@matsko can you just check that this fix makes sense?', '2', null, null, 'petebacondarwin', '2015-05-22T12:53:32Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('933', '37', '11928', 'docs(ngPattern): add note about using the `g` flag', 'Add a note to point out that using the `g` flag on the validation RegExp, will cause each search to start at the index of the last search\'s match, thus not taking the whole input value into account.\r\n\r\nCloses #11917\r\nCloses #11928', '1', null, null, 'gkalpak', '2015-05-22T14:11:53Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('934', '37', '11933', 'Refine csp checks for `unsafeEval`.', 'This PR refines the csp checks for function compilation because the default policy in WWA (Windows Web Apps) allows `unsafe-eval`. This would give a [~30% boost](https://docs.angularjs.org/api/ng/directive/ngCsp) when evaluating expressions.\n\n<!-- Reviewable:start -->\n[<img src=\"https://reviewable.io/review_button.png\" height=40 alt=\"Review on Reviewable\"/>](https://reviewable.io/reviews/angular/angular.js/11933)\n<!-- Reviewable:end -->\n', '64', null, null, 'jdalton', '2015-05-22T23:37:47Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('935', '37', '11934', 'docs(ngRepeat): document that track by must be the last expression', 'this is a point of confusion that\'s not documented. see #5520', '3', null, null, 'bcherny', '2015-05-22T23:59:28Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('936', '37', '11935', 'fix($location): Infinite digest in $location replace in IE9', '@hamfastgamgee - I think this is the right unit test. Can you take a look. The nice thing is that it even fails on Chrome as well (since we are simulating no-history support) without the fix.', '13', null, null, 'petebacondarwin', '2015-05-23T08:50:16Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('937', '37', '11937', 'docs(ngDisabled): describe your change...', '\"disabled\" should be written as \"ng-disabled\".', '3', null, null, 'Nitish4561', '2015-05-24T14:43:06Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('938', '37', '11938', 'docs(ngDisabled): correct directive.', 'In example of \"ng-disabled\" previously disabled was used in place of \"ng-disabled\" directive.\r\n![untitled](https://cloud.githubusercontent.com/assets/11410696/7789256/07a82b14-0278-11e5-8ded-317ee4ba7b82.png)\r\n', '2', null, null, 'Rohit5890', '2015-05-24T19:11:25Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('939', '37', '11946', 'fix($animate): ignore invalid option parameter values', 'Prior to this fix there was another patch that threw an exception if the\r\nprovided options value was not of an object type. While this is correct\r\nin terms of logic, it caused issues with plugins and tools that are\r\ndesigned to work with multiple version of Angular. This fix ensures that\r\nthese plugins work since an invalid options value is ignored by\r\n`$animate`.\r\n\r\nCloses #11826', '2', null, null, 'matsko', '2015-05-26T20:57:57Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('940', '37', '11947', 'fix(ngAnimate): close follow-up class-based animations when the same class is added/removed when removed/added', 'This patch ensures that if the same CSS class is added/removed within a\r\nfollow-up digest then the previous class-based animation is cancelled\r\nbeforehand.\r\n\r\nCloses #11717', '1', null, null, 'matsko', '2015-05-26T21:05:50Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('941', '37', '11948', 'feat(ngRepeat): add $prev and $next', 'In some cases, i need to get previous element before this `$index` or get next element after this `$index`. Array works well, but Object not. Maybe others need this feature too.', '3', null, null, 'nswbmw', '2015-05-27T06:57:02Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('942', '37', '11952', 'docs: New note in docs for Angular.copy', 'Note about keeping same constructor as source for new copied objects.', '11', null, null, 'luckylooke', '2015-05-27T17:05:30Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('943', '37', '11953', 'feat($animateCss): automatically append \"px\" for positional numeric values', 'Plugins/frameworks like jQuery and GreenSock automatically append a px\r\nvalue when a number value is provided a style value for an animation.\r\nThis patch ensures that the same thing happens on `$animateCss` for\r\nthe `from` and `to` styles. This patch also ensures that common\r\nproperties such as `z-index` and string-based values are not appended\r\nwith a `px` suffix.', '8', null, null, 'matsko', '2015-05-27T17:52:54Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('944', '37', '11955', 'Updates branch with master', '', '1', null, null, 'jesselpalmer', '2015-05-27T20:31:29Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('945', '37', '11956', 'fix(ngAnimate): allow animations on body and root elements', '##### Overview of the Issue:\r\nAnimations on `<body>` and the root element don\'t work.\r\n##### Motivation for or Use Case:\r\nI have a class-based animation on the `<body>` element (though I noticed this would also be an issue for animations on the root element).\r\n##### Angular Version(s):\r\nv1.4.0-rc.2\r\n##### Browsers and Operating System:\r\nChrome Version 45.0.2414.0 canary (64-bit), Mac OS X Yosemite Version 10.10.3 (14D136)\r\n##### Reproduce the Error:\r\nSee [this Plunker](http://plnkr.co/AZEHn1).\r\n##### Related Issues:\r\nThe only open issue related to animate and body or root I found was #10527.\r\n##### Suggest a Fix:\r\nAll that needed to be fixed was initializing `(body|root)ElementDetected` to whether the current element matches the body or root element rather than false; otherwise, the animated element is never checked as being within the body and root element and can therefore never be animated.\r\n\r\nI believe all that needs to be added to this fix is testing if you agree this is a valid and relevant issue as fixed.', '7', null, null, 'OlenDavis', '2015-05-27T23:14:58Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('946', '37', '11957', 'docs(ngAnimate): fix typo', '', '0', null, null, 'RebootJeff', '2015-05-27T23:40:57Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('947', '37', '11958', 'Fixed slightly unusual phrasing in line 13', 'Towards the end of the second paragraph, I changed: \r\n\r\n\"The best of all: it makes development fun!\" \r\n\r\nto \r\n\r\n\"Best of all?? It makes development fun!\" \r\n\r\nI believe this phrasing has more impact in user\'s minds when read. No source code affected.', '0', null, null, 'vokoshyv', '2015-05-28T05:34:51Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('948', '37', '1196', 'fix($route): resolve values support inline injected function syntax', '', '7', null, null, 'pdswan', '2012-07-23T15:37:39Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('949', '37', '11960', 'docs(guide/Directives): Use data-ng-model', 'Use data-ng-model instead of data-ng:model which is accepted for legacy reason.\r\nThe next \"Normalization\" section is saying:\r\n\r\n> Best Practice: Prefer using the dash-delimited format (e.g. ng-bind for\r\n> ngBind). If you want to use an HTML validating tool, you can instead use the\r\n> data-prefixed version (e.g. data-ng-bind for ngBind). The other forms\r\n> shown above are accepted for legacy reasons but we advise you to avoid\r\n> them.', '3', null, null, 'npcode', '2015-05-28T10:11:20Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('950', '37', '11963', 'docs(filter/number): Change description of returned value', 'I think this is not correct because since 1.3.0-RC.0 sonic-boltification this change: https://github.com/angular/angular.js/commit/2ae10f67fcde3e172f695956301ef796b68a50c2 and null and undefined are passing through', '3', null, null, 'calamarico', '2015-05-28T12:33:10Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('951', '37', '11968', 'let ngOptions ignore array values starting with `$$`', '@gkalpak @petebacondarwin \r\nI wanted to get the ball rolling on this, but the solution looks pretty ugly tbh. Also, should we equally ignore elements starting with `$`?\r\n\r\nedit: actually, it\'s not array elements, but specifically ngRepeat that sets the `$$hashKey` property on array which are used for ngOptions. So the fix doesn\'t actually apply.\r\n', '21', null, null, 'Narretz', '2015-05-28T18:40:29Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('952', '37', '11969', 'Ensure aria-hidden is always a \"boolean\" (true/false string)', '@marcysutton can you take a look?', '4', null, null, 'Narretz', '2015-05-28T18:55:16Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('953', '37', '11970', 'docs(guide/Scopes): Capitalisation of word scope.', '', '3', null, null, 'altescape', '2015-05-28T19:49:03Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('954', '37', '11971', 'docs(app): merges master into materialize branch', '', '1', null, null, 'jesselpalmer', '2015-05-28T21:14:18Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('955', '37', '11973', 'fix($http): continue promise chain with HttpPromise', '`.success` and `.error` methods will now continue the promise chain.\r\nReturning a promise in either of these callbacks will be appropriately\r\nhandled by the chain.\r\n\r\nCloses #11972', '1', null, null, 'ajcrites', '2015-05-29T02:45:48Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('956', '37', '11979', 'add a endpoint in Readme.closure.md', 'add a endpoint.', '2', null, null, 'jb7959', '2015-05-29T15:30:02Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('957', '37', '1198', 'Multiple named ngView directives and attaching views to routes', 'Usage and purpose\n=================\n\nRoutes can have a view attached via the `view` property.\nViews can be named like so:\n``` html\n\n <div ng-view=\"subsection\"></div>\n```\n\nThen you could create a route which will update only this view:\n``` js\n $routeProvider.when(\'/somepath\', {\n templateUrl: \'/section-template.html\',\n view: \'subsection\'\n });\n```\n\nWhen the url is changed to \'/somepath\' only views named \'subsection\' would\nbe updated. This should be used for:\n\n - subsections on the page which should respond to some routes,\n other views would not be changed\n\n - modal dialogs with their own url, like Pinterest, Trello etc.\n\nDifferent Cases\n===============\n\n - a view has a name, but the route does not have a view set\n\n * the view is not updated\n * the route is considered to be a main route\n * the view is a secondary view.\n\n - the route has a `view` property, but a view is not named\n\n * the view is not named\n * the route is considered to be secondary\n * the view is (the) main view and would update only for main routes\n\n - the route has a `view` property and the view is named, but\n the name does not match\n\n * the view is not updated\n * the view is secondary\n * the route is secondary - it propably updates another view\n\n - the route has a `view` property and the view is named with the same\n\n * the view is updated regarding the template and the controller\n associated with the route\n * the route and view are secondary, but they are bound together\n\nIf the location is changed to a route which has a view attached, but\nsuch view does not exist then AngularJS will do nothing and no view\nwill be updated.\n\nImplementation\n==============\n\nThe whole thing is happening in the `ngView` directive on\n`$routeChangeSuccess` event. When the `update` function in\n`ngView` is called the view is updated only if the current route\nand the view match.\n\n`$route.last` is set to the previous route when a named view is updated.\nThis could be used from a developer to recover the location to\na previous path corresponding to a main route.\n\nFor example if you have a modal dialog with its own url and a matching route,\nwhen the dialog is closed you would want to recover the url to the location\nof the previous main route.\n\n`$route.interpolate()` is exposed so it could be used in such scenario to\nbuild the path using `$route.last.params`.', '52', null, null, 'hkdobrev', '2012-07-24T14:08:44Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('958', '37', '11981', 'docs(orderBy): improve reverse order example', 'Changed the second example to demonstrate typical sorting behavior (like Finder and Win Explorer) where the first click on a column sorts alpha and the second click on an already sorted column sorts in reverse alpha. Also shows a simple sort indicator automated using ngShow.', '17', null, null, 'rjenks', '2015-05-29T18:51:59Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('959', '37', '11982', 'docs(guide/Expressions): one-time binding of object literals', 'One time binding of object literals are treated differently than simple expressions. Added a link under the Value stabilization algorithm section to Ben Nadel\'s article describing how object literals\'s keys are checked for undefined.', '3', null, null, 'pholly', '2015-05-29T18:59:05Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('960', '37', '11985', 'refactor($compile): remove unused elementTransclusion argument', 'Remove the unused `elementTransclusion` argument from `createBoundTranscludeFn`.\r\nAlso remove the `nodeLinkFn.elementTranscludeOnThisElement` attribute, which\r\nbecomes unnecessary.\r\n\r\nCloses #9962', '0', null, null, 'teropa', '2015-05-30T05:21:54Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('961', '37', '11986', 'V1.2.26 is the last working version compatible with Famo.us/Angular', '\"Error: $animate.enter(...) is undefined\" is encountered when using Famo.us/Angular with \r\nhttps://ajax.googleapis.com/ajax/libs/angularjs/1.4.0/angular*.js and earlier versions up to 1.2.26.\r\n\r\nCould it be readded back as a deprecation for compatibility\'s sake since another API depends on it? @matsko is who i was referred to by @caitp about this issue.', '2', null, null, 'abyss-outpost', '2015-05-30T19:20:25Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('962', '37', '11987', 'feat($q): add resolve function', 'New \"when\" alias \"resolve\" to maintain naming consistency with ES6.\r\n\r\nCloses #11944', '0', null, null, 'RyanDale', '2015-05-30T19:55:03Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('963', '37', '11989', 'fix($parse): default expressions of the form `a.b` to `undefined`', 'When there is an expression of the form `a.b` and there is a recursion that specifies where the value should be placed, then when `a == null` then set the value of the returned identifier to `undefined`\r\n\r\nCloses #11959', '4', null, null, 'lgalfaso', '2015-05-31T20:29:11Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('964', '37', '11993', 'chore(jscs): remove .jscs.json.todo, rename config to .jscsrc', 'Ref https://github.com/angular/angular.js/pull/10772#issuecomment-71631999, https://github.com/angular/angular.js/pull/11794#issuecomment-98835704\r\n\r\n> Also we can probably remove .jscs.json.todo now\r\n\r\n', '0', null, null, 'hzoo', '2015-06-01T12:47:47Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('965', '37', '11994', 'Minor typo in migration doc', '', '3', null, null, 'xavhan', '2015-06-01T12:52:34Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('966', '37', '11996', 'fix(ngOptions): use reference check only when not using trackBy', 'Change the check on changed value for ngOptions to ensure that a reference check is only done\r\nwhen trackBy is not used. Previously, if trackBy was being used but the values of the objects were\r\nequal a reference check was then used which would cause the check to be true if the objects had\r\ndifferent memory references but the values were equal. This can cause issues with forms being\r\nmarked dirty when the value of the model as not actually changed.\r\n\r\nCloses #11936', '4', null, null, 'seaster', '2015-06-01T16:25:53Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('967', '37', '11997', 'fix(ngAnimate): do not assume $document[0] exists', 'Use document.body instead of $document[0].body. Enable mocking of $window\r\nwithout having to add an empty document object into it.\r\n\r\nCloses #11964', '4', null, null, 'tjokimie', '2015-06-01T18:41:36Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('968', '37', '12', 'Reduce resource copies', 'As per commit message.', '2', null, null, 'alkis', '2010-09-17T23:07:58Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('969', '37', '120', 'Issue 119 json regexp', 'Fix the regexp serialization issue and output for scenario runner.', '1', null, null, 'esprehn', '2010-11-03T17:15:00Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('970', '37', '12001', 'Allow interpolation inside ng-message (fix for #11616)', 'https://github.com/angular/angular.js/issues/11616', '7', null, null, 'sravenhorst', '2015-06-01T22:14:07Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('971', '37', '12009', 'docs(ngMessages): fixes logical bug', 'The paragraph below this changes says:\r\n\r\n\"Then the `required` message will be displayed first.\"\r\n\r\n`required` needs to be `true` to match that sentence.', '0', null, null, 'PascalPrecht', '2015-06-02T13:02:09Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('972', '37', '12010', 'fix(ngOptions): do not watch properties starting with $', 'Expressions that compute labels and track by values for ngOptions were\r\nbeing called for properties, that start with $ even though those properties\r\nwere being ignored as options.\r\n\r\nCloses #11930', '4', null, null, 'petebacondarwin', '2015-06-02T13:03:42Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('973', '37', '12012', 'fix:$http:Silently fail when isJsonLike wrongly detects JSON', 'isJsonLike can have false positives. Instead of crashing, the defaultHttpHandler should return the string.\r\n\r\nIt may be a problem for developers trying to load a broken JSON document without using the correct Content-Type. A log message could be added to the try-catch.', '1', null, null, 'yellowiscool', '2015-06-02T14:53:30Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('974', '37', '12014', 'docs(filter): Documented third argument of predicate function', '', '7', null, null, 'ThomasLandauer', '2015-06-02T17:17:43Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('975', '37', '12016', 'docs(ngClass): Put single quotes around classes', 'For the classes in the map notation ({\'strike\': deleted, \'bold\': important, \'red\': error}). I don\'t know why, but on Chrome sometimes it doesn\'t work without those quotes.', '7', null, null, 'qbzzt', '2015-06-03T00:40:19Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('976', '37', '12017', 'docs(ngMessages): fix spelling error', 'Fixes spelling error in ngMessages.', '1', null, null, 'yuriybash', '2015-06-03T03:23:50Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('977', '37', '12018', 'docs(ngMessages) fix spelling error in ngMessages', 'Fixes spelling error in ngMessages.', '1', null, null, 'yuriybash', '2015-06-03T03:32:24Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('978', '37', '12019', 'docs(ngMessages): fix spelling error', 'Fixes spelling error in ngMessages.', '2', null, null, 'yuriybash', '2015-06-03T03:40:20Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('979', '37', '12027', 'docs(ngClass): add class \'has-error\' to demonstrate hyphen use', 'Sorry, I don\'t know how to put it in the original pull request. I\'m new to GitHub. But here it is, with just one additional class, red-error, which is the only one with quotes.\r\n\r\n Thanks, \r\n Ori\r\n', '11', null, null, 'qbzzt', '2015-06-04T15:36:09Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('980', '37', '12028', 'docs($http): Recommend unique XSRF cookie names for shared domains', 'Adding a recommendation as a followup to https://github.com/angular/angular.js/issues/11999', '3', null, null, 'mkowalchuk', '2015-06-04T17:57:43Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('981', '37', '1203', 'Fix for #1165 and #1200 ( allow options tag outside of a select tag ).', 'Currently option tag is only supported inside of a select element.\nAngular throws an error with \"require select\" when an option is used\noutside of a select tag. Option can also be used inside of a dataset tag\nas stated in #1200.', '1', null, null, 'ganarajpr', '2012-07-26T13:02:37Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('982', '37', '12032', 'docs(CONTRIBUTING): revert should be a valid type', 'EG: https://github.com/angular/angular.js/commit/462f444b06ae5cad3ccb761b1dba7131df01a655\n\n<!-- Reviewable:start -->\n[<img src=\"https://reviewable.io/review_button.png\" height=40 alt=\"Review on Reviewable\"/>](https://reviewable.io/reviews/angular/angular.js/12032)\n<!-- Reviewable:end -->\n', '21', null, null, 'stevemao', '2015-06-05T03:31:07Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('983', '37', '12035', 'Decreases indentation to fix markdown', 'Two bullet points were indented causing the entire lines to be formatted as code by markdown. Decreased indentation level by one, as it seems this was not the intention.', '3', null, null, 'josherick', '2015-06-05T20:02:06Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('984', '37', '12036', 'fix(compile): assign controller return value to correct controller', 'Fixes #12029', '6', null, null, 'Narretz', '2015-06-05T20:48:17Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('985', '37', '12038', 'The end of the page needs a \"next page\".', 'All the other pages have a \"continue to next page\" link at the bottom of the page. Keeps a nice reading flow.', '3', null, null, 'willfong', '2015-06-06T02:51:19Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('986', '37', '12040', 'docs(tutorial/Tutorial): mention package.json file', 'If reader does not cd into angular-phonecat subdirectory - npm install will not work. This comment helps newbies understand npm install is dependent on a custom project.json file.', '6', null, null, 'dlink', '2015-06-06T17:28:42Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('987', '37', '12041', 'perf($compile): only use document fragments when necessary', 'This mainly just explains the TODO(perf). I\'m sure the actual impact is negligible, but will avoid creating fragments in the majority of cases (where only one node is being replaced).\r\n\r\n(this is a subset of #9365 that can be done on it\'s own)', '5', null, null, 'jbedard', '2015-06-06T19:06:15Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('988', '37', '12042', 'perf($compile): avoid jquery data calls when there is no data', 'This avoids copying jq data for the majority of cases where there is no data. Previously when there was no data `.data()` was called which would create an empty data object ([using `defineProperties` on the node](https://github.com/jquery/jquery/blob/2.1-stable/src/data/Data.js#L36-51) which is pretty slow, just to be cleaned right after).\r\n\r\n(this is a subset of #9365 that can be done on it\'s own)', '1', null, null, 'jbedard', '2015-06-06T20:00:43Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('989', '37', '12043', 'perf($compile): use static jquery data method to avoid creating new instances', 'Really minor, but the static `jqLite.data` does the same thing when there is only one node...', '7', null, null, 'jbedard', '2015-06-06T20:12:57Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('990', '37', '12044', 'fix(angularCopy): out putValue function from copy', 'Out putValue function from copy', '3', null, null, 'behzad888', '2015-06-07T10:27:17Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('991', '37', '12046', 'docs(orderBy): correctly is not the right word', 'The use of correctly implies that Angular is doing something incorrect, however it is that we expect a number passed as a string to be sorted as a number. Angular does not do what we are expecting, although it responds correctly to what we have actually asked - sorting based on the string representation of a number.', '3', null, null, 'dwanderton', '2015-06-07T23:15:58Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('992', '37', '12049', 'Update README.md', 'Minor modifications to the readme.md for clear understanding', '6', null, null, 'hardikvasa', '2015-06-08T03:22:21Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('993', '37', '1205', 'event.preventDefault() for links in Opera', 'I began to test my angular application in recent Opera (12.00, OS X) and found that clicking the links without href attribute does not always prevented, so it messes up navigation. Adding the \"return false\" fixes the issue to me.', '5', null, null, 'sgtpep', '2012-07-26T21:27:40Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('994', '37', '12050', 'fix(angularCopy): out putValue function from copy ', '', '2', null, null, 'behzad888', '2015-06-08T05:29:58Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('995', '37', '12052', 'docs(guide/Migrating from Previous Versions): Add an issue with HTML …', '…select tag and numeric values', '7', null, null, 'iwhp', '2015-06-08T17:02:30Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('996', '37', '12054', 'perf(copy): avoid regex in isTypedArray', 'Simplifying and avoiding the regex makes all the copy scenarios I tried 5-15% faster...', '3', null, null, 'jbedard', '2015-06-09T09:58:41Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('997', '37', '12061', 'test($compile): fix test', 'The fixed test is supposed to test a fix for an IE11 bug/peculiarity that arises when using a specifically configured MutationObserver on the page (see #11781 for more info).\r\n\r\nThe configuration contained a typo (`sublist` instead of `subtree`), which effectively failed to set up the MutationObserver in a way that would make the IE11 bug appear.', '1', null, null, 'gkalpak', '2015-06-09T13:43:24Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('998', '37', '12064', 'Improve the Docs for http params serialization', '- add links\r\n- expand the paramSerializer property description\r\n- add usage examples for the jqlike param serializer\r\n- note that params get sorted alphabetically', '1', null, null, 'Narretz', '2015-06-09T19:12:28Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('999', '37', '12065', 'perf(copy): use different arrays for different types', 'Use different arrays for different types.\r\nRemove forEach to clean the destination object.', '3', null, null, 'lgalfaso', '2015-06-09T20:37:42Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1000', '37', '12067', 'chore(doc-gen): Removing versionInfo which is now in dgeni-packages', 'Once angular/dgeni-packages#117 is merged, `gitData` will already be included in the `ngdoc` services, and can be removed as a dependency.\n\n<!-- Reviewable:start -->\n[<img src=\"https://reviewable.io/review_button.png\" height=40 alt=\"Review on Reviewable\"/>](https://reviewable.io/reviews/angular/angular.js/12067)\n<!-- Reviewable:end -->\n', '1', null, null, 'eggers', '2015-06-09T23:02:38Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1001', '37', '12068', 'perf(copy): only validate/clear user specified destination', 'This (combined with #12054) makes all the copy situations I tried 30-60% faster (~1.5-3x).\r\n\r\nThis mainly just moves/splits:\r\n* input validation/clearing\r\n* different object type copying\r\n* different object type recursing\r\n\r\nInto 3 separate methods, allowing:\r\n* only the input destination (if specified) is validated\r\n* only the input destination (if specified) has the content cleared\r\n* only the public method has the `if (destination)` confusion\r\n* removing all the checks if the stack vars have been initialized yet', '7', null, null, 'jbedard', '2015-06-10T03:32:14Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1002', '37', '1207', 'Bootstrap errors', 'just adding tests bootstrap', '2', null, null, 'IgorMinar', '2012-07-29T07:38:41Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1003', '37', '12072', 'fix(orderBy): ensure correct ordering with arrays of objects and no predicate', 'This fix also considerably refactors how the `orderBy` filter works in internally.\r\n\r\nThe new algorithm precomputes the predicate values for the array being ordered. This makes the algorith easier to follow but also ensures that this computation is done a maximum of n times, whereas in the previous algorithm it could be greater. The downside is that we must temporarily store this intermediate array.\r\n\r\nThere could be performance implications, but they are as likely to be beneficial as detrimental. It could probably do with benchmarking.\r\n\r\nCloses #11866', '45', null, null, 'petebacondarwin', '2015-06-10T09:22:43Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1004', '37', '12074', 'Modified not to be case sensitive Fixes #12073', '', '8', null, null, 'BiohZn', '2015-06-10T10:42:50Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1005', '37', '12075', 'fix(ngModel): form validation and Object.prototype enumerable values', 'When adding an Object.prototype enumerable property, this should not be confused\r\nas a form error\r\n\r\nCloses #12066', '6', null, null, 'lgalfaso', '2015-06-10T10:46:32Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1006', '37', '12078', 'perf($compile): Lazily compile the `transclude` function', 'For transcluded directives, the transclude function can be lazily compiled\r\nmost of the time since the contents will not be needed until the\r\n`transclude` function was actually invoked. For example, the `transclude`\r\nfunction that is passed to `ng-if` or `ng-switch-when` does not need to be\r\ninvoked until the condition that it\'s bound to has been matched. For\r\ncomplex trees or switch statements, this can represent significant\r\nperformance gains since compilation of branches is deferred, and that\r\ncompilation may never actually happen if it isn\'t needed.\r\n\r\nIn a large application where I work that recently had some very complex `ngSwitch` cases added, this change significantly reduce the time spent in the compilation stage of the $digest cycle and further reduced the used JS heap size from **123MB** to **56.8MB**.\r\n\r\nThere are two instances where compilation will not be lazy; when we scan\r\nahead in the array of directives to be processed and find at least two of\r\nthe following:\r\n\r\n* A directive that is transcluded and does not allow multiple transclusion\r\n* A directive that has templateUrl and replace: true\r\n\r\nIn both of those cases, we will need to continue eager compilation in\r\norder to generate the multiple transclusion exception at the correct time. If anyone has a better idea on how to support this while maintaining backwards compatibility with existing unit tests, I\'m all ears. \r\n\r\nFixes #6072', '29', null, null, 'dcherman', '2015-06-10T18:35:47Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1007', '37', '12079', 'perf(ngSwitch): Define this directive as terminal', 'Since a switch statement ( and therefore `ngSwitch` ) can really be\r\nthought of as simply a combination of if statements, there\'s no reason\r\nthat this directive should differ from `ngIf` in how it compiles the\r\nelement. This should also prevents needless compilation of directives\r\nwhen the ngSwitch condition isn\'t yet matched.', '10', null, null, 'dcherman', '2015-06-10T18:50:36Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1008', '37', '12083', 'fix($location): do not get caught in infinite digest in IE9', 'The problem appears to occur when we have triggered a reload (via replace()) that updates the `reloadLocation` but then before the reload happens we trigger another change to the URL that would not have triggered a reload if we had already reloaded. In this case, the `$browser` is ignoring the `reloadLocation` because it thinks that we will no longer reload.\r\n\r\nSo to be more explicit:\r\n\r\nNavigate to http://my.server.com/Home\r\nBecause we are on IE9 this get rewritten (with replace()) to http://my.server.com/#/Home, which would cause a reload on IE9\r\nThe SuccessChangeHandler kicks in and then changes the $location.path to /, i.e. the URL gets changed to http://my.server.com/#/`.\r\nSince http://my.server.com/#/Home -> http://my.server.com/#/ would not normally trigger a reload we don\'t update the reloadLocation, which gets stuck at http://my.server.com/#/Home\r\nWe get stuck in an infinite digest as the $location keeps trying to update the URL to http://my.server.com/#/ but failing because the reloadLocation is stuck at http://my.server.com/#/Home\r\nThis is why @hamfastgamgee\'s fix appears to work. When we see that we are in an infinite loop and there is a reloadLocation then we force it to change to the proper URL.\r\n\r\nA better solution is simply to realize that we are updating a URL in $browser that is expected to cause a reload by changing the line at https://github.com/angular/angular.js/blob/v1.4.0/src/ng/browser.js#L150:\r\n\r\n if ($sniffer.history && (!sameBase || !sameState)) {\r\n history[replace ? \'replaceState\' : \'pushState\'](state, \'\', url);\r\n cacheState();\r\n // Do the assignment again so that those two variables are referentially identical.\r\n lastHistoryState = cachedState;\r\n } else {\r\n if (!sameBase) {\r\n reloadLocation = url;\r\n }\r\n if (replace) {\r\n location.replace(url);\r\n } else if (!sameBase) {\r\n location.href = url;\r\n } else {\r\n location.hash = getHash(url);\r\n }\r\n }\r\nto\r\n\r\n if ($sniffer.history && (!sameBase || !sameState)) {\r\n history[replace ? \'replaceState\' : \'pushState\'](state, \'\', url);\r\n cacheState();\r\n // Do the assignment again so that those two variables are referentially identical.\r\n lastHistoryState = cachedState;\r\n } else {\r\n if (!sameBase || reloadLocation) {\r\n reloadLocation = url;\r\n }\r\n if (replace) {\r\n location.replace(url);\r\n } else if (!sameBase) {\r\n location.href = url;\r\n } else {\r\n location.hash = getHash(url);\r\n }\r\n }\r\nIn other words we check not only whether the base has changed but also whether we are in the middle of a reload any way.\r\n\r\nCloses #11439\r\nCloses #11935\r\nCloses #11675', '13', null, null, 'petebacondarwin', '2015-06-11T13:33:41Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1009', '37', '12085', 'correct selling for \'JavaScript\'', '', '5', null, null, 'vsopvsop', '2015-06-11T14:27:22Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1010', '37', '12086', 'test($location): ensure mock window can be wrapped by jqLite', 'CC @petebacondarwin', '1', null, null, 'caitp', '2015-06-11T15:57:58Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1011', '37', '1209', 'Allow setting withCredentials as $http default.', 'Closes #1095.', '12', null, null, 'thughes', '2012-07-30T00:56:12Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1012', '37', '12091', 'feat(ngTrim): allow ng-trim to work for elements input[type=radio]', 'Allow elements of type input[type=radio] to specify ng-trim.\r\nDo not trim attributes values by default.\r\n\r\nBREAKING CHANGE:\r\nAttribute values are not trimmed\r\n\r\nMigration: when depending on attribute values to be trimmed, then manually trim them.\r\n\r\n\r\nDISCLAIMER: I am not too fond on not trimming attribute values by default, but put the PR here to start the discussion', '4', null, null, 'lgalfaso', '2015-06-11T22:25:21Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1013', '37', '12094', 'refactor($compile): remove skipDestroyOnNextJQueryCleanData, fix data leak on some replaced nodes', 'This removes the `skipDestroyOnNextJQueryCleanData` global while also fixing an edge case where some elements removed by `replaceWith` did not have child elements cleaned and could leak jq data/handlers. It\'s a bit of an edge case but would be reproduced if jq data ever got onto the child element of a `ng-if` or `ng-repeat` before the transclude `replaceWith` call (or similar situations with `replace:true`). This is captured in the added tests (3 previously failed). Also added a test ensuring the `firstElementToRemove` does not trigger the element $destroy.\r\n\r\n`skipDestroyOnNextJQueryCleanData` is removed by doing `jqLite(firstElementToRemove).off(\'$destroy\')` before doing `cleanData(fragment.qSA(*))`.\r\n\r\nDoing `cleanData(fragment.qSA(*))` avoids `jqLite(elements[1...n]).remove()` for the multi element case while also fixing the bug mentioned above by also fetching child elements. This makes use of the fragment meaning #12041 that avoided creating it would no longer work.\r\n\r\n`JQLite.cleanData` is added so this code doesn\'t need JQLite vs jQuery specific logic.\r\n\r\nFor the single node case this adds the `.qSA(*)` and may add `.off(\'$destroy\')` but all the benchmarks I tried showed no effect. The `replaceWith` is just too small/infrequent when doing compile/link/digest.', '21', null, null, 'jbedard', '2015-06-12T07:24:49Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1014', '37', '12101', 'fix($parse): set null reference properties to `undefined`', 'When there is an expression of the form\r\n* true && a.b.c\r\n* true && a()\r\n* true && a()()\r\n* false || a.b.c\r\n* false || a()\r\n* false || a()()\r\n\r\nwhere `a == null`\r\n\r\nCloses #12099', '1', null, null, 'lgalfaso', '2015-06-12T18:56:18Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1015', '37', '12106', 'fix(jqLite): Firefox validation trigger', 'Do not trigger Firefox validation on form initialization.\r\n- Do not set a value to an <input> field if the field already has the same value\r\n\r\nCloses #12102', '12', null, null, 'lgalfaso', '2015-06-13T13:49:35Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1016', '37', '1211', 'Added URL Suffixes to Resources', 'When using AngularJS with a server-side framework that requires a URL suffix like .json then angular will keep the suffix for all resource variants. So when you have a POST or index request then you end up having URLs that look like \"/resource/.json\".\n\nHere\'s the issue in detail:\nhttp://stackoverflow.com/questions/11622665/format-all-model-service-urls-to-include-json-in-angular-js\n\nI\'ve added the code into the repo to fix this. By setting a _suffix variable in the params{} hash when creating a resource then the suffix can be added properly.', '3', null, null, 'matsko', '2012-07-30T18:53:36Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1017', '37', '12110', 'um, it is suppose to have that user in the callback right?', '', '6', null, null, 'ycmjason', '2015-06-14T20:26:42Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1018', '37', '12111', 'chore(npm): Add the license to package.json', 'This removes a warning when executing npm install', '1', null, null, 'realityking', '2015-06-14T22:19:38Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1019', '37', '12112', 'feat(http): Add \'useLegacyMethods\' to $httpProvider', 'For now it defaults to true. This will open up a path to remove the short hand methods in the long run.', '14', null, null, 'realityking', '2015-06-14T22:49:13Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1020', '37', '12113', 'Check for for strict equality.', '', '4', null, null, 'mitogh', '2015-06-14T23:36:33Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1021', '37', '12114', 'refactor(animate): add the new operator to injected $q', 'When replacing $q with Bluebird, it complains `this is undefined`. Missing the new keyword', '9', null, null, 'pocesar', '2015-06-15T00:55:20Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1022', '37', '12122', 'fix(forms): parse exponential notation in numberInputType parser', 'Closes #12121', '7', null, null, 'caitp', '2015-06-15T12:28:52Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1023', '37', '12123', 'docs(ngAnimate) - Correct `keyframe` to `keyframeStyle`', 'Documentation for $animateCss says there is a `keyframe` property when in fact it is `keyframeStyle`', '7', null, null, 'intellix', '2015-06-15T14:44:27Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1024', '37', '12129', 'docs(guide/Unit Testing): update $filter test example', 'The $filter example never declares `$filter` and therefore would add `$filter` to the global namespace. Add variable declaration.', '0', null, null, 'kentcdodds', '2015-06-16T06:02:39Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1025', '37', '12130', 'Updated Custom Form Directive Example', 'As of angular 1.3 $setViewValue already calls $apply and triggers a digest cycle so now there is no need wrapping the $setViewValue function call with $apply which will just trigger an additional digest cycle.', '9', null, null, 'noynir', '2015-06-16T08:40:20Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1026', '37', '12132', 'update', 'update', '1', null, null, 'dshm', '2015-06-16T10:44:12Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1027', '37', '12138', 'feat(ng): add directive for visible and invisible elements', 'when you need to preserve a hidden elements dom space ngVisible and ngInvisible will allow you to do so', '4', null, null, 'jacobscarter', '2015-06-16T18:33:53Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1028', '37', '12145', 'fix($browser): prevent infinite digest if changing hash when there is no `hashPrefix`', 'The `window.location.hash\' setter will strip of a single leading hash character\r\nif it exists from the fragment before joining the fragment value to the href\r\nwith a new hash character.\r\n\r\nThis meant that if we want the fragment to lead with a hash character, we\r\nmust do `window.location.hash = \'##test\'` to ensure that the first hash\r\ncharacter in the fragment is not lost.\r\n\r\nThe `$location.hash` setter works differently and assumes that the value\r\npassed is the the full fragment, i.e. it does not attempt to strip off a\r\nsingle leading hash character.\r\n\r\nPreviously, if you called, `$location.hash(\'#test\')`, the leading hash was\r\nbeing stripped and the resulting url fragment did not contain this hash:\r\n`$location.hash()`, then became \'test\' rather than `#test`, which led to\r\nan infinite digest.\r\n\r\nCloses #10423', '0', null, null, 'petebacondarwin', '2015-06-17T10:34:52Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1029', '37', '12147', 'docs(tutorial/Tutorial): corrected sentence', '', '3', null, null, 'scampi', '2015-06-17T13:37:03Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1030', '37', '12149', 'docs(ngTouch): Document event parameter for $swipe handlers', 'Document that the event handlers provided by $swipe do receive the raw\r\nevent as their last parameter.\r\n\r\nCloses #11983', '2', null, null, 'alfonso-presa', '2015-06-17T14:49:55Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1031', '37', '12151', 'fix($compile): be more careful about shadowing $attrs values', 'Shadows only when attributes are non-optional and not own properties,\r\nonly stores the observed \'@\' values when they are indeed strings.\r\n\r\nPartial revert of a6339d30d1379689da5eec9647a953f64821f8b0\r\n\r\nCloses #12144', '11', null, null, 'caitp', '2015-06-17T15:24:40Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1032', '37', '12155', 'fix(ngMock): support `before` test framework hook.', 'Both Jasmine 2.1+ and Mocha support `before` hooks that run setup\r\ncode once before all `beforeEach` hooks and test cases are run.\r\nInitialize `annotatedFunctions` and `currentSpec` for `before`,\r\n`beforeAll`, and `suiteSetup` test framework synonyms just as we do\r\nfor `beforeEach` and `setup` so that `before` hooks can be used with\r\nngMock.\r\n\r\nCloses #12154', '1', null, null, 'mikol', '2015-06-17T22:04:33Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1033', '37', '12156', 'feat($rootScope): Add $once method', 'This listens on events just like $on, but will deregister\r\nthe listener automatically upon the first call.', '10', null, null, 'noam3127', '2015-06-18T00:09:41Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1034', '37', '12159', 'feat($http): add $xhrFactory service to enable creation of custom xhr objects', 'Extract the createXhr function into a service called $xhrFactory which can easily be decorated to be able to construct non-standard or customised XMLHttpRequest objects. This is required for use of the mozAnon and mozSystem options for FirefoxOS.\r\nSee https://developer.mozilla.org/en-US/docs/DOM/XMLHttpRequest#XMLHttpRequest() for details.\r\n\r\nAlternate solution to PR #9319\r\nCloses #2318\n\n<!-- Reviewable:start -->\n[<img src=\"https://reviewable.io/review_button.png\" height=40 alt=\"Review on Reviewable\"/>](https://reviewable.io/reviews/angular/angular.js/12159)\n<!-- Reviewable:end -->\n', '17', null, null, 'sjurba', '2015-06-18T07:19:28Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1035', '37', '12162', 'added simple example of how to use $timeout', '\n\n<!-- Reviewable:start -->\n[<img src=\"https://reviewable.io/review_button.png\" height=40 alt=\"Review on Reviewable\"/>](https://reviewable.io/reviews/angular/angular.js/12162)\n<!-- Reviewable:end -->\n', '3', null, null, 'rncrtr', '2015-06-18T18:12:08Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1036', '37', '12165', 'Update module.ngdoc', 'Fixed link to blog post\n\n<!-- Reviewable:start -->\n[<img src=\"https://reviewable.io/review_button.png\" height=40 alt=\"Review on Reviewable\"/>](https://reviewable.io/reviews/angular/angular.js/12165)\n<!-- Reviewable:end -->\n', '4', null, null, 'supergibbs', '2015-06-19T01:14:41Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1037', '37', '12166', 'WIP angular.component implementation [ci skip]', 'Needs tests and experimentation, it would be nice to make this work well\nwith TypeScript decorators for ease of use.\n\nThe whole \"controller instantiated after templateUrl is loaded\" thing seems\nnot-ideal, it would be cool if a templateUrl function could be a method of\nthe component controller.\n\n<!-- Reviewable:start -->\n[<img src=\"https://reviewable.io/review_button.png\" height=40 alt=\"Review on Reviewable\"/>](https://reviewable.io/reviews/angular/angular.js/12166)\n<!-- Reviewable:end -->\n', '15', null, null, 'caitp', '2015-06-19T02:00:49Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1038', '37', '12167', 'docs($rootScope.Scope): reinsert lost example', 'This doc example was lost long ago here https://github.com/angular/angular.js/commit/2845dd159087fc59eb29845a578f32c7c462e8e6\r\n\r\nAs it is now, it says \'here is a simple scope snippet...\' but has a non-linking file link to the test doc. Doesn\'t make sense. This change simply puts back the example as it originally was.', '5', null, null, 'louisik1', '2015-06-19T07:54:01Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1039', '37', '12172', 'Added hasBody to ngResource action configuration', 'I would love to have a \"hasBody\" attribute on the action configuration of ngResource to be able to specify if a configured action requires a body.', '2', null, null, 'yathos', '2015-06-19T20:19:38Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1040', '37', '12174', 'fix($rootScope): Internal state consistency', 'During a recursive $apply, clear the state only if the state was set in that call.', '2', null, null, 'lgalfaso', '2015-06-19T23:10:33Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1041', '37', '12180', 'Add hasBody to ngResource action configuration', 'The use of hasBody would allow developers of REST interfaces to decide if a request body is necessary or not on a per method basis.\r\n\r\nThe way ngResource currently handles request bodies in custom requests make the definition of custom requests pretty useless. Its not possible to transfere a request body through a other requests than POST, PUT, PATCH. Or am I wrong?\r\n\r\nIt may be true that some browser implementations are also brocken when it comes to methods like DELETE but this broken behavior should not be enforced by angular.\r\n\r\nEven as i read https://github.com/angular/angular.js/issues/3207 after creating the patch its somehow picking up pmariduenas comment on creating a enableDeleteRequestBody. Its just the generic version for all custom requests.', '6', null, null, 'yathos', '2015-06-21T09:25:35Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1042', '37', '12181', 'Add hasBody to ngResource action configuration', 'The use of hasBody would allow developers of REST interfaces to decide if a request body is necessary or not on a per method basis.\r\n\r\nThe way ngResource currently handles request bodies in custom requests make the definition of custom requests pretty useless. Its not possible to transfere a request body through a other requests than POST, PUT, PATCH. Or am I wrong?\r\n\r\nIt may be true that some browser implementations are also brocken when it comes to methods like DELETE but this broken behavior should not be enforced by angular.\r\n\r\nEven as i read the https://github.com/angular/angular.js/issues/3207 after creating the patch its somehow picking up pmariduenas comment on creating a enableDeleteRequestBody. Its just the generic version for all custom requests.', '7', null, null, 'kaufholdr', '2015-06-21T09:50:33Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1043', '37', '12182', 'docs($httpProvider): typo fix', 'fix a typo:\r\ndefault.cache -> defaults.cache', '4', null, null, 'Jandalf', '2015-06-21T11:22:38Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1044', '37', '12183', 'docs($http): Set correct link to XMLHttpRequest.responseType', 'The link to MDN XMLHttpRequest.responseType was incorrect.', '3', null, null, 'philBrown', '2015-06-22T01:09:04Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1045', '37', '12189', 'fix(select): select doesn\'t work when label and ngModel value match.', 'The selectCtrl ```addOption``` compares the label value with the\r\nngModel value when determining when to set the value of the select\r\nelement. This causes a problem if the label matches model value but\r\nnot the selectAs value of the option.\r\n\r\nfixes #11835', '3', null, null, 'rgaskill', '2015-06-22T22:42:18Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1046', '37', '12194', 'test($compile): test default value for optional attribute with new scope', 'Related to #12151', '0', null, null, 'gkalpak', '2015-06-23T12:54:37Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1047', '37', '12196', 'feat(linky): support tel scheme', '', '0', null, null, 'gabrielmaldi', '2015-06-23T17:52:57Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1048', '37', '12201', 'fix(ngResource): fix query url params encoding', 'Encoding URL Query Parameters should be \"more aggressive\" than the URL Segment encoding.\r\nYou can see what I mean in the added test case.\r\n\r\nI\'m currently using AngularJS 1.3.16 but I found this bug is still there in master.\n\n<!-- Reviewable:start -->\n[<img src=\"https://reviewable.io/review_button.png\" height=40 alt=\"Review on Reviewable\"/>](https://reviewable.io/reviews/angular/angular.js/12201)\n<!-- Reviewable:end -->\n', '48', null, null, 'alediaferia', '2015-06-24T09:19:30Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1049', '37', '12202', 'docs(ngAnimate): change .ng-enter to .ng-animate', '.ng-enter class is not added by animateCss service. .enter and .ng-animate is added. Maybe a fix of adding .ng-enter rather than .enter is more proper.', '4', null, null, 'yichaowang', '2015-06-24T11:19:21Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1050', '37', '12203', 'docs(ngAnimate): if statement typo. use element css selector.', 'Replace ? to :. The directive is a element in example not an attribute.', '1', null, null, 'yichaowang', '2015-06-24T11:44:23Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1051', '37', '12212', 'docs(guide/Migrating from Previous Versions)', '`$animate.on/off` example updated to match docs\n\n<!-- Reviewable:start -->\n[<img src=\"https://reviewable.io/review_button.png\" height=40 alt=\"Review on Reviewable\"/>](https://reviewable.io/reviews/angular/angular.js/12212)\n<!-- Reviewable:end -->\n', '1', null, null, 'cbosco', '2015-06-25T20:39:42Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1052', '37', '12213', 'feat(ngMessages): add support for default message', 'Added support for showing default message when no values are mapped with ng-message.\r\n\r\nCloses #12008\n\n<!-- Reviewable:start -->\n[<img src=\"https://reviewable.io/review_button.png\" height=40 alt=\"Review on Reviewable\"/>](https://reviewable.io/reviews/angular/angular.js/12213)\n<!-- Reviewable:end -->\n', '3', null, null, 'gdangelo', '2015-06-25T21:56:16Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1053', '37', '12217', 'fix($compile): throw error when requesting new and isolate scopes (async)', 'While directives are not allowed to request both a new (normal) and an isolate scope on the same element, the relevant check was not performed correctly when the directive requesting the isolate scope had a lower priority and specified a `templateUrl`.\r\nIn that case, the check was deferred until the template was fetched, but the info about other directives requesting a new (normal) scope was not properly preserved (in `previousCompileContext`).\r\n\r\nThis commit fixes this, so now an error is thrown (as expected).\r\n\r\nFixes #12215\n\n<!-- Reviewable:start -->\n[<img src=\"https://reviewable.io/review_button.png\" height=40 alt=\"Review on Reviewable\"/>](https://reviewable.io/reviews/angular/angular.js/12217)\n<!-- Reviewable:end -->\n', '5', null, null, 'gkalpak', '2015-06-26T15:01:55Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1054', '37', '1222', 'changed simpleApp to myApp in the Module page guide for consistency', 'Paragraph says:\nNotice the reference to the myApp module in the <html ng-app=\"myApp\">, it is what bootstraps the app using your module.\n\nBut the code has:\n<!-- index.html -->\n <!doctype html>\n <html ng-app=\"simpleApp\">\n <head>\n <script src=\"http://code.angularjs.org/angular-1.0.1.min.js\"></script>\n <script src=\"script.js\"></script>\n </head>\n <body>\n <div>\n {{ \'World\' | greet }}\n </div>\n </body>\n </html>\n\n\n<!-- script.js -->\n // declare a module\n var simpleAppModule = angular.module(\'simpleApp\', []);\n \n // configure the module.\n // in this example we will create a greeting filter\n simpleAppModule.filter(\'greet\', function() {\n return function(name) {\n return \'Hello, \' + name + \'!\';\n };\n });', '1', null, null, 'sahat', '2012-08-01T20:44:52Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1055', '37', '12226', 'fix(jqLite): return if element is undefined', 'ngAnimate has problems removing elements, causing errors. A detailed explanation of this can be found at #8796.\r\n\r\nSee #9485\n\n<!-- Reviewable:start -->\n[<img src=\"https://reviewable.io/review_button.png\" height=40 alt=\"Review on Reviewable\"/>](https://reviewable.io/reviews/angular/angular.js/12226)\n<!-- Reviewable:end -->\n', '10', null, null, 'seaside98', '2015-06-29T02:12:45Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1056', '37', '12227', 'docs(guide/Migrating from Previous Versions): Add 1.4 $compile change...', '...regarding controller constructors.\r\n\r\nIf you previously returned a object from a controller constructor function, it would not be bound to the scope. As of 1.4 it does, and can cause unexpected objects as the scope.\n\n<!-- Reviewable:start -->\n[<img src=\"https://reviewable.io/review_button.png\" height=40 alt=\"Review on Reviewable\"/>](https://reviewable.io/reviews/angular/angular.js/12227)\n<!-- Reviewable:end -->\n', '0', null, null, 'bgever', '2015-06-29T03:26:52Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1057', '37', '1223', 'fix LogCtrl in example per the comments on docs.angularjs.org.', 'The controller code in the current example doesn\'t work. Changed to use $scope as per [Ярослав Горбушин\'s comment](http://docs.angularjs.org/api/ng.$log#comment-588730161).', '1', null, null, 'calvinhuang', '2012-08-01T22:20:34Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1058', '37', '12234', 'feat(ngAria): add option to disable role=button', 'I am separating a larger ngAria refactor into smaller pieces and getting them submitted! Starting with a config option for `role=\"button\"`, which is added by ngClick onto divs or custom elements like `<radio-group>`. If `bindRoleForClick` is set to false in the config, ngAria will not add the button role to custom elements using `ng-click`. I\'m totally open to renaming the config variable.\r\n\r\nCloses https://github.com/angular/angular.js/issues/11580\r\n\r\nNote config options are app-widean awesome improvement would be to scope them by controllers or directives. Related to #11174.\r\n\r\n<!-- Reviewable:start -->\r\n[<img src=\"https://reviewable.io/review_button.png\" height=40 alt=\"Review on Reviewable\"/>](https://reviewable.io/reviews/angular/angular.js/12234)\r\n<!-- Reviewable:end -->\r\n', '5', null, null, 'marcysutton', '2015-06-30T02:04:30Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1059', '37', '12236', 'feat(compile): add support for Angular 2 event bindings', '- Adds support for event bindings to match Angular 2, i.e. `(event)`, `(^event)`, `on-event`, and `onbubble-event`\r\n\r\nThis implements #12197.\n\n<!-- Reviewable:start -->\n[<img src=\"https://reviewable.io/review_button.png\" height=40 alt=\"Review on Reviewable\"/>](https://reviewable.io/reviews/angular/angular.js/12236)\n<!-- Reviewable:end -->\n', '13', null, null, 'wesleycho', '2015-06-30T05:18:34Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1060', '37', '12238', 'docs(ngDblclick): describe your change...', '\n\n<!-- Reviewable:start -->\n[<img src=\"https://reviewable.io/review_button.png\" height=40 alt=\"Review on Reviewable\"/>](https://reviewable.io/reviews/angular/angular.js/12238)\n<!-- Reviewable:end -->\n', '5', null, null, 'aalpgiray', '2015-06-30T08:54:16Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1061', '37', '12240', 'refactor($templateRequest): move $sce checks and trust the cache', 'Move all the calls to $sce.getTrustedUrl inside $templateRequest, and\r\nalso trust the contents of the cache. This allows prefetching templates\r\nand to bypass the checks on templates directly populated in the cache, \r\nlike for instance templates specified in script tags.\r\n\r\nFixes both #12219 and #12220.\r\n\r\n<!-- Reviewable:start -->\r\n[<img src=\"https://reviewable.io/review_button.png\" height=40 alt=\"Review on Reviewable\"/>](https://reviewable.io/reviews/angular/angular.js/12240)\r\n<!-- Reviewable:end -->\r\n', '11', null, null, 'rjamet', '2015-06-30T09:50:25Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1062', '37', '12244', 'docs(input): add mention of ngMin and ngMax. Closes #11636', '\n\n<!-- Reviewable:start -->\n[<img src=\"https://reviewable.io/review_button.png\" height=40 alt=\"Review on Reviewable\"/>](https://reviewable.io/reviews/angular/angular.js/12244)\n<!-- Reviewable:end -->\n', '0', null, null, 'twhitbeck', '2015-06-30T16:17:15Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1063', '37', '12245', 'Fixes to body element animation', '\n\n<!-- Reviewable:start -->\n[<img src=\"https://reviewable.io/review_button.png\" height=40 alt=\"Review on Reviewable\"/>](https://reviewable.io/reviews/angular/angular.js/12245)\n<!-- Reviewable:end -->\n', '7', null, null, 'matsko', '2015-06-30T18:13:10Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1064', '37', '12247', 'docs(guide/Services): forgot \"ng-app\"', 'Compiler won\'t run on this code if you type it out yourself.\n\n<!-- Reviewable:start -->\n[<img src=\"https://reviewable.io/review_button.png\" height=40 alt=\"Review on Reviewable\"/>](https://reviewable.io/reviews/angular/angular.js/12247)\n<!-- Reviewable:end -->\n', '4', null, null, 'christianreed', '2015-06-30T20:44:45Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1065', '37', '12248', 'Synchronous Classes in ngAnimate', 'This PR ensures that classes added via $animate are always applied after the first digest instead of after the first requestAnimationFrame.\r\n\r\nCloses #11975\r\nCloses #12276', '4', null, null, 'matsko', '2015-06-30T21:49:46Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1066', '37', '12250', 'Fixed outdated link', '', '5', null, null, 'Ore4444', '2015-07-01T13:03:08Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1067', '37', '12252', 'docs($sce): correct typos', 'Line 548: Remove duplicate \'not\' and clarify wording\r\nLine 556: Remove period within parenthetical statement\r\nLine 560: Clarify wording\r\nLine 570: Capitalize \'E.g.\' at the start of a sentence', '0', null, null, 'shoja', '2015-07-01T17:04:48Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1068', '37', '12254', 'chore(animate): remove dead code', '- Remove unused `$$asyncCallback`\r\n\r\nAddresses #12251.', '3', null, null, 'wesleycho', '2015-07-01T18:25:42Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1069', '37', '12258', 'revert: \"fix($compile): do not write @-bound properties if attribute …', '…is not present\"\r\n\r\nThis reverts commit 8a1eb1625c080445ce1e519762e1f2d4fd842b72.\r\n\r\nThis commit broke the tabs component on the material project,\r\nwhich caused internal breakages. Will open a separate issue to\r\nlook into the issue.', '1', null, null, 'jeffbcross', '2015-07-02T05:14:29Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1070', '37', '12262', 'fix(ngAria): clean up tabindex usage', '* Do not put `tabindex` on natively interactive controls using `ng-model` or `ng-click`\r\n* Use a single `nodeBlacklist` to limit which elements receive support (not user-configurable)\r\n\r\nCloses #11500', '23', null, null, 'marcysutton', '2015-07-02T17:17:00Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1071', '37', '12264', 'docs($cookiesProvider): fixed a typo', '\"This is *import* so that cookies will be visible\" should be \"This is *important* so that cookies will be visible\"', '3', null, null, 'ashishdasnurkar', '2015-07-03T07:03:24Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1072', '37', '12268', 'docs(guide/Dependency Injection): minor punctuation fixes', '', '3', null, null, 'kadimi', '2015-07-03T21:53:46Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1073', '37', '1227', 'feat(ngInclude): childScope.$eval(onincludeExp)', 'Allow expressions to be evaluated against the included scope by passing them as the `onInclude` attribute. \n\nThis is similar to onload, but evaluates against the included\'s [child] scope vs. the directive\'s [parent] scope. \n\nSee: http://jsfiddle.net/briceburg/NMmyY/1/ as a demonstration.', '20', null, null, 'briceburg', '2012-08-02T21:00:51Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1074', '37', '12271', 'Leave Animation callback overridden by next animation', 'This patch will fix the overriding or loosing the leave callback object of the animation.\r\n\r\nExample:\r\n```\r\nvar app = angular.module(\"app\", [\'ngMessages\', \'ngAnimate\']);\r\n\r\napp.directive(\'iholder\', [\'$animate\',\'$timeout\', function($animate,$timeout) {\r\n return {\r\n restrict: \'EA\',\r\n scope: {},\r\n template: \'<div class=\"level1 level2\" ng-click=\"clickHandler()\" style=\"width:100%;height:10em;background-color:red;\"></div>\',\r\n replace: true,\r\n link: function($scope, element, attrs) {\r\n $scope.clickHandler = function() {\r\n $animate.leave(element);\r\n $animate.removeClass(element,\'level2\');\r\n }\r\n }\r\n }\r\n}]);\r\n```\r\nIn above example removeClass is called as soon as the leave is called so in queueAnimation the the leave animation option (callback) is overridden with the removeClass option so the element is not removed.\r\n\r\nThis patch will fix the #12249 issue , in this issue leave is called by ngRepeatDirective for removing the element and on destroy ngForm called removeClass so the leave callback is overridden in mergeAnimationOptions so the element is not removed.\n\n<!-- Reviewable:start -->\n[<img src=\"https://reviewable.io/review_button.png\" height=40 alt=\"Review on Reviewable\"/>](https://reviewable.io/reviews/angular/angular.js/12271)\n<!-- Reviewable:end -->\n', '9', null, null, 'sreeramu', '2015-07-05T01:36:05Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1075', '37', '12277', 'Fix for #12266 : Fixed skipping/cleaning of elements pending animations.', 'Instead of merging existing animation option to new animation options we can merge in reverse and utilize old animation runner.\r\n\r\nThis PR will fix #12266,#12007 issue.\r\n\r\nExample to test:\r\n\r\n```\r\nvar app = angular.module(\"app\", [\'ngAnimate\']);\r\n\r\napp.directive(\'iholder\', [\'$animate\',\'$timeout\', function($animate,$timeout) {\r\n return {\r\n restrict: \'EA\',\r\n scope: {},\r\n template: \'<div ng-click=\"clickHandler()\" style=\"width:100%;height:10em;background-color:red;\"></div>\',\r\n replace: true,\r\n link: function($scope, element, attrs) {\r\n $scope.clickHandler = function() {\r\n $animate.addClass(element,\'test1\');\r\n $animate.removeClass(element,\'test1\');\r\n $animate.addClass(element,\'test1\');\r\n $animate.removeClass(element,\'test1\');\r\n }\r\n }\r\n }\r\n}]);\r\n```', '6', null, null, 'sreeramu', '2015-07-06T15:22:20Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1076', '37', '12278', 'Fix for #12096 : Fixed leave start & close callback', 'This PR fixes #12096 issue.\r\n\r\nAs leave event removes the node from the document ```entry.node.contains(targetNode)``` will not match for leave animation so no callbacks are called for leave.', '9', null, null, 'sreeramu', '2015-07-06T17:11:03Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1077', '37', '12282', 'fix(ngAnimate): $timeout without invokeApply', 'Currently when using ngAnimate in-conjunction\r\nwith ng-repeat a $rootScope.$digest happens\r\nper element animated.\r\nThis change calls $timeout with the invokeApply\r\nparameter set to false which stops ngAnimate\r\nfrom invoking its changes inside an $apply block.\r\n', '10', null, null, 'startswithaj', '2015-07-07T05:11:35Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1078', '37', '12284', 'fix(injector): check that modulesToLoad isArray.', 'When users accidentally just pass a single string, e.g. `angular.injector(\'myModule\')`, this will give\r\na better error message.\r\n\r\nCurrently Angular just reports that the module with the name \'m\' is missing, as it\'s iterating through\r\nall characters in the string, instead of all strings in the module.', '0', null, null, 'mprobst', '2015-07-07T08:44:10Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1079', '37', '12285', 'fix(injector): check that modulesToLoad isArray.', 'When users accidentally just pass a single string, e.g.\r\n`angular.injector(\'myModule\')`, this change give them a better error message.\r\n\r\nCurrently Angular just reports that the module with the name \'m\' is missing,\r\nas it\'s iterating through all characters in the string, instead of all strings\r\nin the module.', '2', null, null, 'mprobst', '2015-07-07T09:58:16Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1080', '37', '12286', 'fix(merge): clone elements instead of threating them like objects', 'Similar fix to #11720. Without this fix there is only empty object created in destination object.', '9', null, null, 'luckylooke', '2015-07-07T10:17:32Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1081', '37', '12289', 'Clarify the word \"trusted\" in $q.when docs', '', '3', null, null, 'andrewlague', '2015-07-07T17:55:06Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1082', '37', '12290', 'fix($compile): ignore optional =-bound properties with empty value', 'Previously, optional empty \'=\'-bound expressions were ignored ---\nerroneously they stopped being ignored, and no tests were caused to fail\nfor this reason. This change restores the original ignoring behaviour while\nstill preventing other errors fixed by 8a1eb16\n\nCloses #12144\nCloses #12259', '24', null, null, 'caitp', '2015-07-07T18:11:01Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1083', '37', '12291', 'docs(jqLite): added missing support for unbind/off with event object as parameter', '', '9', null, null, 'grsmvg', '2015-07-07T19:51:30Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1084', '37', '12292', 'docs(Dependency Injection): fix angular.injector arguments list', 'The original file includes a code sample using `angular.injector([\'myModule\', \'ng\'])` which throws an error when trying to retrieve anything attached to `myModule`. Reversing the args fixes this.', '0', null, null, 'adamsea', '2015-07-07T21:52:48Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1085', '37', '12294', 'docs(guide/Scopes): added ng-app to the examples', 'ng-app was left off of all the examples, so if you type them out and try to run them they don\'t work.', '1', null, null, 'christianreed', '2015-07-08T00:37:24Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1086', '37', '12297', 'fix(loader): define isFunction #12287', 'isFunction is not defined when using the loader in the index-async.html in the angular seed app.', '0', null, null, 'jerryorta-dev', '2015-07-08T09:26:32Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1087', '37', '12298', 'Fix loader 12287', 'Sorry for all the commits, this is my first time doing this process.\r\n\r\nFix for issue #12287, define isFunction in loader', '2', null, null, 'jerryorta-dev', '2015-07-08T11:25:42Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1088', '37', '12299', 'fix(loader): define isFunction', 'Issue #12287: loader throws error using index-async.html in seep-app.', '2', null, null, 'jerryorta-dev', '2015-07-08T11:38:45Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1089', '37', '1230', '$http responseType support', 'What do we wanna do with old browsers that doesn\'t support responseType ?\nI guess... nothing :-D', '2', null, null, 'vojtajina', '2012-08-04T19:18:46Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1090', '37', '12303', 'fix(ngLocale): Fixed Chilean locales', 'Chilean translation to september is \"Septiembre\", \"Setiembre\" is a slang translation.\r\nShort days and months should not have an ending dot, it\'s dependent on the usage.', '5', null, null, 'NitroInside', '2015-07-08T16:26:22Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1091', '37', '12304', 'fix(ngLocale): Fixed Chilean locales', '- Chilean translation to September is \"Septiembre\", \"Setiembre\" is a slang translation.\r\n- Short days and months should not have an ending dot, it\'s dependent on the usage.\r\n- Weekends are Sunday and Saturday.\r\n- First day of week is Monday.', '1', null, null, 'NitroInside', '2015-07-08T17:42:20Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1092', '37', '12305', 'Fixed Chilean locales', '- Chilean translation to September is \"Septiembre\", \"Setiembre\" is a slang translation.\r\n- Short days and months should not have an ending dot, it\'s dependent on the usage.\r\n- Weekends are Sunday and Saturday.\r\n- First day of week is Monday.', '1', null, null, 'NitroInside', '2015-07-08T17:48:52Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1093', '37', '12307', 'chore(ngLocale): regenerate locale files', '', '3', null, null, 'lgalfaso', '2015-07-08T22:19:55Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1094', '37', '12314', 'docs(tutorial/7 - Routing)', 'It is corrected in github, but not in the angular.org site.\r\nCopied it from https://github.com/angular/angular-phonecat/compare/step-6...step-7', '3', null, null, 'Mohamed5amy', '2015-07-09T13:09:30Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1095', '37', '12317', 'fix(ngTouch) Remove ngClick override from ngTouch', '#2989 introduces a bug (when adding the `ng-click` directive) which prevents the default behavior of child elements like `a` and `input` elements when you click them.\r\nInstead we should recommend people to use https://github.com/ftlabs/fastclick to eliminate the 300ms delay.\r\nThis is a follow up from #11212 http://git.io/vqyF6 where it was suggested to remove the ngClick override\r\n\r\nBREAKING CHANGE: Remove ngClick override from ngTouch, use fastclick inststead\r\nCloses #4030, #6432', '4', null, null, 'christianvuerings', '2015-07-10T00:02:18Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1096', '37', '12318', 'ngTemplator - Build Website form Json', 'The idea is create a website from a json schema, and cross with the templates base HTML ', '4', null, null, 'joelviseu', '2015-07-10T05:14:28Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1097', '37', '1232', 'doc(devguide) - Fix typos and small grammatical errors in dev guide', '', '1', null, null, 'snicolai', '2012-08-05T19:18:54Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1098', '37', '12320', 'Fixed a small typo in ctrl error messagae', 'Just a stray apostrophe. ', '3', null, null, 'APassanisi', '2015-07-10T11:08:49Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1099', '37', '12323', 'Month translation bug and currency update', 'Is not setiembre is septiembre, and the actually currency prefix (sufix really) is Bsf.', '5', null, null, 'AlexanderZon', '2015-07-10T16:34:08Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1100', '37', '12325', 'docs(tutorial/8 - More Templating): describe your change...', 'Should be phones no?', '3', null, null, 'ddavtian', '2015-07-11T02:31:14Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1101', '37', '12326', 'docs(guide/Forms): The CSS example is missing binding results', 'It will be good to have the binding results of CSS example, similar to the Simple Form example.', '3', null, null, 'maurya777', '2015-07-11T05:22:11Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1102', '37', '12328', 'Update angular-locale_hr-hr.js', 'Changed \"MONTH\" values to be more consistent with Croatian language. The genitiv forms are rarely used, only in very formal occasions, it is much more useful to have nominativ forms\r\n.\r\nChanged \"FIRSTDAYOFWEEK\" from 0 to 1 because in Croatia, as in most European countries, Monday is the first day of the week.', '4', null, null, 'TommyZG', '2015-07-11T13:02:42Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1103', '37', '12329', 'fix(cacheFactory): check key exists before decreasing size', 'When $cacheFactory.remove() is called, if the key does not exist, return\r\nbefore modifying size. There is currently no check for the key\'s\r\nexistence.\r\n\r\nCloses #12321', '16', null, null, 'tealtail', '2015-07-12T00:59:34Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1104', '37', '1233', 'Loading from Google CDN', 'As you guys had mansion, we can and need to do it through Google CDN for better performance,\nso i\'ve updated it accordingly ', '0', null, null, 'Urigo', '2012-08-06T08:46:44Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1105', '37', '12330', 'feat($httpParamSerializerJQLike): honor object.toJSON function if present', '`$httpParamSerializerJQLike` gives dates special treatment (i.e. treats them as values instead of drilling down into their properties).\r\n\r\nThis change extends this behavior by honoring the [toJSON](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify#toJSON()_behavior) function, if present on the object being serialized.\r\n\r\nWhile keeping the existing behavior for dates, it also adds support for serializing custom objects which should be treated as values, such as `Moment.js` moments.', '8', null, null, 'gabrielmaldi', '2015-07-12T07:38:48Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1106', '37', '12335', 'update', '', '1', null, null, 'dshm', '2015-07-13T09:54:55Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1107', '37', '12338', 'fix(ngAnimate): ensure that orphaned elements do not throw errors when animated', 'This fix ensures that for both `$animateCss` and `$animate` capture the error\r\nwhen an animation takes place where the element is removed from the\r\nparent element sometime before or during the preparation stages of the\r\nanimation.\r\n\r\nCloses #11975', '1', null, null, 'matsko', '2015-07-13T23:38:24Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1108', '37', '1234', 'Made the route matcher public, allows to parse inputs from the url', 'For example, when not using ng-view now we can retrieve the current route by:\n\n $route.match($location);\n\nOr we could parse it:\n\n $location.$$parse($location.$$rewriteAppUrl(\'/index.html?id=2\'));\n $route.match($location);', '1', null, null, 'fran6co', '2012-08-06T16:03:27Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1109', '37', '12340', 'fix($animateCss): ensure animations execute if only a keyframeStyle is provided', '`$animateCss` is a fan of transition animations, but it turns out that\r\nif only a keyframeStyle is provided into the animation upon constrution\r\nthen it will quit because it assumes that nothing will be animated\r\n(since no classes or styles are being applied). This patch ensures that\r\na keyframe style can solely be applied to an animation triggered with\r\n`$animateCss`.\r\n\r\n```js\r\n// this will now work as expected\r\n$animateCss(element, { keyframeStyle: \'1s rotate\' }).start();\r\n```\r\n\r\nCloses #12124', '3', null, null, 'matsko', '2015-07-14T00:39:34Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1110', '37', '12346', 'fix(ngCsp): allow CSP to be configurable', 'There are two different features in Angular that can break CSP rules:\r\nuse of `eval` to execute a string as JavaScript and dynamic injection of\r\nCSS style rules into the DOM.\r\n\r\nThis change allows us to configure which of these features should be turned\r\noff to allow a more fine grained set of CSP rules to be supported.\r\n\r\nCloses #11933\r\nCloses #8459', '18', null, null, 'petebacondarwin', '2015-07-14T19:42:43Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1111', '37', '12347', 'fix(ngAnimate): buffer repeated calls to RAF to improve performance for animations', 'Prior to this patch ngAnimate buffered all repeated calls to\r\nrequestAnimationFrame into a task queue that is flushed once the next\r\nanimation frame has passed. While this works it causes a random lag to\r\njump out when any CPU intensive rAF requests are processed. This patch\r\nsets a configurable task range which then offsets followup rAF requests\r\ninto the next available frame.\r\n\r\nCloses #12280', '2', null, null, 'matsko', '2015-07-14T20:13:05Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1112', '37', '12351', 'fix: parseKeyValue function does not allow additional equals signs', 'In some cases people will not follow all URL standards and may have unescaped = characters in their GET parameter values. Currently $location will not parse them correctly (or rather too correctly) and in combination with the routing will make a pushState that removes them from the URL.\r\nMy proposed fix will just join everything after the key back together with the \'=\' character it is split by before.', '10', null, null, 'jniebuhr', '2015-07-15T08:27:07Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1113', '37', '12354', 'docs(angular-mocks): Clarifies angular.mock.module comment', 'IMO this is more accurate.', '2', null, null, 'matthewjh', '2015-07-15T15:00:08Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1114', '37', '12356', 'docs(CHANGELOG): fix release date of 1.4.3 version', '', '1', null, null, 'jnizet', '2015-07-15T16:55:05Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1115', '37', '12358', 'docs($http): specifies that url is the cache key', 'When using a custom cache, it may be handy to clear some cached data. For instance, when you have a sequence of GET, POST and then GET on the same URL, the second GET must not use a cached data. Using a custom cache object from `$cacheFactory`, cached data can be cleared with `myCache.remove(url)`.\r\n\r\nThis works but uses an undocumented feature: the fact that `$http` use the required url as cache key. This change specifies that point.\r\n\r\nHope this helps', '10', null, null, 'dod38fr', '2015-07-16T09:28:37Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1116', '37', '12361', 'fix($location): don\'t crash if navigating outside the app base', 'This should fix #11667 ', '4', null, null, 'petebacondarwin', '2015-07-16T11:09:07Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1117', '37', '12362', 'I18n changes', 'Closes #10158\r\nCloses #8174 \r\nCloses #12134 \r\n', '1', null, null, 'petebacondarwin', '2015-07-16T13:56:55Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1118', '37', '12372', 'docs($q): Missing docs for when / resolve callback arguments', '', '0', null, null, 'ArchmageInc', '2015-07-17T15:41:42Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1119', '37', '12373', 'Bug: Address issue where headers modified in transformers are ignored', 'This bug looks like it was introduced in Angular 1.4.0 as I found it when upgrading from angular 1.2.26.\r\n\r\nThe issue is reproduced when you define a request transformer that modifies the headers. In angular 1.3.x and lower you are able to change the request headers in the transformer and inject additional / modify request parameters.\r\n\r\nIn Angular 1.4.0 and newer this no longer works any more.', '1', null, null, 'snayagar', '2015-07-17T19:21:26Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1120', '37', '12377', 'Adding \'null\' checks', 'Under some race conditions $window will be null or undefined', '7', null, null, 'RolfDeVries', '2015-07-18T10:15:58Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1121', '37', '12378', 'docs(filter.js): documents second parameter to .register', 'Is there any reason the second parameter of $FilterProvider#register wasn\'t documented? If not, here.', '2', null, null, 'matthewjh', '2015-07-18T20:03:37Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1122', '37', '12379', 'docs(guide/Controllers: Spiffy new Syntax', 'Syntax adjustments. ', '3', null, null, 'ColinFletch', '2015-07-19T15:34:14Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1123', '37', '12381', 'Fix($animateCss): should clear cache if element has no animation.', 'We should remove animation cache if the element don\'t have animation so follow-up animation on the same element will not be from cache.\r\n\r\nThis PR will close #12214 #12518', '4', null, null, 'sreeramu', '2015-07-19T23:48:15Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1124', '37', '12384', 'docs(ngOptions): close select element', 'Close select element in html example to stop errors occurring for copy/paste users', '0', null, null, 'jacobscarter', '2015-07-20T16:17:23Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1125', '37', '1239', 'docs(typos): fix dev guide typos and grammatical errors', 'Fix various typos as pointed out by comments below the documentation.\n\nI apologise for the sheer number of commits (most of which were reverted). I had some teething problems setting up my Windows machine for GitHub, more specifically - configuring git to properly handle line endings.', '1', null, null, 'tyson-benson', '2012-08-08T14:18:18Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1126', '37', '12396', 'docs(tutorial/7 - Routing', 'The versions are updated in the angular-phonecat repo, but not in the documentation. This change will make the version numbers in sync again.', '3', null, null, 'Vedelaar', '2015-07-21T19:20:05Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1127', '37', '12398', 'fix(httpParamSerializerJQLike): Follow jQuery for arrays of objects', 'Follow jQuery when serializing arrays that contain objects\r\n\r\nClose #12393', '3', null, null, 'lgalfaso', '2015-07-21T20:55:26Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1128', '37', '124', 'Docs widgets', '', '2', null, null, 'mhevery', '2010-11-04T21:41:05Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1129', '37', '12401', 'fix($animate): make sure to run a post-digest reflow for parentless animations', 'Closes #12400', '1', null, null, 'matsko', '2015-07-22T05:33:06Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1130', '37', '12406', 'feat(ngMocks): add expectRoute and whenRoute shortcuts with colon param matching', 'Adds a `whenRoute()` and `expectRoute()` function to `$httpBackend` service to make mocking out responses similar to writing API routes on a server. Also includes colon delimited param matching so that expect and when handlers can match requests in the form of `/user/:id`, identical to the way ngRoute matches urls in an Angular application.\r\n\r\nHere\'s an [example file](https://gist.github.com/dmaloneycalu/cb258e2f3b987fd687b2) that reflects one of the use cases for the feature (paged API responses).\r\n\r\n', '21', null, null, 'dmaloneycalu', '2015-07-22T19:21:09Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1131', '37', '12407', 'refactor(): Remove more bits and pieces related to Internet Explorer 8', 'Changes only comments and some workarounds in tests.', '0', null, null, 'realityking', '2015-07-22T19:35:58Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1132', '37', '12408', 'feat(orderBy): Stable sort the input array', 'Stable sort the input array', '7', null, null, 'lgalfaso', '2015-07-22T20:08:54Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1133', '37', '12414', 'tryDecodeURIComponent returns string or undefined, but not boolean', 'fixed one line in comment', '3', null, null, 'tiansh', '2015-07-23T13:04:46Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1134', '37', '12415', 'feat(ngSrcAlt): add ng-src-alt directive for image error handling', 'I\'ve added a simple directive, that replaces the `src` attribute of an `<img>` Tag with the content of the `ngSrcAlt` Attribute if the file linking to doesn\'t exist.\r\n\r\nThat means this:\r\n\r\n```html\r\n<img src=\"someNonExisting.png\" ng-src-alt=\"{{\'someExisting.png\'}}\" >\r\n```\r\n\r\nWould then resolve to this:\r\n\r\n```html\r\n<img src=\"someExisting.png\" ng-src-alt=\"{{\'someExisting.png\'}}\">\r\n```\r\n\r\nif the image `someNonExisting.png` does not exist.', '4', null, null, 'Nano1237', '2015-07-23T13:32:08Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1135', '37', '12416', 'refactor(ngModel): use minErr directly for correct doc creation', 'The minerr_errors extractor of the closure compiler cannot detect minErrs that are not\r\nthrown in the form of \'throw minErr(...\'\r\n\r\nThis causes the error page code blocks which display the error template to stay empty.', '4', null, null, 'Narretz', '2015-07-23T13:49:37Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1136', '37', '12417', 'docs(ngOptions): remove obsolete trkslct error page', 'As is written in the error itself, the actual throwing of the error was removed in 1.3.0-rc.6, so the error page can be removed safely from 1.3.x and 1.4.x\r\nThe only question is: can the select microsyntax now actually contain both `select as` and `track by` expressions? Or is this caught by the general slct expression error?', '0', null, null, 'Narretz', '2015-07-23T13:53:46Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1137', '37', '12418', 'fix(ngModel): remove reference to parentForm from removed control', 'Otherwise, once the removed control\'s validity changes,\r\nit will continue to be reflected on its former parent form.\r\n\r\nFixes #12263\r\n\r\n@gkalpak can you take a look?', '29', null, null, 'Narretz', '2015-07-23T14:30:57Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1138', '37', '12419', 'fix(merge): regExp should not be treated as a objects when merging.', 'While merging two objects RegExp should not be treated same as the object.\r\n\r\nCloses : #12409', '7', null, null, 'sreeramu', '2015-07-23T15:34:02Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1139', '37', '1242', 'feat(jqLite): add prev()', null, '2', null, null, 'groner', '2012-08-08T17:10:09Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1140', '37', '12421', 'docs($http): update docs to include statusText', 'also wondering if response.statusText should be included around\r\nhttps://github.com/angular/angular.js/blob/master/src/ng/http.js#L961\r\nhttps://github.com/angular/angular.js/blob/master/src/ng/http.js#L970', '4', null, null, 'arkarkark', '2015-07-23T18:36:53Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1141', '37', '12425', 'fix($injector): Allows ES6 function syntax', 'Closes #12424', '9', null, null, 'lgalfaso', '2015-07-23T22:01:27Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1142', '37', '12428', 'feat(jqLite): change camelCase to convert first letter to lowercase', 'There currently is no way to match class directives of the form\r\n`\"MyDirective\"` or `\"My_Directive\"`, because directives must start\r\nwith a lowercase letter and the `camelCase` function does not change\r\nthe case of the first letter. This change allows matching directives\r\nthat start with an uppercase letter.\r\n\r\nBefore, `camelCase(\'FooBar\') === \'FooBar\'` and\r\n`camelCase(\'Foo_Bar\') === \'FooBar\'`. Now, the first letter will be\r\nlowercase: `camelCase(\'FooBar\') === \'fooBar\'`.', '9', null, null, 'Strikeskids', '2015-07-24T13:23:05Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1143', '37', '12429', 'docs($rootScope.Scope): improve clarity describing $watch with no listener', 'The previous explanation in parentheses created a bit of confusion because the documentation stated to leave off the `listener`, but then said \"be prepared for multiple calls to your listener\". The new explanation clarifies that it is indeed the `watchExpression` that will be executed multiple times.', '1', null, null, 'Strikeskids', '2015-07-24T19:02:20Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1144', '37', '12430', 'chore(saucelabs): Upgrade Chrome and Firefox to the latest versions', 'This is needed before being able to land #12425', '2', null, null, 'lgalfaso', '2015-07-24T20:20:01Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1145', '37', '12431', 'docs($compile): pluralize DOM element', 'Previous description includes singular `collection of DOM element`. Current change revises `element` to be plural.', '0', null, null, 'johnstonbl01', '2015-07-25T00:44:24Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1146', '37', '12436', 'docs(guide/expression): replace tt by code', 'Replace tag `<tt>` by `<code>`.\r\n\r\n> This element is obsolete. Use a more appropriate element, such as <code> or <span> with CSS, instead.\r\n', '0', null, null, 'Laisky', '2015-07-26T08:35:40Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1147', '37', '12437', 'docs(guide/expression): replace tt by code', 'Replace tag `<tt>` by `<code>`.\r\n\r\n> This element is obsolete. Use a more appropriate element, such as `<code>` or `<span>` with CSS, instead.\r\n', '1', null, null, 'Laisky', '2015-07-26T08:40:58Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1148', '37', '12440', 'test(expression): add timeout to alert protractor spec to prevent failure', 'In Chrome, if two alert boxes pop up, without enough time between them,\r\nProtractor (or possibly ChromeDriver) sometimes fails to recognize the\r\nsecond alert.', '2', null, null, 'petebacondarwin', '2015-07-27T11:03:54Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1149', '37', '12443', 'docs($compile): fix typo', 'I\'m not native speaker, but \"like like\" construction is weird for me... ', '4', null, null, 'patyatka', '2015-07-27T16:59:03Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1150', '37', '12444', 'chore(angularFiles): add default en-us locale to angularFiles', 'The lack of a default locale was breaking some internal builds \r\nthat depend on some provider of an ngLocale module to be present.\r\n\r\nNote: I\'m not sure this is the best solution. I\'m still talking with @petebacondarwin \r\nabout this. Please don\'t merge', '1', null, null, 'jeffbcross', '2015-07-27T17:28:57Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1151', '37', '12449', 'Add new type of switch item, that accept Variables', '', '2', null, null, 'deadmann', '2015-07-28T09:59:16Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1152', '37', '12451', 'Add new type of switch item, that accept Variables', 'There are cases that you may want to define some types, and these case are issued...\r\nread more in here:\r\nhttps://github.com/angular/angular.js/issues/12442', '12', null, null, 'deadmann', '2015-07-28T10:14:57Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1153', '37', '12459', 'fix(ngAnimate): ensure that only string-based addClass/removeClass values are applied', 'Closes #12458', '7', null, null, 'matsko', '2015-07-28T18:57:57Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1154', '37', '1246', 'Prevent default bug', '', '1', null, null, 'IgorMinar', '2012-08-09T00:19:17Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1155', '37', '12462', 'refactor($locale): use en-us as generic built-in locale', 'Previously there was a custom built en-us locale that was included with\r\nangular.js. This made likely that it would get out of sync with the real\r\nen-us locale that is generated from the closure library.\r\n\r\nThis change removes that custom one and uses the generated one instead.\r\nThis also has the benefit of preventing the unwanted caught error on trying\r\nto load `ngLocale` during angular bootstrap.\r\n\r\nCloses #12134\r\nCloses #8174', '1', null, null, 'lgalfaso', '2015-07-29T09:48:09Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1156', '37', '12464', 'fix($compile): don\'t trigger $observer if initial value is `undefined`', 'Closes #12383', '1', null, null, 'petebacondarwin', '2015-07-29T16:06:07Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1157', '37', '12465', 'feat(angular.info): optionally store and access additional info on mo…', '…dules\r\n\r\nThis feature allows the developer to store additional meta data about a\r\nmodule when it is defined by adding an additional parameter containing\r\nan object to the `angular.module(moduleName, deps, info, configFn)` call.\r\n\r\nDevelopers can then access this information by calling `angular.info(moduleName)`\r\n\r\nSee this https://github.com/angular/material/issues/3842 for more background.', '22', null, null, 'petebacondarwin', '2015-07-29T22:19:27Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1158', '37', '12469', 'Drag and Drop directives', 'This change will help to handle drag and drop events.\r\nExample at http://plnkr.co/edit/yFTetlPuxCAZuHzPj9BE?p=preview', '6', null, null, 'eislasq', '2015-07-30T16:51:58Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1159', '37', '1247', 'Update src/ng/rootScope.js', 'Added args in $on() listener syntax declaration', '1', null, null, 'unirgy', '2012-08-09T10:48:14Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1160', '37', '12470', 'Facebook was mispelled as Faceb0ok', '', '12', null, null, 'stevenw', '2015-07-30T19:01:24Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1161', '37', '12471', 'Update step_11.ngdoc', 'changed pronoun to we', '4', null, null, 'ColinFletch', '2015-07-31T00:34:26Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1162', '37', '12473', 'fix(ngSrc) don\'t update the src property for iframe elements in IE:', 'no longer set the \"src\" property on iframe elements in Internet Explorer to avoid sending a duplicate request for iframe content\r\n\r\nCloses #9843', '3', null, null, 'ramirezd42', '2015-07-31T06:23:32Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1163', '37', '12477', 'fix(sanitize): Do not duplicate self closing elements', 'This is a refinement on top of #11790 that handles self closing elements', '4', null, null, 'lgalfaso', '2015-07-31T20:51:03Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1164', '37', '12479', 'fix(ngSrc) don\'t update the src property for iframe elements in IE:', 'no longer set the \"src\" property on iframe elements in Internet Explorer to avoid sending a duplicate request for iframe content\r\n\r\nCloses #9843', '3', null, null, 'ramirezd42', '2015-08-01T18:06:37Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1165', '37', '12483', 'refactor(form): remove the use of the private setter function', 'Remove the private `setter` function from $parse\r\nReplace the use of `setter` from the `form` directive to use $parse', '3', null, null, 'lgalfaso', '2015-08-02T11:39:24Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1166', '37', '12484', 'Revlin/1.4.x svg', 'When AngularJS runs within an SVG file there\'s an issue with handling URL parts... I tried to address this, but please check out the code', '1', null, null, 'dancingfrog', '2015-08-02T23:37:05Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1167', '37', '12489', 'docs(input[text]): MinTextLength info', 'Added information how min text length work.', '1', null, null, 'cpoDesign', '2015-08-03T11:42:05Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1168', '37', '1249', 'feat($sniffer): auto detect csp', 'https://dvcs.w3.org/hg/content-security-policy/raw-file/tip/csp-specification.dev.html#script-interfaces--experimental', '1', null, null, 'vojtajina', '2012-08-09T17:21:18Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1169', '37', '12490', 'fix($animateCss): properly handle cancellation timeouts for follow-up animations', 'Prior to this fix if `$animateCss` was called multiple on the same\r\nelement with new animation data then the preceeding fallback timout\r\nwould cause the animation to cancel midway. This fix ensures that\r\n`$animateCss` can be triggered multiple times and only when the final\r\ntimeout has passed then all animations will be closed.\r\n\r\nCloses #12359', '0', null, null, 'matsko', '2015-08-03T18:55:55Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1170', '37', '12497', 'docs(CONTRIBUTING): fix some minor typos', '', '5', null, null, 'stevemao', '2015-08-04T11:23:34Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1171', '37', '12498', 'Update ngModel.js documentation', 'ngModel documentation says that $setViewValue doesn\'t trigger a \'$digest\' but its does. it triggers $apply.', '5', null, null, 'akhlesh', '2015-08-04T13:11:11Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1172', '37', '12499', 'chore(grunt): add filename to comment header', 'Add the filename of each .js and .min.js file to it\'s own comment header.', '3', null, null, 'philipooo', '2015-08-04T16:03:59Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1173', '37', '125', 'process ISO 8601 formatted date/time strings with date filter', 'This actually just uses the parsing that the Date builtin provides. If it fails to parse the date, behavior does not change.\r\n\r\nTested in FF 3.6 and Chrome 7.0.\r\n\r\n\r\n', '3', null, null, 'groner', '2010-11-05T04:20:07Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1174', '37', '12500', 'docs(guide/Directives): add info about scope types', 'Isolate scope is a fundamental concept that must be explained in order to master directives. Accordingly the different settings for the \'scope\' option should be explained before applying them to the example. ', '2', null, null, 'mitni455', '2015-08-05T02:27:37Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1175', '37', '12502', 'fix($animate) : will not skip the animation of ng-hide remove.', 'According to current ngAnimate code both adding/removing of animate classes and real change classes are done in single requestAnimationFrame , so when ng-hide is removed from the element it will skip the transition.\r\n\r\nThis is one way of fixing or other way can be just do only adding of classes at same frame with animate for removing the classes wait for one requestAnimationFrame after applying of animate classes, or we want to go back to the previous behavior that ngAnimate having to wait for one\r\nrequestAnimationFrame before CSS classes were added/removed.\r\n\r\ncloses #12453', '2', null, null, 'sreeramu', '2015-08-05T05:22:01Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1176', '37', '12504', 'Make NgModelController $setValidity a noop if the scope is destroyed', 'Prevent setValidity from doing anything if the scope it is associated to has been destroyed. This can happen if an asynchronous event in the directive used the controller after the scope had been destroyed.', '3', null, null, 'rwlogel', '2015-08-05T15:00:38Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1177', '37', '12508', 'fix(ngMessages): use function paramater to assign to `restrict` property', 'Summary:\r\n - map unused ngMessageDirectiveFactory paramater `restrict`\r\n to hard coded `restrict` property\r\n - update `ngMessageExp` document to reflect actual\r\n `restrict` type', '0', null, null, 'princejwesley', '2015-08-05T23:21:02Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1178', '37', '12514', 'style(ngAnimate): add missing semi-colon', 'Adding missing semi-colon which is breaking minification\r\n\r\nCloses #12513', '1', null, null, 'ryanhendry', '2015-08-06T14:40:05Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1179', '37', '12515', 'fix typo useLegacyPromise', '', '1', null, null, 'isyun', '2015-08-06T21:59:38Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1180', '37', '12520', 'docs(ngAnimate): fixed typo', '', '1', null, null, 'Naemy', '2015-08-07T13:33:19Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1181', '37', '12521', 'docs(ngAnimate): Fixed typo', '', '2', null, null, 'Naemy', '2015-08-07T13:40:48Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1182', '37', '12524', 'Sanitize innert document', '', '23', null, null, 'IgorMinar', '2015-08-07T19:41:01Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1183', '37', '12525', 'Issue with canceling XHR request using promises - fixed', 'Fixes #10890 and #9332.', '1', null, null, 'netman92', '2015-08-08T10:41:18Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1184', '37', '12528', 'refactor($compile): remove unnecessary and invalid $destroyed listener', 'I noticed when bindToController is used the scope `$destroyed` event is listened for, but it should be `$destroy`. But looking further into it I don\'t think we need to listen for any destroy event in this case so this PR just deletes it.', '6', null, null, 'jbedard', '2015-08-09T04:44:39Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1185', '37', '12529', 'perf($compile): use createMap() for directive bindings to allow fast forEach', 'Very minor and I haven\'t actually measured it. But since `forEach` now has a [fast path for blank objects](https://github.com/angular/angular.js/blob/ed3a33a063f09d7ca356d15c278d95ad82e680a0/src/Angular.js#L273) I thought it would be worth it.', '0', null, null, 'jbedard', '2015-08-09T04:56:30Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1186', '37', '1253', 'Added mocha support to angular-mocks', 'Hey there,\n\nHere is a simple pull request to add mocha support to angular-mocks. I\'m not exactly sure the right way to test this as jasmine is always going to be present in the test suite.\n\nIf someone can point me in the right direction I\'ll implement the proper tests.\n', '10', null, null, 'camwest', '2012-08-10T19:55:39Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1187', '37', '12531', 'Update http.js', 'The isSuccess() function now returns true for values between the range 200 and 300 as, I guess, intended.\r\n\r\nI didn\'t test this or anything, I just stumbled across this as I was reading through the code.\r\n', '5', null, null, 'mazenharake', '2015-08-09T11:17:35Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1188', '37', '12532', 'fix(ngResources): support IPv6 URLs', 'Do not confuse IPv6 URLs domains and resource parameters.\r\n\r\nCloses #12512', '2', null, null, 'lgalfaso', '2015-08-09T19:44:30Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1189', '37', '12534', 'docs(misc/Downloading): Use the lasest stable', '', '0', null, null, 'kadimi', '2015-08-10T01:33:35Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1190', '37', '12535', 'perf($q): small $q performance optimization', 'Only generate a new promise when `then` receives some non-undefined parameter', '6', null, null, 'lgalfaso', '2015-08-10T08:25:50Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1191', '37', '1254', 'fix(option): support option elements in datalist', 'previously we expected to find option elements only within select element and if\nthat was not the case we throw an error. This made it impossible to include datalist\nelement with nested option elements in the template.\n\nCloses #1165', '3', null, null, 'IgorMinar', '2012-08-10T22:38:59Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1192', '37', '12541', 'fix(ngOptions): allow empty option selection with multiple attribute', 'fixes #12511', '3', null, null, 'arm1n', '2015-08-10T15:11:21Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1193', '37', '12543', 'docs(angular.module): simplify wording', 'A suggestion on the wording of retrieving a moudle', '6', null, null, 'frankadrian', '2015-08-10T16:55:29Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1194', '37', '12545', 'fix(ngTouch): allow use of href and ng-click with ng-touch', 'changes browser url on elements with ng-click if element has an href attribute\r\n\r\nfixes #5307', '3', null, null, 'ca136', '2015-08-10T21:10:09Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1195', '37', '12546', 'docs(select): explain how to set default value', 'Setting the default value in a select is a real trap for beginners, questions about how to do this on StackOverflow have been view more than 100,000 times in the last year. This change updates the documentation to make it clearer.', '3', null, null, 'meliaxford', '2015-08-11T04:18:03Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1196', '37', '12548', 'fix documentation typo', 'Fixes a documentation typo so that \';\' becomes \'`;`\' and is easier to read.', '4', null, null, 'lukewaite', '2015-08-11T14:22:25Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1197', '37', '12549', 'docs($sce): correct typo', 'Fix markdown quotation of a `;` so that it is properly rendered in the docs.', '1', null, null, 'lukewaite', '2015-08-11T14:40:07Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1198', '37', '1255', 'Pluralize custom interpolation', '', '2', null, null, 'IgorMinar', '2012-08-11T07:28:47Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1199', '37', '12552', 'minor fix of the $interval doc', 'The promise can be undefined \r\nhttps://github.com/angular/angular.js/blob/v1.4.3/src/ng/interval.js#L180-L188\r\nhttps://github.com/angular/angular.js/blob/v1.4.3/test/ng/intervalSpec.js#L309-L312\r\n', '5', null, null, 'chrootsu', '2015-08-11T20:38:42Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1200', '37', '12554', 'fix(ngAnimate): always apply a preparation reflow for CSS-based animations', 'It\'s unpredictable sometimes to ensure that a browser triggers a reflow\r\nfor an animation. Prior to this patch, reflows would be applied\r\ncarefully in between parent/child DOM structure, but that doesn\'t seem\r\nto be enough for animations that contain complex CSS styling rules.\r\n\r\nCloses #12553\r\nCloses #12554\r\nCloses #12267', '2', null, null, 'matsko', '2015-08-12T00:17:55Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1201', '37', '12556', 'Added invokeApply parameter to $http to skip apply', 'There are a bunch of times when we don\'t want a $rootScope.$apply after an http request succeeds. [This](http://stackoverflow.com/questions/21935215/make-angularjs-skip-running-a-digest-loop-if-http-get-resulted-in-no-new-data) stackoverflow question gives a good use case: polling.\r\nWe can also use this to do scope specific digests, which really helps performance and snappiness on mobile devices.\r\n\r\nIt also gives us a little more control over the API, and also makes it similar to $timeout. ', '6', null, null, 'Utsav2', '2015-08-12T02:30:41Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1202', '37', '12557', 'Added invokeApply parameter to $http to skip apply', 'There are a bunch of times when we don\'t want a $rootScope.$apply after an http request succeeds. [This](http://stackoverflow.com/questions/21935215/make-angularjs-skip-running-a-digest-loop-if-http-get-resulted-in-no-new-data) stackoverflow question gives a good use case: polling.\r\nWe can also use this to do scope specific digests, which really helps performance and snappiness on mobile devices.\r\n\r\nIt also gives us a little more control over the API, and also makes it similar to $timeout. ', '4', null, null, 'Utsav2', '2015-08-12T09:29:07Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1203', '37', '12558', 'Add custom attributes to linky', 'Optional extra attributes may be defined either as:\r\n- a map of attributes and values\r\n- a function that takes the url as a parameter and returns a map', '25', null, null, 'stianjensen', '2015-08-12T10:32:37Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1204', '37', '1256', 'Denormalize templates', '', '0', null, null, 'IgorMinar', '2012-08-11T07:29:27Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1205', '37', '12566', 'chore: rename angular.bind to angular.bind.js', 'Some internal tests were failing since `.bind` is a JS file which\r\nis expected to have a `.js` file name suffix.', '1', null, null, 'matsko', '2015-08-12T17:57:44Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1206', '37', '12567', 'PR refactor for #12271', 'fix($animate): leave animation callback should not overridden by follow-up animation\r\n\r\nCloses #12271\r\nCloses #12249\r\nCloses #12161', '1', null, null, 'matsko', '2015-08-12T18:28:43Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1207', '37', '12568', 'docs($animate): remove redundant \'animate\' in link', '', '1', null, null, 'kapace', '2015-08-12T18:39:31Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1208', '37', '12569', 'docs(tutorial/6 - Templating Links', 'Docs: Added alt attribute to image using \'name\' from JSON. Pulled from http://www.ssbbartgroup.com/blog/accessible-images-using-angular/', '3', null, null, 'aardrian', '2015-08-12T21:02:43Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1209', '37', '12570', 'feat(ngAnimate): expose a core version of `$animateCss`', 'A core version of `$animateCss` can now be injected when\r\nngAnimate is not present. This core version doesn\'t trigger any\r\nanimations in any way. All that it does is apply the provided from\r\nand/or to styles as well as the addClass and removeClass values.\r\n\r\nThe motivation for this feature is to allow for directives to activate\r\nanimations automatically when ngAnimate is included without the need to\r\nuse `$animate`.\r\n\r\nCloses #12509', '1', null, null, 'matsko', '2015-08-12T22:45:49Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1210', '37', '12575', 'ng-animate-ref leave clone element fix', 'Call $animate.leave on the cloned element rather than just remove to provide some more animation hooks.', '2', null, null, 'lee-tunnicliffe', '2015-08-13T08:32:25Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1211', '37', '12576', 'ng-animate-ref leave clone element fix', 'Call $animate.leave on the cloned element rather than just remove to provide some more animation hooks.', '2', null, null, 'lee-tunnicliffe', '2015-08-13T08:40:23Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1212', '37', '12577', 'ng-animate-ref leave clone element fix - Call $animate.leave on the cloned element rather than just remove to provide some more animation hooks.', 'ng-animate-ref leave clone element fix - Call $animate.leave on the cloned element rather than just remove to provide some more animation hooks.\r\nhttps://github.com/angular/angular.js/issues/12539', '4', null, null, 'lee-tunnicliffe', '2015-08-13T09:09:18Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1213', '37', '12580', 'test(select): ensure that options with interpolated text are added / …', '…updated', '1', null, null, 'Narretz', '2015-08-13T13:43:31Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1214', '37', '12582', 'fix(select): update option if interpolated value attribute changes', 'Previously, the option would only update if the fallback\r\n(the interpolated option text) was used. Now the value attribute will\r\nbe observed if it contains an interpolation.\r\n\r\nCloses #12005', '7', null, null, 'Narretz', '2015-08-13T15:55:48Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1215', '37', '12585', 'fix($animateCss): the transitions options delay value should be applied before class application', 'Applying a CSS transition delay after a reflow has hit occured where a\r\nCSS class is added/removed doesn\'t work. This feature does however work\r\nwith keyframe animations. This patch ensures that the provided\r\n`options.delay` value is applied beforehand.\r\n\r\nCloses #12584', '2', null, null, 'matsko', '2015-08-14T00:14:26Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1216', '37', '12590', 'Fix test issue', 'Unnecessary split. The url returns a string without the hash, resulting in an undefined value and making the test fails.', '4', null, null, 'elviocb', '2015-08-14T18:59:32Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1217', '37', '12592', 'test(input): test for #12106', 'Add a test that checks that an <input> value is not set when the value is equal to the current value', '0', null, null, 'lgalfaso', '2015-08-15T10:42:15Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1218', '37', '12593', 'Please let us use shims for old IE', '', '11', null, null, 'S-YOU', '2015-08-15T14:50:18Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1219', '37', '12598', 'feat($injector): support instantiating classes.', 'ES6\'s `class Foo {}` constructors cannot be instantiated using\r\n`fn.apply`. This change extracts injection argument collection and then\r\nuses `new (Function.bind.apply(ctor, args))` to instantiate the service\r\ninstance.\r\n\r\nFixes #12597.', '36', null, null, 'mprobst', '2015-08-17T11:30:19Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1220', '37', '12602', 'docs(error/unpr): note unmatched module versions', 'Unmatched versions of angular and it\'s modules in bower can also cause this error to appear. (It did for me and some others on stackoverflow: http://stackoverflow.com/questions/22661187/angular-animate-unknown-provider-asynccallbackprovider-asynccallback http://stackoverflow.com/questions/23243222/nganimate-not-working-while-working-with-requirejs)', '5', null, null, 'loren138', '2015-08-17T19:27:58Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1221', '37', '12603', 'Fixes for ngAnimate in 1.3', 'Closes #10205\r\nCloses #12604\r\nCloses #12603', '3', null, null, 'matsko', '2015-08-17T20:52:00Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1222', '37', '12610', 'fix($animateCss): fix parse errors on older Android WebViews which choke with reserved keywords', 'Without this change it is impossible to run an app on an Android 2.3 device directly using Angular source code.\r\n\r\nSimilar to #11455 and #11051', '0', null, null, 'gabrielmaldi', '2015-08-18T06:49:58Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1223', '37', '12613', 'fix($compile): backport to 1.2 of workaround for IE11 MutationObserver', 'Backport #11796 to 1.2 branch.\r\nIE11 MutationObserver breaks consecutive text nodes into several text nodes.\r\nThis patch merges consecutive text nodes into a single node before looking for interpolations.\r\n\r\nCloses #11781', '1', null, null, 'smdvdsn', '2015-08-18T13:03:57Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1224', '37', '12616', 'Merge pull request #1 from angular/master', 'fix(ngResources): support IPv6 URLs', '5', null, null, 'kthotav', '2015-08-18T17:34:04Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1225', '37', '12619', 'fix(ngAnimate): only buffer rAF requests within the animation runners', 'Closes #12280\r\n\r\nHere are demos to show that this works (test in IE):\r\n\r\nMultiple RAF Requests in Angular 1.4 ([#11791](https://github.com/angular/angular.js/issues/11791))\r\n- Pre 1.4.0 functionality (really slow on **IE 11** ... this was the reason why we decided to bundle the calls into a single function): https://jsfiddle.net/oga2z7bb/3/\r\n- Current functionality (fixed for **IE 11**): https://angular-development.appspot.com/raf-perf/fast/index.html\r\n- Patched functionality (fixed for **IE 11**): https://angular-development.appspot.com/raf-perf/slow/index.html\r\n\r\nMaterial Design $$rAF perf issue ([#12280](https://github.com/angular/angular.js/issues/12280))\r\n- Current functionality (**slow**): https://angular-development.appspot.com/slow-raf/slow/index.html\r\n- Patched functionality (**fast**): https://angular-development.appspot.com/slow-raf/fast/index.html', '11', null, null, 'matsko', '2015-08-18T22:28:14Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1226', '37', '12620', 'docs(guide/Conceptual Overview): clean up conceptual table overview', 'Align the columns in the table to make it easier to read\r\n', '0', null, null, 'RFenolio', '2015-08-19T02:23:50Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1227', '37', '12626', 'fix(ngAria): simplify aria-required attribute detection to support angular v1.2.x', 'Remove the ngModel.$validators check to support angular 1.2.x. The check\r\nserves no purpose but breaks aria on older angular versions.', '7', null, null, 'KrekkieD', '2015-08-19T13:03:25Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1228', '37', '12633', 'fix(ngPattern): Changed pattern to validate against input field value', 'Set patternDirective validator to test against viewValue instead of\r\nmodelValue.\r\n\r\nCloses #12344, #12618', '3', null, null, 'kacecode', '2015-08-20T09:40:20Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1229', '37', '12634', 'docs(ngAnimate): Remove extraneous \"then\"', 'To improve readability', '3', null, null, 'gorbiz', '2015-08-20T13:30:39Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1230', '37', '12636', 'Workaround for multiple invocations on iOS 9 Cordova UIWebView', '', '3', null, null, 'jd-carroll', '2015-08-20T13:59:32Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1231', '37', '12637', 'simplify the animation docs', 'The animation example contains unnecessarily complex CSS animation\r\ncode in it and the conventions are off.\r\n\r\nRelated #12631\r\nRelated #12594', '1', null, null, 'matsko', '2015-08-20T16:00:21Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1232', '37', '1264', 'fix(ngClassOdd/Even): proper update with filtering/ordering', 'Related to the issue #1076', '5', null, null, 'petrovalex', '2012-08-14T17:41:05Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1233', '37', '12640', 'fix(ngModel): validate pattern against the viewValue', 'Since the HTML5 pattern validation constraint validates the input value,\r\nwe should also validate against the viewValue. This allows e.g. input[date]\r\nto validate both the input format of the date and the date object itself.\r\n\r\nFixes #12344 \r\n\r\n(Also needs to be backported to 1.3)', '9', null, null, 'Narretz', '2015-08-20T18:07:08Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1234', '37', '12643', 'docs$rootScope.Scope#$watchGroup: clarify listener\'s oldValues parameter', 'Mention explicitly that oldValues may contain changes that happened before the last call to listener, as this seems non-obvious, see\r\n* https://github.com/angular/angular.js/issues/8671\r\n* https://github.com/angular/angular.js/issues/12452\r\n* http://plnkr.co/edit/Ir1X88bRL95mvm7l6f4N?p=preview', '7', null, null, 'rehmsen', '2015-08-21T08:25:13Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1235', '37', '12646', 'feat(ngAria, ngMessages): backport ngAria and ngMessages for 1.2.x', 'Support ngAria and ngMessages in 1.2.x. Some features from ^1.3.0 could\r\nnot be backported due to absence of a feature in 1.2.x (i.e. ng-min,\r\nng-messages-include).\r\n\r\nPretty much replaces PR #12626 by creating a 1.2.x specific implementation. \r\n@gkalpak @Narretz please review.\r\n\r\nNoticed IE8 auto tests fail weirdly on aria, looks like something is throwing errors but cannot reproduce this myself. Any help is appreciated.\r\nAlso noticed IE8 ngMessages test for usage by element (i.e. `<ng-messages for=\"x\">`) which I know does not fly well in general for IE8. Should this even be tested? I tried patching to `<ng:messages>` as this sometimes fixed things for me, but could not get it to work in this case (probably because `ng-message` uses `require`).\r\n\r\nPlease advise. ', '3', null, null, 'KrekkieD', '2015-08-21T13:34:01Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1236', '37', '12651', 'fix($animateCss): do not throw errors when a closing timeout is fired on a removed element', 'Closes #12650', '2', null, null, 'matsko', '2015-08-21T20:44:48Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1237', '37', '12654', 'Fix #1678 by allowing headers.Authorization to be a 2 item username/password array', 'Just to kick things off after my $provide.decorator fix in #1678 \r\n\r\ntodo:\r\n- [ ] docs\r\n- [ ] tests (how?)', '3', null, null, 'SchizoDuckie', '2015-08-22T00:45:33Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1238', '37', '12657', 'Issue with canceling XHR request using promises - fixed #12525', 'Fixes #10890 and #9332.\r\n\r\n@jtheoof no conflicts, is it ok now?', '26', null, null, 'netman92', '2015-08-23T11:08:38Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1239', '37', '12658', 'fix(ngModel): let aliased validator directives work on any element', '`ng-(pattern|minlength|maxlength)` directives will now validate the\r\n`ngModel` when on an element that is not an `input` or\r\na `textarea`.\r\nThe commit also adds a test for `ng-required`, although that validator\r\nworked on all elements before this fix.\r\n\r\nFixes #12158', '4', null, null, 'Narretz', '2015-08-23T13:47:38Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1240', '37', '12660', 'fix(input): patched input cjk binding bug on IE11 browser. (angularjs v1.4.4)', 'Related #12659 \r\n\r\nI append \"if condition\" code about ie11.', '5', null, null, 'powerumc', '2015-08-23T14:39:54Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1241', '37', '12661', 'fix(input): patched input cjk binding bug on ie11 browser. (angularjs v1.2.28)', 'Related #12659 \r\n\r\nI append \"if condition\" code about ie11.', '1', null, null, 'powerumc', '2015-08-23T14:42:30Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1242', '37', '12665', 'docs($injector): fix inaccuracy in $provide.service docs', 'closes #12664', '0', null, null, 'alirezamirian', '2015-08-24T14:41:17Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1243', '37', '12666', 'fix($animateCss): use timing functions when present', '- Uses transition timing functions when present in styles instead of defaulting to `linear`\r\n\r\nThis is for #12656.\r\n\r\nI need some guidance here @matsko - the style information is needed from the element on call to $animateCss when doing class manipulation, but I am not sure the best way to cache/retrieve the information here. Would you advise using the existing `computeCachedCssStyles` method here?', '6', null, null, 'wesleycho', '2015-08-24T18:31:27Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1244', '37', '12669', 'fix(ngAnimate): use requestAnimationFrame to space out child animations', 'This reverts the previous behaviour of using foreced reflows to deal\r\nwith preparation classes in favour of a system that uses\r\nrequestAnimationFrame (RAF).\r\n\r\nCloses #12669\r\nCloses #12594\r\nCloses #12655\r\nCloses #12631\r\nCloses #12612\r\nCloses #12187', '6', null, null, 'matsko', '2015-08-25T00:13:15Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1245', '37', '12670', 'docs: cleanup of directive animation classes ', '', '7', null, null, 'brettdewoody', '2015-08-25T05:07:45Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1246', '37', '12671', 'G3 v1 3', '', '2', null, null, '18511372116', '2015-08-25T08:14:46Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1247', '37', '12672', 'feat($rootScope): implement event.stopPropagation() for $broadcast-ed events', 'It would more consistent if both ways to trigger an event will have `stopPropagation` feature.\r\n\r\nImplemented as described in https://github.com/angular/angular.js/pull/914\r\n\r\nAlso there is a related question on [stackoverlow](http://stackoverflow.com/questions/15420765/how-to-stop-broadcast-events-in-angularjs/15422749#15422749).\r\n', '8', null, null, 'just-boris', '2015-08-25T09:55:45Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1248', '37', '12682', 'Add support for multiple ignored directives', 'Sometimes it is useful to have a possibility to ignore more than one directive.', '7', null, null, 'skaldo', '2015-08-26T11:14:41Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1249', '37', '12683', 'test($parse): fix csp setup', 'Run the parse interpreter for csp enabled tests', '6', null, null, 'lgalfaso', '2015-08-26T11:42:53Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1250', '37', '12687', 'docs(guide/Forms): replace `form` with `user`', 'Referring to the `user` as `form` in the previews is confusing, since it makes it seem as though the data being displayed is attached to the `form` object, when the `form` object is separate, albeit controlling whether data is synced to the `user` object.', '3', null, null, 'resalisbury', '2015-08-26T23:40:37Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1251', '37', '12689', 'fix($angular): use strict equality comparison', 'There is no type-conversion to be done because both parameters are already the same type. \r\nTherefore, the === operator should be used for better performance.', '5', null, null, 'JungMinu', '2015-08-27T04:07:09Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1252', '37', '1269', 'Adding meta-tags to avoid cache.', 'When creating automatic testing flow, I ran into some cache issues. Other meta tags (content no-cache) didn\'t work for me, so I used expires and it worked really well.', '1', null, null, 'pixshatterer', '2012-08-15T22:08:17Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1253', '37', '12696', 'fix($animate): `$animate.enabled(false)` should disable animations on $animateCss as well', 'Closes #12685', '1', null, null, 'matsko', '2015-08-27T21:19:08Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1254', '37', '12701', 'fix issue 12699: Context hierachy is not destroyed within a destroyed…', '… context, making memory leaks worse', '10', null, null, 'yoann-antoviaque', '2015-08-28T13:50:42Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1255', '37', '12704', 'docs(form): Added info about pending prop and class', 'Added missing documentation about the pending property and css-class', '0', null, null, 'joakimbl', '2015-08-30T06:32:31Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1256', '37', '12705', 'docs(CHANGELOG): Add breaking change notice for issue 12506', '', '7', null, null, 'lgalfaso', '2015-08-30T11:59:26Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1257', '37', '12708', 'fix($parse): `assign` returns the new value', 'The `.assign` function returns the new value.\r\nThe version with csp enabled already has this behavior.\r\n\r\nCloses #12675', '2', null, null, 'lgalfaso', '2015-08-30T17:24:13Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1258', '37', '12709', 'Fixing problems with large numbers and formatNumber', 'Use a simple check to prevent the decimal rounding code doesn\'t try to round integers. This prevents formatNumber from returning NaN for numbers that fit the criteria described in #12707.\r\n\r\nTests show it working with numbers lower and upper limit numbers as well as the example from the above issue.\r\n\r\nFixes #12707\r\nFixes #8674\r\n\r\n', '7', null, null, 'danprince', '2015-08-30T17:33:13Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1259', '37', '1271', 'docs(api): fix typo on home page', 'Refference -> Reference', '1', null, null, 'exclsr', '2012-08-16T07:50:03Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1260', '37', '12710', '(docs)remove dead link', 'This removes a dead link (https://bitbucket.org/alexg/syntaxhighlighter/issues/177/superfluous-vertical-scrollbars-in-chrome) which linked to an issue on Bitbucket that no longer exists due to the project moving to GitHub.', '5', null, null, 'MWGitHub', '2015-08-30T21:59:07Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1261', '37', '12712', 'fix(docs): fix typo \"Hasbang\"', '', '3', null, null, 'oddui', '2015-08-31T05:58:11Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1262', '37', '12715', 'Troubleshooting instructions for step 7', 'This shows troubleshooting instructions as in [step 11](https://github.com/angular/angular.js/blob/master/docs/content/tutorial/step_11.ngdoc#L49) of the tutorial.', '3', null, null, 'tyrasd', '2015-08-31T08:56:07Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1263', '37', '12716', 'docs($animate): Consistent naming', 'In the description of the example, you use `element` to refer to the container parameter and `listenerFn` to refer to the callback parameter.', '3', null, null, 'evermax', '2015-08-31T11:03:08Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1264', '37', '12717', 'docs(error/unpr): Adding hint about ngStrictDi', 'The unknown provider error often happens when code is minified and one did not use the correct syntax that supports minification. It\'s frustrating to have to hunt for a bug in minified code, so adding the simple hint that `ngStrictDi` will tell you what is wrong in the original code will save you quite some trouble.', '0', null, null, 'toebu', '2015-08-31T15:21:14Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1265', '37', '12721', 'fix(ngAnimate): allow animations if the body node is changed', 'If an ngIf is placed on the body then resulting node is different from\r\nwhat was there originally and that causes issues with ngAnimate. This\r\npatch fixes this.\r\n\r\nCloses #12366', '2', null, null, 'matsko', '2015-08-31T18:31:38Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1266', '37', '12722', 'chore(scripts/publish): get dist-tag from package.json', 'This change would need to be cherry-picked to the previous version branches (with suitable change to package.json) to prevent releases from them breaking npm dist-tags.\r\n\r\nWhere does this need to be documented? New big version release tasks? Contributor documentation?', '4', null, null, 'petebacondarwin', '2015-08-31T21:21:11Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1267', '37', '12725', 'fix($animate): invalid CSS class names should not break subsequent elements', 'The postDigest handler was not being added if the first element in\r\nto modify the CSS classes contained invalid CSS class names. This meant\r\nthat subsequent valid CSS class changes were not being handled since we\r\nwere not then adding the handler for those correct cases.\r\n\r\nCloses #12674', '10', null, null, 'petebacondarwin', '2015-09-01T01:31:21Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1268', '37', '12727', 'Adjusted example', 'example was using disabled which always disable the button, correct should be ng-disabled', '2', null, null, 'MrPeanuts', '2015-09-01T13:31:22Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1269', '37', '12728', 'docs(faq): clarify browser support', 'The info about supported browsers is taking from the Travis tasks.\r\n\r\n/cc @petebacondarwin ', '6', null, null, 'Narretz', '2015-09-01T15:38:12Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1270', '37', '12729', '<feat>($location): add post parse app url hook', 'Add a hook into the end of the $location service\'s parse app url method. The hook allows the locationObj to be repaired in the event it gets\r\ndamaged by some external source (such as an SSL VPN appliance).\r\n\r\nCloses #8905', '1', null, null, 'mikepugh', '2015-09-01T20:30:54Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1271', '37', '12736', 'feat($location): add post parse app url hook', 'Add a hook into the $location service\'s parse app url method. The hook allows the locationObj to be\r\nrepaired in the event it gets damaged by some external source (such as an SSL VPN appliance).\r\n\r\nCloses #8905', '2', null, null, 'mikepugh', '2015-09-02T14:50:17Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1272', '37', '12738', 'A new directive for the focusout event.', 'I could not find a built in directive for the focusout event, so here it is.\r\n\r\nThe problem I was facing was to close a \"layer\" (typically a small popup) when clicking outside of the directive\'s markup. The idea I had and initially solved it with, was to use ngBlur and check the $event.relatedTarget to see if it was known to the scope of the directive\'s html elements or not.\r\nHowever when using Internet Explorer the relatedTarget does not seem to be set. So the closest thing to the blur event is a focusout event, which solved this particular problem for me.\r\n\r\nPlease let me know if you have any other solution to this problem, otherwise I believe a focusout directive in AngularJs wouldn\'t hurt :-)', '1', null, null, 'drakir', '2015-09-02T16:28:38Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1273', '37', '12740', 'docs(tutorial/12 - Applying Animations): describe your change...', 'Grammar improved for clarity', '5', null, null, 'spoonraker', '2015-09-02T20:13:16Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1274', '37', '12742', 'WIP - DO NOT MERGE - feat($compile): multiple transclusion via slots', 'This is a really rough and ready spike of multiple transclusion via slots.\r\n\r\nThere are LOTS of issues, primarily around the way that transclude functions are created, wrapped and passed around often hidden inside closures with access to a variety of other variables.\r\nIt is also notable that the transclude function, that gets passed to the directive\'s controller and link functions, is incompatible with the transclude functions (even the bound ones) that are passed around internally, since the former allows the scope parameter to be missing.\r\nFor this to be implemented properly I fear we may need to completely refactor large parts of the way transclusion is passed around inside the compiler.\r\n\r\nAlso it doesn\'t currently work for `element` transclusion.\r\n\r\nThis is an alternative strategy to #11736', '17', null, null, 'petebacondarwin', '2015-09-02T23:07:02Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1275', '37', '12745', 'fix($httpBackend): send `null` when post-data is undefined', 'IE11 (and maybe others) converts an `undefined` argument to `xhr.send()` to string (`\'undefined\'`) for certain request methods (e.g. DELETE). This causes the request to appear having a body, when it shouldn\'t.\r\n\r\nFixes #12141\r\nFixes #12739', '4', null, null, 'gkalpak', '2015-09-03T08:25:49Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1276', '37', '12746', 'fix(ngJq): properly detect when `ng-jq` is empty', 'Previously, even when `ng-jq` was empty (which should force the use of jqLite), Angular tried to find jQuery on `window[\'\']`. If it didn\'t find anything there, it would fall back to jqLite (as expected).\r\n\r\nNonetheless, trying to access `window[\'\']` calls `getElementById(\'\')`, which issues a warning in Firefox (maybe others).\r\n\r\nThis fix properly detects when `ng-jq` is empty and avoids trying to access `window[\'\']`.\r\n\r\nFixes #12741', '5', null, null, 'gkalpak', '2015-09-03T09:12:19Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1277', '37', '12753', 'G3 v1 2', '.', '4', null, null, 'AshrafSharf', '2015-09-04T01:24:47Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1278', '37', '12758', 'docs(): clarify scope types and controllerAs', '', '4', null, null, 'Narretz', '2015-09-04T11:26:43Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1279', '37', '12759', 'fix(jqLite): properly handle dash-delimited node names in `jqLiteBuidFragment`', 'Fixes #10617', '2', null, null, 'gkalpak', '2015-09-04T13:16:26Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1280', '37', '12762', 'update angular-mocks.js url matching', 'url matching was incorrect and updated. if all query parameters in url are in different order, it should still match', '4', null, null, 'deodeveloper', '2015-09-04T16:49:44Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1281', '37', '12765', 'fix($Angular): fix length to define constants', 'length var is constant.\r\nTherefore, this commit replaces length var statements with const statements', '2', null, null, 'JungMinu', '2015-09-05T15:31:30Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1282', '37', '12766', 'fix($interpolate): use const to define constants', 'startSymbolLength,endSymbolLength are constants.\r\nTherefore, this commit replaces length var statements with const statements', '1', null, null, 'JungMinu', '2015-09-05T15:43:20Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1283', '37', '12767', 'docs(guide/Directives): improve \'docsTabsExample\'', 'docs(guide/Directives): improve \'docsTabsExample\'\r\n\r\nslightly modify [Creating Directives that Communicate Example](https://docs.angularjs.org/guide/directive#creating-directives-that-communicate) \r\nso that it uses [Inline Array Annotation](https://docs.angularjs.org/guide/di#inline-array-annotation) and so is compatible with\r\n[Using Strict Dependency Injection](https://docs.angularjs.org/guide/di#using-strict-dependency-injection)\r\n(was hard to find a good/clear example how to apply the inline array annotation in such a case..)', '0', null, null, 's-light', '2015-09-05T16:04:41Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1284', '37', '12768', 'docs($compile): clarify re \'sharing\' controllers', 'The current wording may make the reader erroneously think that one controller can belong to multiple directives.', '0', null, null, 'thorn0', '2015-09-05T17:49:33Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1285', '37', '12774', 'feat($resource): expose the transformed data on the resource objects', 'This allows the user to access meta data that may have been returned in\r\nthe response data, which would otherwise be lost by the manipulation\r\nof the $resource service.\r\n\r\nFixes #6359', '7', null, null, 'petebacondarwin', '2015-09-07T09:41:42Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1286', '37', '12777', 'fix(ngMock/$httpBackend): fail if a url is provided but is `undefined`', 'While the `url` parameter is optional for `$httpBackend.when`,\r\n`$httpBackend.expect` and related shortcut methods, it should not have the\r\nvalue of `undefined` if it has been provided.\r\n\r\nThis change ensures that an error is thrown in those cases.\r\n\r\nCloses #8442\r\nCloses #8462\r\nCloses #10934\r\n\r\nBREAKING CHANGE\r\n\r\nIt is no longer valid to explicitly pass `undefined` as the `url` argument\r\nto any of the `$httpBackend.when...()` and `$httpBackend.expect...()`\r\nmethods.\r\n\r\nWhile this argument is optional, it must have a defined value if it is\r\nprovided.\r\n\r\nPreviously passing an explicit `undefined` value was ignored but this\r\nlead to invalid tests passing unexpectedly.', '0', null, null, 'petebacondarwin', '2015-09-07T13:04:10Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1287', '37', '12778', 'Merge pull request #1 from angular/master', 'docs(CHANGELOG): add changes for 1.4.5', '1', null, null, 'iamcap', '2015-09-07T13:18:36Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1288', '37', '1278', 'ngRepeat\'s watch() was called too frequently', '', '1', null, null, 'AlexGalays', '2012-08-20T20:36:33Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1289', '37', '12781', 'fix(limitTo): start at 0 if `begin` is negative and exceeds input length', 'Previously, specifying a negative `begin` whose abs value exceeds the input\'s length, would behave unexpectedly (depending on the value of `limit` relative to `begin`). E.g.:\r\n\r\n```\r\nlimitToFilter(\'12345\', 3, -7) === \'1\'\r\n// but\r\nlimitToFilter(\'12345\', 10, -7) === \'123\'\r\n```\r\n\r\nThis commit fixes the unexpected behaviour, by setting `begin` to 0 in the aforementioned cases. Thus, the previous examples become:\r\n\r\n```\r\nlimitToFilter(\'12345\', 3, -7) === limitToFilter(\'12345\', 3, 0) === \'123\'\r\n// and\r\nlimitToFilter(\'12345\', 10, -7) === limitToFilter(\'12345\', 10, 0) === \'12345\'\r\n```\r\n\r\nFixes #12775', '6', null, null, 'gkalpak', '2015-09-08T09:13:41Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1290', '37', '12782', 'docs(CONTRIBUTING.md): mention gitter community', '', '1', null, null, 'gkalpak', '2015-09-08T09:22:49Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1291', '37', '12783', 'WIP: Feat: watch ngModel with object equality via ngModelOptions', 'This is a first draft for watching models with object equality. \r\nUse cases:\r\n- models are collections (ngList / multiple) (also the next step after this)\r\n- models are objects, and only part of objects change\r\n\r\nNotes:\r\n- we cannot use watch with third param set to true / watchCollection due to the way the model watch currently works. Basically, all actions happen inside the watch fn, not the action fn. The added test shows why.\r\n- the current implementation copies the model if the deepWatch is true, so scope model is never === $modelValue; and so changes can be detected with equals(). I\'m not sure if this is the most performant way, or actually the same as having a watch with objectEquality = true. (Note: There are some PRs for making copy faster)\r\n\r\nFor ngList / (select, url, email) multiple to use deepWatch, I can think of two ways: \r\n\r\n- Let it set $$options.deepWatch inside the modelController to true, before the options are evaluated inside ngModelOptions. However, (even with https://github.com/angular/angular.js/pull/10922,) we would need to extend the options (once more), so that what is preset on the ctrl gets merged with the actual ngModelOptions\r\n- Set a special property on the controller, such as `$isCollection`, that tells the controller to use deepWatch. This could still be overruled if deepWatch is explicitly set to `false`. This is however not very obvious for people who have their own controls. ngModelOptions would centralize everything.', '6', null, null, 'Narretz', '2015-09-08T10:57:33Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1292', '37', '12785', 'fix(input): ignore min/max if they are empty on all input types', 'When the min/max attributes are empty (i.e. `attrs.min/max === \'\'`), there should be no min/max validation applied (i.e. all values should be valid wrt min/max). This works correctly for `input[number]`, but not for date input family (`input[date/datetime-local/time/week/month]`).\r\n\r\nIn the case on `input[number]`, an empty string for `attrs.min/max` is translated to `undefined` for `minVal/maxVal` and a check for `isUndefined(minVal/maxVal)` ensures that no min/max validation takes place.\r\nFor the data input family, an empty string for `attrs.min/max` is translated to `NaN` (by `parseDate()`), so an additional check (for `isNaN(minVal/maxVal)`) is required.\r\n\r\nFixes #12363', '4', null, null, 'gkalpak', '2015-09-08T12:31:03Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1293', '37', '12786', 'fix(angular.copy): support copying XML nodes', 'Closes #5429', '12', null, null, 'petebacondarwin', '2015-09-08T12:55:56Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1294', '37', '1279', 'fix issue #1212. don\'t ignore url param when === 0', 'when a param value was 0 (or false) it was ignored and removed from url.\nafter this fix that only happens if the value is undefined or null.', '3', null, null, 'benjamine', '2012-08-20T22:48:15Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1295', '37', '12790', 'Fix documentation formatting for angular.version', 'Fixes summary description of angular.version on https://docs.angularjs.org/api/ng#object\r\nThe property description is best kept for the detailed page.\r\n![screen shot 2015-09-09 at 12 50 01 am](https://cloud.githubusercontent.com/assets/1273012/9745017/f3adc2ae-568c-11e5-8836-abbf17c1044b.png)\r\n', '4', null, null, 'akshayagarwal', '2015-09-08T19:22:04Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1296', '37', '12792', 'chore(check-node-modules): make check/reinstall node_modules work across platforms', 'The previous implementations (based on shell scripts) threw errors on Windows, because it was not able to `rm -rf` \'node_modules\' (due to the 255 character limit in file-paths).\r\n\r\nThis implementation works consistently across platforms and is heavily based on \'https://github.com/angular/angular/blob/3b9c08676a4c921bbfa847802e08566fb601ba7a/tools/npm/check-node-modules.js\'.\r\n\r\nFixes #11143\r\nCloses #11353', '33', null, null, 'gkalpak', '2015-09-09T00:58:03Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1297', '37', '12794', 'Set toggleClass to be compatible with jQuery 1.4', 'Allow toggleClass to accept a function as first argument.\r\n\r\nResolves https://github.com/angular/angular.js/issues/12793', '1', null, null, 'philBrown', '2015-09-09T02:14:26Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1298', '37', '12799', 'fix(jqLite): properly deregister the listeners for `mouseenter/mouseleave`', 'Fixes #12795', '0', null, null, 'gkalpak', '2015-09-09T11:56:32Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1299', '37', '1280', 'Docs GAE', '\n', '2', null, null, 'IgorMinar', '2012-08-20T22:51:53Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1300', '37', '12804', 'Changed eras to secular terms.', '', '4', null, null, 'komakino', '2015-09-09T15:17:02Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1301', '37', '12805', 'Update Readme for consistency', 'Throughout the documentation, Angular.js is written in a multitude of ways, e.g. Angularjs, Angular.js, Angular.JS, AngularJS. This may lead to confusion. For the sake of consistency, I edited this README to use Angular.js.', '2', null, null, 'jyeg', '2015-09-10T00:40:44Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1302', '37', '12810', 'docs(ngInit): fix typo (\"unnecesary\" --> \"unnecessary\")', '', '2', null, null, 'gkalpak', '2015-09-10T12:04:45Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1303', '37', '12814', 'fix($browser/$location): add a workaround of iOS9 regression in UIWeb…', '…View\r\n\r\nThis works around: https://openradar.appspot.com/22186109\r\n\r\nCloses #12241\r\nRelated to driftyco/ionic#4082', '2', null, null, 'IgorMinar', '2015-09-10T17:08:08Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1304', '37', '12817', 'feat(ngAnimate): introduce `$animate.flush` for unit testing', '', '5', null, null, 'matsko', '2015-09-10T20:05:58Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1305', '37', '12818', 'feat(ngModel): public method to force run model -> view binding pipeline', 'Added ngModel.NgModelController#$forceModelToViewBound.\r\nIt triggers $formatters pipeline, and in case of changed $viewValue,\r\nruns validators and update the UI without changing actual model.\r\nBasically it simulates fake model value change.\r\n\r\nCloses #12815', '4', null, null, 'aleksanyan', '2015-09-10T22:23:53Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1306', '37', '12819', 'fix($browser): handle async updates to location', 'This is hopefully the fix that will go into master.\r\nWe will publish a patch for older versions separately.\r\n\r\nCloses #12241', '1', null, null, 'petebacondarwin', '2015-09-10T22:24:29Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1307', '37', '12824', 'docs($interpolate): Missing bracket in first example', '', '3', null, null, 'indrimuska', '2015-09-11T06:59:21Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1308', '37', '12826', 'docs(ngList): Fix typo in example description', '', '4', null, null, 'ollanta', '2015-09-11T13:03:18Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1309', '37', '12829', 'fix(ngAnimateMock): $animate.flush should work for looping animations', '', '1', null, null, 'matsko', '2015-09-11T20:51:46Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1310', '37', '1283', 'handle spaces between () and argument names in functions when autowiring...', '... in Chrome\n\nTurns out that you\'ll get weird errors in Chrome if you define a function like this (without providing explicit injections):\nfunction ( $httpBackend ) {\n\n}\n', '3', null, null, 'recht', '2012-08-21T14:36:41Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1311', '37', '12830', 'feat(ngList): add support for preserving blank tokens', 'Added feature to allow preserving blank tokens when 2 delimiters are back to back. Previously, the blank tokens would be dropped. ', '2', null, null, 'mkalmanson', '2015-09-11T21:41:17Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1312', '37', '12831', 'refactor: use isDefined and isUndefined consistently', 'Fix any place that x == undefined or x != undefined\r\nto use isUndefined and isDefined instead\r\n\r\nCloses #4365', '2', null, null, 'lucastetreault', '2015-09-12T04:29:52Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1313', '37', '12832', 'fix(ngResource): compatible with the primitive single value in standard json', 'wrap response into {_value:response} format when the response is a single value of json\r\n\r\nsee #12787', '3', null, null, 'kuitos', '2015-09-13T04:03:45Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1314', '37', '12833', 'fix($parse): throw error when accessing a restricted property indirectly', 'When accessing an instance thru a computed member and the property is an array, then also check the string value of the array.', '3', null, null, 'lgalfaso', '2015-09-13T12:17:18Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1315', '37', '12834', 'Typo/mismatch fix', 'There is an mismatch for status in controller and test. \r\nIn controller $scope.status = \'ERROR!\' and in test we expect($rootScope.status).toBe(\'Failed...\') so the test will fail;', '6', null, null, 'toastman', '2015-09-13T15:06:51Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1316', '37', '12835', 'One way binding for objects in directive', 'While I was trying to build a modal with angular, i ended up with the problem of changing something in the modal pop-up and the changes were sync-ed with the original object.\r\n\r\nInstead of doing all the work in each directive for copying the objects, i decided to extend the directive\'s operators to support one-way object binding.\r\n\r\nI would like to also discuss about these changes if they are between the guidelines of angular js so we don`t pollute it with unwanted code.\r\n\r\nThis was tested on version 1.2.16(code is a little bit different there) and code was adjusted for this version.\r\n\r\nIf this gets approved by the community, I`ll upgrade my project to the latest version and have it tested fully.', '12', null, null, 'aoancea', '2015-09-13T17:06:47Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1317', '37', '12837', 'docs(CHANGELOG): fix typo', 'a single quote typo breaks the js highlight', '0', null, null, 'arliang', '2015-09-14T07:29:47Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1318', '37', '12838', 'Merge remote-tracking branch \'angular/master\'', null, '2', null, null, 'tylvke', '2015-09-14T08:11:04Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1319', '37', '12839', 'fix(dateFilter): follow the CLDR on pattern escape sequences', 'When there are two single quotes \"\'\'\" (quotes for clarification) that are not part of an escape sequence, then this sequence should be handled as one single quote. See http://www.unicode.org/reports/tr35/tr35-dates.html#Date_Format_Patterns second and forth examples', '0', null, null, 'lgalfaso', '2015-09-14T08:42:49Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1320', '37', '12840', 'fix(ngOptions): throw if ngModel is not present', 'BREAKING CHANGE:\r\n`ngOptions` will now throw if `ngModel` is not present on the `select`\r\nelement. Previously, having no `ngModel` let `ngOptions` silently\r\nfail, which could lead to hard to debug errors. The change should\r\ntherefore not affect any applications, as it simply makes the\r\nrequirement more strict and alerts the developer explicitly.', '1', null, null, 'Narretz', '2015-09-14T09:19:56Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1321', '37', '12843', 'feat($parse): allow forcing expensive checks at the provider level', 'Allow forcing expensive checks at the $parse provider level', '4', null, null, 'lgalfaso', '2015-09-14T10:51:38Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1322', '37', '12844', 'add standalone months to ngLocale', 'Cleaned up version of #3744. We could also add STANDALONESHORTMONTHS, but I don\'t think that\'s worth it.', '4', null, null, 'Narretz', '2015-09-14T10:59:25Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1323', '37', '12848', 'feat(ngModel): provide ng-empty and ng-not-empty CSS classes', 'I believe that this feature should be enough to fix #10050', '18', null, null, 'petebacondarwin', '2015-09-14T13:51:22Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1324', '37', '12850', 'fix(filters): ensure `formatNumber` observes i18n decimal separators', 'Closes #10342', '5', null, null, 'petebacondarwin', '2015-09-14T20:25:04Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1325', '37', '12852', 'fix(jqLite) - toggleClass & removeClass reflect documentation', 'Updates removeClass to accept function in spec with 1.9 (current) jQuery docs.\r\nUpdates removeClass to accept no parameters in spec with 1.9 (current) jQuery docs.\r\nUpdates toggleClass to accept function in spec with 1.9 (current) jQuery docs.\r\nUpdates toggleClass to accept no parameters in spec with 1.9 (current) jQuery docs.\r\nProvides tests for all changes.\r\n\r\nfixes angular/angular.js#12793\r\nfixes angular/angular.js#12851', '10', null, null, 'JordanMajd', '2015-09-14T20:46:50Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1326', '37', '12854', 'fix($locale): change default country for \'pt\' locale', 'The default country for the locale `pt` is Portugal. The content of the file `angular-locale_pt.js` should be similar to `angular-locale_pt-pt.js` instead of `angular-locale_pt-br.js`.', '3', null, null, 'samaxes', '2015-09-14T23:20:50Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1327', '37', '12857', 'docs(compare-master-to-stable.js): fix typo (comands -> commands)', '', '0', null, null, 'magee', '2015-09-15T04:18:39Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1328', '37', '12858', 'docs(gdocs.js): fix typo (Eror -> Error)', '', '0', null, null, 'magee', '2015-09-15T04:24:21Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1329', '37', '12860', 'fix($parse): block assigning to fields of a constructor', 'Throw when assigning to a field of a constructor.', '9', null, null, 'lgalfaso', '2015-09-15T13:19:23Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1330', '37', '12862', 'fix($location): $locationchangesuccess not fires with browser back when path ends with \'/#\'. #12175', 'In line #930, $location.absUrl() returns \"path/\", and newUrl returns \"path/#\". with browser back, so if condition is positive and returns. For fix I used trimEmptyHash function to trim # from newUrl, the same function is used in browser forward scenario @line#947. ', '7', null, null, 'rrsivabalan', '2015-09-15T18:30:36Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1331', '37', '12864', 'fix(ngAnimate): callback detection should only use RAF when necessary', 'Callbacks are detected within the internals of ngAnimate whenever an\r\nanimation starts and ends. In order to allow the user to set callbacks\r\nthe callback detection needs to happen during the next tick. Prior to\r\nthis fix we used `$$rAF` to do the tick detection, however, with this\r\npatch we intelligently use `$$postDigest` to do that for us and then\r\nonly issue a call to `$$rAF` if necessary.', '8', null, null, 'matsko', '2015-09-16T00:38:03Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1332', '37', '12866', 'fix(ngClick): prevent soft keyboard from disappearing on input click', 'Currently ngClick calls blur on all elements and this causes keyboards\r\non touch devices to bounce and sometimes not appear. This is a fix\r\nfor #11358 and should allow input fields to keep the keyboard visible\r\nwithout bouncing in and out of view or never appearing.\r\n\r\nCloses #11358', '1', null, null, 'steven10172', '2015-09-16T02:50:17Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1333', '37', '12867', 'fix(ngClick): prevent soft keyboard from disappearing on input click', 'Currently ngClick calls blur on all elements and this causes keyboards\r\non touch devices to bounce and sometimes not appear. This is a fix\r\nfor #11358 and should allow input fields to keep the keyboard visible\r\nwithout bouncing in and out of view or never appearing.\r\n\r\nCloses #11358', '5', null, null, 'steven10172', '2015-09-16T03:22:20Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1334', '37', '12868', 'docs(select): correct sample file text', '', '0', null, null, 'jayspringate', '2015-09-16T03:44:12Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1335', '37', '1287', 'docs(tutorial): fix typo in step_00', 'Just removed an extra comma. No big deal.', '1', null, null, 'exclsr', '2012-08-23T08:02:57Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1336', '37', '12871', 'WIP: transclude element and template elements', 'DO NOT MERGE\r\nThis PR is just to open the discussion to get some feedback if this would be an interesting feature.\r\n\r\n\r\nWhen a directive of type transclude element is on a <template> element, then the transclude function contains the content of the <template> element and the <template> element is replaced with a comment node.', '0', null, null, 'lgalfaso', '2015-09-16T20:59:21Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1337', '37', '12873', 'Travis upgrade', '', '2', null, null, 'petebacondarwin', '2015-09-17T08:53:35Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1338', '37', '12875', 'Essential note when cloning into Angular repository', '1) First change - Whenever cloning into directory there are chances of some users using \"sudo\" without knowing what it does exactly and what\'s the purpose of using sudo, leading them into a confusion and this lead to changes in git config and permission issues of which users may not be able to figure out at one spot.\r\n2) Second Change- There are chances of version unstability issues in node which at times causes npm error and warnings while installing packages, I too had undergone some issues with node version conflicts at times, users who are not aware of this will be benefited with a Note prior.', '11', null, null, 'SibuStephen', '2015-09-17T10:24:00Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1339', '37', '1288', 'Update src/ng/route.js', 'aftre -> after', '1', null, null, 'johnlindquist', '2012-08-23T19:02:44Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1340', '37', '12881', 'Animation Fixes', 'Closes #12874\r\nCloses #12872', '6', null, null, 'matsko', '2015-09-17T23:55:42Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1341', '37', '12882', 'fix(ngForm): don\'t block submit when method=dialog', 'When a form\'s method is set to \"dialog\" it does not post to a server but instead closes the nearest parent <dialog> element. An action is not required.\r\n\r\nhttps://html.spec.whatwg.org/multipage/forms.html#submit-dialog', '10', null, null, 'dpogue', '2015-09-18T05:39:34Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1342', '37', '12885', 'Reword for grammar', 'Reworded to correct grammar.', '2', null, null, 'earthrid', '2015-09-18T11:11:17Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1343', '37', '12887', 'feat(ngMock): invoke nested calls to module immediately', 'before this change calling a nested module was just ignored, but it makes sense that ppl might use module() inside some helper function in order to get providers from DI and those helper methods should work no matter if they are called before or during the injector creation.', '4', null, null, 'shahata', '2015-09-18T13:37:38Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1344', '37', '12888', 'fix(ngOptions): allow falsy values as option group identifiers', 'Now one can use `\'\'`, `0`, `false` and `null` as option groups. Previously\r\nall of these falsy values were treated as the option not being a member of\r\na group.\r\n\r\nCloses #7015\r\nCloses #7024\r\n\r\nBREAKING CHANGES\r\nIf your data contains falsy values for option groups, then these options\r\nwill now be placed into option groups. Only option groups that are `undefined`\r\nwill result in the option being put in no group. If you have data that\r\ncontains falsy values that should not be used as groups then you must\r\nfilter the values before passing them to `ngOptions` converting falsy\r\nvalues to `undefined`.', '0', null, null, 'petebacondarwin', '2015-09-18T14:56:56Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1345', '37', '12889', 'style(src): delete whitespace and use single quotes', 'This change edits syntax for code consistency.\r\n\r\nIt removes whitespace to match the style of the rest of the code,\r\nand changes double quotes to single quotes to conform with\r\nGoogle\'s JavaScript Style Guide.', '0', null, null, 'livvielin', '2015-09-18T17:06:42Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1346', '37', '12890', 'fix(injector): support arrow functions with no parenthesis', '', '12', null, null, 'shahata', '2015-09-18T22:37:22Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1347', '37', '12892', 'fix($parse): do not convert to string computed properties multiple times', 'Do not convert to string properties multiple times.', '12', null, null, 'lgalfaso', '2015-09-19T13:22:14Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1348', '37', '12893', '[Style] Docs gulpfile.js - Spacing Consistency', 'Updated gulpfile.js in Docs so that spacing is consistency.', '0', null, null, 'kamronbatman', '2015-09-19T16:57:43Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1349', '37', '12895', 'fix(injector): support arrow functions with no parenthesis', 'I initially upgraded jscs so it will parse es6 syntax correctly, but since eventually I used eval in order to not break old browsers, it is not really needed. I think we can upgrade jscs anyway, so I\'m leaving this commit as is.', '1', null, null, 'shahata', '2015-09-20T10:55:32Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1350', '37', '12896', 'Unicode identifiers at $parse', 'This PR has two commits:\r\n* Adds the ability to use user-defined functions for the identifier start and identifier continue characters for an identifier in an Angular expression\r\n* Adds a new optional module that extends $parse to allow all ES6 identifiers in an Angular expression', '21', null, null, 'lgalfaso', '2015-09-20T20:17:15Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1351', '37', '12898', 'docs(guide/Modules): updated style guide link', 'the blog posted linked reccomends john papa\'s github repo.', '3', null, null, 'marianoc84', '2015-09-20T23:12:21Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1352', '37', '12899', 'Fix call angular.isUndefined in $cacheFactory doc', '', '10', null, null, 'idoo', '2015-09-21T07:03:44Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1353', '37', '129', 'Date filter should support ISO 8601 input', 'date filter now supports input like 2009-12-31T23:00:00Z\r\n\r\nI just wonder if we need to support input with milliseconds in the string too.\r\n\r\nThere is also a bunch of other fixes and improvements in this branch, please do not squash.\r\n\r\nCloses #125', '10', null, null, 'IgorMinar', '2010-11-07T06:58:40Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1354', '37', '12901', 'refactor(ngScenario): merge duplicate callback functions of StepFailu…', '…re and StepError\r\n\r\nThe callback functions of StepFailure and StepError share the same functionality except that they are different in string literals. They can be merged into one to reduce maintenance efforts.\r\n\r\nRemarks:\r\nI am a student who is studying code clones. I try to refactor the code clones in your system and propose the following changes. The proposed changes have passed all unit tests on my machine. Please let me know what you think.\r\n\r\nIn case the proposed changes do not match your coding style or contain any issues, I would appreciate it if you can let me know how I can improve them. Thank you.', '6', null, null, 'kencheung', '2015-09-21T13:43:33Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1355', '37', '12902', 'fix(input): re-validate when partially editing a date-family input', 'In date-family input types (`date`, `datetime-local`, `month`, `time`, `week`), the user can interact with parts of the value (e.g. year, month, hours etc) independently. Neverhteless, the actual value of the element is empty (`\'\'`) unless all parts are filled (and valid).\r\n\r\nThus, editing a signle part of the value may result in a change in the validity state of the `<input>` (see below), without an accompanying change in the actual value of the element. In such cases, no `input` event is fired by the browser to inform Angular of the change (and the need to\r\nre-validate).\r\n\r\n---\r\nThe following scenario describes a series of interactions that would run into the problem (on a browser that supports the `date` input type):\r\n\r\n1. Initially empty field.\r\n - `input.value`: \'\'\r\n - `input.validity`: {valid: true, badInput: false, ...}\r\n\r\n2. The user fills part of the value (e.g. the year) using the keyboard.\r\n - `input.value`: \'\'\r\n - `input.validity`: {valid: false, badInput: true, ...}\r\n - \'input\' event: Not fired (since `input.value` hasn\'t changed)\r\n\r\n3. The user fills the value completely (using either the keyboard or the\r\ndate-picker).\r\n - `input.value`: \'<some-valid-value>\'\r\n - `input.validity`: {valid: true, badInput: false, ...}\r\n - \'input\' event: Fired\r\n\r\n4. The user deletes part of the value (e.g. the year) using the keyboard.\r\n - `input.value`: \'\' (since a partial value is invalid)\r\n - `input.validity`: {valid: false, badInput: true, ...}\r\n - \'input\' event: Fired\r\n\r\n5. The user deletes all parts of the value using the keyboard (i.e. clears the field).\r\n - `input.value`: \'\'\r\n - `input.validity`: {valid: true, badInput: false, ...}\r\n - \'input\' event: Not fired (since `input.value` hasn\'t changed)\r\n\r\nThe problematic cases are (2) and (5), because there is a change in the validity state, but no \'input\' event is fired to inform Angular of that change and the need to re-validate.\r\n\r\n---\r\nThis commit fixes the issue by firing an `input` event on `keyup`, correctly triggering re-validation.\r\n\r\nFixes #12207', '21', null, null, 'gkalpak', '2015-09-21T15:53:09Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1356', '37', '12903', 'fix(ngMessages): prevent race condition with ngAnimate', 'If `ngMessage` tried to add a message back in that was about to be removed\r\nafter an animation, the NgMessageController got confused and tried to detach\r\nthe newly added message, when the pending node was destroyed.\r\n\r\nThis change applies a unique `attachId` to the message object and its DOM\r\nnode when it is attached. This is then checked when a DOM node is being\r\ndestroyed to prevent unwanted calls to `detach`.\r\n\r\nCloses #12856', '6', null, null, 'petebacondarwin', '2015-09-21T15:56:15Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1357', '37', '12905', 'Feat: parse / format / validation for ngModel collection values', 'Depends on https://github.com/angular/angular.js/pull/12783\r\nThis change has two goals:\r\n1. introduce a way to specify that ngModel handles a collection instead of a single value\r\n2. introduce support for parsing, formatting and validating (pfv) single collection items instead of the whole collection via a new API.\r\n3. make ngList use $isCollection to enable view updates when part of the model collection changes\r\n\r\nRegarding 1), it\'s currently a simple property $isCollection on the modelCtrl that does two things: it activates the deepWatch behavior, and informs the pfv that the model is a collection. \r\nTODO: move $isCollection to ngModelOptions?\r\n\r\nRegarding 2). There\'s a new API for pfv that makes it possible to decide if the whole model or single collection items are handled. These are simple classes that are added to the $parsers, $formatters pipelines respectively $validators collection as before. Legacy pfv continue to receive the whole collection as values for backward compat.\r\nTODO: expose NgModelTransform, NgModelValidator to the public', '0', null, null, 'Narretz', '2015-09-21T18:23:47Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1358', '37', '12907', 'wip: module.component helper', 'This is taken right from https://github.com/angular/angular/blob/master/modules/angular1_router/test/integration/lifecycle_hook_spec.js#L451-L476\r\n\r\nThis only includes functionality for adding route configuration and lifecycle hooks to directive components, and does not include best practices or expose all of the options for directives.\r\n\r\nI\'m going to hand this off to @shahata to finish. It needs tests, docs, and improvements from the looooong thread in #10007.\r\n\r\nCloses #10007 \r\n', '1', null, null, 'btford', '2015-09-21T20:17:14Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1359', '37', '12909', 'docs: fix link formatting on directive documentation', 'The link was showing up as [text](link) rather than actually displaying the formatted link. I removed the bold formatting so it display as a link again.', '3', null, null, 'mlh758', '2015-09-21T22:40:25Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1360', '37', '1291', 'Support multiple ng-view on a page and nested ng-view', 'Please disregard the two old commits in this PR. I\'m not sure what I did, I\'m not really used to git. \n\nThe only commit that matters is 301cc9b.', '8', null, null, 'stephanebisson', '2012-08-25T07:52:23Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1361', '37', '12911', 'Note for users', 'An essential note for users using Linux distribution.', '0', null, null, 'SibuStephen', '2015-09-22T06:31:32Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1362', '37', '12914', 'Add missing mozRequestAnimationFrame fallback', 'see #6535', '5', null, null, 'hypery2k', '2015-09-22T09:16:12Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1363', '37', '12918', 'WIP - feat(ngPattern): parse \"stringified\" regular expressions to `RegExp` Objects', 'Previously, `ngPattern`\'s expression value was expected to be a `RegExp` Object. This made it difficult to use string representations of regular expressions (e.g. fetched from the backend) as values for `ngPattern` expressions.\r\n\r\nThis commit adds the ability to recognize and parse string values into `RegExp` Objects. If the value cannot be parsed into a `RegExp` Object, it behaaves the same as before.\r\n\r\nFixes #12913\r\n\r\n---\r\nThis is a POC to get some feedback/see what people think.\r\n\r\nTODO:\r\n\r\n- [ ] Update the docs.\r\n- [ ] Add a BC notice to the commit message (if necessary).\r\n\r\n--\r\nPossible BREAKING CHANGE:\r\n\r\nAssuming `ng-pattern=\"pat\"` and `$scope.pat = \'/123/\'`:\r\n\r\n**Before:**\r\nWould match a literal `/123/` as input value.\r\n\r\n**After:**\r\nWill be parsed into a `RegExp` and match any value containing `123`.\r\nIn order to match a literal `/123/` as input value, one can use `$scope = \'\\/123/\'`.', '0', null, null, 'gkalpak', '2015-09-22T15:17:02Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1364', '37', '12919', 'feat(ngMock): improve $httpBackend mock', 'In $httpBackend mock were no possibility to expect that specific function won\'t be called.\r\nAdded haveNotBeenCalled function to the $httpBackend mock expectation.\r\n\r\nCloses #12399', '4', null, null, 'KostyaDanovsky', '2015-09-22T18:23:47Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1365', '37', '1292', 'Update docs/content/guide/overview.ngdoc', 'Corrects video information', '2', null, null, 'csugden', '2012-08-25T13:41:32Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1366', '37', '12921', 'build(travis): gracefully shut down the sauce connect tunnel after th…', '…e tests are done running\r\n\r\nThis is to prevent sauce connect tunnel leaks.', '5', null, null, 'IgorMinar', '2015-09-23T04:29:30Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1367', '37', '12923', 'docs(guide/Conceptual Overview): change \"factory\" to \"constructor\"', 'Controller functions are treated as **constructor** functions by angular, not **factory** functions and\r\ncontrollers instances are created by instantiating their registered **constructor** function', '3', null, null, 'alirezamirian', '2015-09-23T08:42:29Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1368', '37', '12924', 'docs(guide/Conceptual Overview): change a sentence which describes ho…', 'in docs we have\r\n> we are using a function that returns the `currencyConverter` function as the factory for the service\r\n\r\nbut we are using a function **as** factory function for `currencyConverter` which returns the service instance itself, not the factory function for the service.', '0', null, null, 'alirezamirian', '2015-09-23T09:04:25Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1369', '37', '12930', 'feat($animateCss): add support for temporary styles via `cleanupStyles`', 'Some animations make use of the `from` and `to` styling only for the\r\nlifetime of the animation. This patch allows for those styles to be\r\nremoved once the animation is closed automatically within `$animateCss`.\r\n\r\n---\r\n\r\nThis demo showcases a clear need for this feature:\r\nhttp://plnkr.co/edit/uuTz4eudDvKgspOowEPm?p=preview\r\n\r\nNotice how we need to do cleanup work once the animation is complete by removing the height property:\r\n\r\n```js\r\n$animateCss(element, {\r\n from: { height: \'0px\' },\r\n to: { height: height + \'px\' }\r\n}).start().done(function() {\r\n element[0].style.removeProperty(\'height\');\r\n done();\r\n});\r\n```\r\n\r\nWith this new feature we could turn the code above into this:\r\n\r\n```js\r\n$animateCss(element, {\r\n cleanupStyles: true\r\n from: { height: \'0px\' },\r\n to: { height: height + \'px\' }\r\n});\r\n```', '14', null, null, 'matsko', '2015-09-24T00:33:44Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1370', '37', '12933', 'feat(loader): add convenience method for creating components', 'The proposed syntax:\r\n```js\r\nangular.module(\'myApp\').component(\'myComponent\', {\r\n template: \'<div></div>\', //string | Function, default: \'\'\r\n templateUrl: \'a.html\', //string | Function, default: undefined\r\n controller: MyCtrl, //string | Function, default: function(){}\r\n controllerAs: \'vm\', //string, default: component name\r\n transclude: false, //boolean | object, default: true\r\n isolate: false, //boolean, default: true (scope: {} .vs. scope: true)\r\n bindings: {abc: \'@\'}, //object, default: {} (passed to bindToController)\r\n $canActivate: MyCtrl.canActivate, //Function, default: undefined (passed to factory.$canActivate)\r\n $routeConfig: MyCtrl.routeConfig, //RouteConfig, default: undefined (passed to factory.$routeConfig)\r\n});\r\n```\r\n\r\nThis means that for the most common use-case of simple component ppl will only need to pass template, controller and bindings.\r\n\r\nI\'ve discussed this with @btford and we\'ve decided to change a couple of things from #12907:\r\n 1. Controller lifecycle hooks (onActivate, onDeactivate, etc.) are not going to be part of the component options since it makes more sense that the developer will just put those as methods of his controller (this way those methods have access to controller\'s state)\r\n 2. In case developer passes a function for template/templateUrl, this function is injectable with locals of $element and $attrs. This is important because today if you pass a function for template/templateUrl in DDO, you get element as attrs, but for DI you rely on the injectable DDO factory. In the component helper you don\'t have a factory, therefore we make all functions that can be passed in options injectable.\r\n\r\nDocs are still missing obviously, but I would like to get some feedback before moving on.\r\n\r\nCloses #10007 \r\n', '73', null, null, 'shahata', '2015-09-24T07:25:36Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1371', '37', '12934', 'feat($compile): multiple transclusion via named slots', 'In this version of multiple transclusion you specify the transclusion slots in the `transclude` property of the DDO, where the keys are the node names of transclusion zones and the values are the names of the slots in the template:\r\n\r\n```js\r\ndirective(\'minionComponent\', function() {\r\n return {\r\n restrict: \'E\',\r\n scope: {},\r\n transclude: {\r\n minion: \'minionSlot\',\r\n boss: \'bossSlot\'\r\n },\r\n template:\r\n \'<div class=\"boss\" ng-transclude=\"bossSlot\"></div>\' +\r\n \'<div class=\"minion\" ng-transclude=\"minionSlot\"></div>\' +\r\n \'<div class=\"other\" ng-transclude></div>\'\r\n };\r\n});\r\n```\r\n\r\nSo the following HTML\r\n\r\n```html\r\n<minion-component>\r\n <minion>stuart</minion>\r\n <minion>bob</minion>\r\n <span>dorothy</span>\r\n <boss>gru</boss>\r\n</minion-component>\r\n```\r\n\r\nwill be compiled and rendered to \r\n\r\n```html\r\n<minion-component>\r\n <div class=\"boss\" ng-transclude=\"bossSlot\">\r\n <boss>gru</boss>\r\n </div>\r\n <div class=\"minion\" ng-transclude=\"minionSlot\">\r\n <minion>stuart</minion>\r\n <minion>bob</minion>\r\n </div>\r\n <div class=\"other\" ng-transclude>\r\n <span>dorothy</span>\r\n </div>\r\n</minion-component>\r\n```\r\n\r\nReplaces #12742 and #11736', '44', null, null, 'petebacondarwin', '2015-09-24T09:12:58Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1372', '37', '12935', 'Added some missing functions to $log', 'I find myself using these console functions a lot, so I decided to add them to $log. This makes it easier to turn off or find/remove all my debug stuff before deployment and looks more consistent in the code.', '3', null, null, 'humancatfood', '2015-09-24T14:59:32Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1373', '37', '12937', 'chore(docs): update to lunr-0.5.12', 'This improves the search results for certain terms. Compare the results for **scope**:\r\nCurrently:\r\n![search-scope-current](https://cloud.githubusercontent.com/assets/1153097/10083876/adc9c410-6300-11e5-8781-73cb2046f548.PNG)\r\n\r\nAfter the update:\r\n![search-scope-new](https://cloud.githubusercontent.com/assets/1153097/10083878/b0bf0ff4-6300-11e5-8b9a-7e2c87920a73.PNG)\r\n', '0', null, null, 'Narretz', '2015-09-24T19:11:21Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1374', '37', '12938', 'docs(tutorial/Tutorial): Java installation', 'Add step to ensure java is installed on development machine.', '3', null, null, 'Moorzee', '2015-09-24T19:37:46Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1375', '37', '12939', 'Update datetimeSymbolsExt.js', 'There are some typos in locales es_PE and es_UY. In spanish the 9th month is \"Septiembre\" not \"Setiembre\".', '4', null, null, 'juanzero000', '2015-09-24T21:41:57Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1376', '37', '1294', 'Dev guide doc fixes', '', '1', null, null, 'jamiekrug', '2012-08-26T03:26:07Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1377', '37', '12940', 'Fix Small Parse Error Typo', 'Sorry for being pedantic... :cactus: ', '4', null, null, 'daviskoh', '2015-09-25T01:20:48Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1378', '37', '12943', 'Update rootScope.js', 'create $scope.$assign method', '3', null, null, 'xieranmaya', '2015-09-25T09:10:52Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1379', '37', '12944', 'docs($interpolateProvider): document XSS in $interpolate', '`$interpolateProvider.startSymbol` & friends are often used dangerously, to embed Angular templating in other templating languages. This change documents that that is a very dangerous practice.', '3', null, null, 'mprobst', '2015-09-25T09:20:49Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1380', '37', '12945', 'docs($sceProvider): XSS when turning of SCE', 'Document that turning off SCE is very, very dangerous and should normally not be used by applications.', '5', null, null, 'mprobst', '2015-09-25T09:38:42Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1381', '37', '12946', 'docs(tutorial/6 - Templating Links', 'Updating to include the alt attribute for the image. Per WCAG 2.0 Level A 1.1.1, all images must have alternative text. Since this is likely a tutorial developers will follow, better to include accessibility while they are learning angular and show how it can be done with angular.', '8', null, null, 'gilesedinburgh', '2015-09-25T12:56:13Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1382', '37', '12947', 'docs(tutorial/7 - Routing', 'On line 173, added alt attribute for WCAG 1.1.1', '2', null, null, 'gilesedinburgh', '2015-09-25T13:15:58Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1383', '37', '12948', 'docs(tutorial/10 - Event Handlers): describe your change...', 'Added ngKeypress directive to support keyboard only users for WCAG 2.0 Level A, 2.1.1 Keyboard Accessibility. To support and encourage developers to think about accessibility these should be clickable to keyboard only users.', '8', null, null, 'gilesedinburgh', '2015-09-25T13:33:45Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1384', '37', '1295', 'Dev guide doc fixes', 'A number of fixes to the \"Directives\" page in the Developer Guide (typos, grammar and bad links). Cheers.', '3', null, null, 'jamiekrug', '2012-08-26T03:32:28Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1385', '37', '12950', 'docs($http): link to the usage section when config is mentioned', 'This makes it easier for beginners to find out what the config object looks like\r\n\r\nCloses #12949', '1', null, null, 'Narretz', '2015-09-25T19:41:31Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1386', '37', '12952', 'fix(ngOptions): skip comments when looking for option elements', 'Closes #12190', '3', null, null, 'Narretz', '2015-09-25T21:55:52Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1387', '37', '12955', 'feat($parse): allow option to have one-time bind be default behavior', 'When one-time binds are high, it can be simpler to write it as default rather than the exception. Also, utilizing this option in an application can help developers get more into the mindset of adding watches only where necessary rather than removing where its not.', '3', null, null, 'onumossn', '2015-09-26T15:58:56Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1388', '37', '12956', 'docs(input[time]): fixes a typo', '', '3', null, null, 'rishabhjain', '2015-09-26T21:07:27Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1389', '37', '12957', 'docs(input[time]): fixes a typo', '', '1', null, null, 'rishabhjain', '2015-09-26T22:07:30Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1390', '37', '12958', 'docs(error/modulerr): Improving description of $injector:modulerr', 'This simple tip would have helped me, because I was confused by the error message about the missing routing module.', '0', null, null, 'nahakiole', '2015-09-27T11:31:46Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1391', '37', '12959', 'docs($animateCss): describe your change...', 'There was an extra asterisk, the second stagger is just a reference by the documentation, not the definition of a new field', '3', null, null, 'Shrulik', '2015-09-27T14:45:31Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1392', '37', '12964', 'Add $location.setBaseHref()', 'I\'d like to add a method to $location service to allow apps to set the base href of the app to something different than what\'s been specified in the <base href=\"/app/base/\"> tag on the page. This method is only supported in full HTML5 mode. This will let developers update the page URL via $location to something outside the current app base without causing the page to reload.\r\n\r\nTo give a more concrete example, I have an angular app running in a subdirectory, let\'s just pretend it\'s \"http://www.domain.com/angular-app/list\". The base href for the app is set to \"/angular-app/\". When a user clicks a button, I want to show a popup modal and update the current URL to \"http://www.domain.com/other-app/123\". Currently I can\'t do this via $location without causing the page to refresh.\r\n\r\nWith this change, I can call:\r\n```javascript\r\nshowModal();\r\n$location.setBaseHref(\'/other-app/\').path(\'123\');\r\n```\r\nIf the user closes the modal, I can go back to the previous URL by calling:\r\n```javascript\r\n$location.setBaseHref(\'/angular-app/\').path(\'list\');\r\n```\r\n\r\nI realize this is a hack and could be dangerous/error-prone if not used correctly. But I haven\'t found any other clean way to solve the scenario I described above. I\'ve been using this hack in my own copy of angular for a few months and it seems to work (at least for my purposes). I figured it might help someone else in a similar situation.\r\n\r\nThanks.', '1', null, null, 'edrico37', '2015-09-27T20:55:13Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1393', '37', '12965', 'Use strict DI notation in executeWithElement()', '', '6', null, null, 'Chris380', '2015-09-28T06:08:26Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1394', '37', '12967', 'testing git', 'test', '1', null, null, 'hemangt', '2015-09-28T21:35:40Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1395', '37', '12968', 'fix(ngOptions): don\'t throw if options are unset inside writeValue', 'This can happen in the following case:\r\n- there\'s a blank option inside the select\r\n- another directive on the select element compiles the contents of it before ngOptions is linked.\r\n\r\nNow this happens:\r\n- the option directive is compiled and adds an element $destroy listener that calls ngModel.$render\r\n- when ngOptions processes the blank option, it removes the element, and\r\ntriggers the $destroy listener\r\n- ngModel.$render delegates to selectCtrl.writeValue, which accesses the options\r\n- in that phase, the options aren\'t yet set\r\n\r\nFixes #11685', '23', null, null, 'Narretz', '2015-09-28T21:57:14Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1396', '37', '12972', 'fix(ngOptions): disable select directive when ngOptions is active', '', '11', null, null, 'petebacondarwin', '2015-09-29T10:45:13Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1397', '37', '12974', 'docs($httpProvider): Parameter Detail Fix', 'useLegacyPromiseExtensions\'s boolean parameter was the other way around. ', '3', null, null, 'johnz133', '2015-09-29T18:34:51Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1398', '37', '12975', 'fix($compile): fix scoping for transclusion', 'Change the scope\'s prototype when a directive with transclude is at the root of a template of a replaced directive\r\n\r\nFix for the issue #12936 ', '15', null, null, 'mzdunek93', '2015-09-29T19:23:33Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1399', '37', '12979', 'fix($http): apply `transformResponse` when `data` is empty (for non-HEAD requests)', 'Fixes #12976', '6', null, null, 'gkalpak', '2015-09-30T13:59:04Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1400', '37', '12981', 'docs($resource): Corrected wrong character', 'I believe the correct description of the behavior when parameters before suffixes are empty is that `/.` will be collapsed down to a single `/` - not a single \'.\'.', '4', null, null, 'jaydge', '2015-09-30T15:02:42Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1401', '37', '12986', 'docs(guide/Running in Production): using the correct indefinite article', 'It was using the wrong indefinite article.', '0', null, null, 'flowersinthesand', '2015-10-01T14:13:17Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1402', '37', '12987', 'Added a comment on a misleading declaration on the $location guide', 'When the guide is followed correctly, a seemingly innocuous $sniffer value is\r\n set on the module. For the new developer this is pretty normal. But what is\r\ncompletely hidden is that setting this value in that way, will silently prevent\r\nall animations from ngAnimate. \r\nUnless the developer knows that the value is not intended to be modified\r\n(it\'s an internal service after all, it usually never is) they might\r\nend up breaking their animations unknowingly.', '3', null, null, 'samhax', '2015-10-01T15:25:13Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1403', '37', '12988', 'docs(guide/Forms): indentation.', '', '3', null, null, 'koyner', '2015-10-01T15:45:29Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1404', '37', '1299', 'gen_docs.sh should look for globally installed jasmine-node as well', 'Making sure gen_docs.sh looks for a globally installed copy of jasmine-node as well as local.\n\nFinally re-based and cleaned this up to a single commit (previous pull requests, 54fcda45283686c1b30f4ef15fcabe14d925593f 14593762ba8598c99562ccbad61867a214a2f607, were sloppy).', '4', null, null, 'jzacsh', '2012-08-27T18:13:52Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1405', '37', '12991', 'docs(tutorial/11 - REST and Custom Services): edit tutorial copy to reflect source', 'Code breaks if tutorial is followed without reset. bower.js exceprt copy does not match source. Change to reflect in text body.', '4', null, null, 'spectre6000', '2015-10-01T18:17:24Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1406', '37', '12992', 'docs(tutorial/7 - Routing) edit tutorial copy to reflect source', 'Code breaks if tutorial is followed without reset. bower.js exceprt copy does not match source. Change to reflect in text body.', '0', null, null, 'spectre6000', '2015-10-01T18:23:02Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1407', '37', '12993', 'docs(tutorial/12 - Applying Animations): edit tutorial copy to reflect source', 'Code breaks if tutorial is followed without reset. bower.js exceprt copy does not match source. Change to reflect in text body.', '1', null, null, 'spectre6000', '2015-10-01T19:20:59Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1408', '37', '12994', 'doc(angular.bootstrap): document debugInfoEnabled', 'Or is it not documented for a reason?', '5', null, null, 'thorn0', '2015-10-01T20:27:20Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1409', '37', '12995', 'Fix several syntax errors in code examples', 'Fix several syntax errors in code examples in ngAnimate directive documentation', '4', null, null, 'barif', '2015-10-01T21:26:20Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1410', '37', '12999', 'docs(ngOptions): explain using \'select as\' and \'track by\' together', '* change warning to indicate that \'select as\' and \'track by\' can be used together with care\r\n* provide an example that will work and an example that will not work\r\n* provide a simple explanation of why the non-working example does not work', '0', null, null, 'ryanhart2', '2015-10-02T21:54:47Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1411', '37', '13', 'Resource error handling', 'This improves error handling for resources. Please check the commit message.\r\n\r\nIt depends on reduce-resource-copies pull request.', '5', null, null, 'alkis', '2010-09-17T23:19:39Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1412', '37', '1300', 'Typo in docs', '', '3', null, null, 'colinfrei', '2012-08-27T19:21:46Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1413', '37', '13000', 'docs(ngOptions): explain using \'select as\' and \'track by\' together', '* change warning to indicate that \'select as\' and \'track by\' can be used together with care\r\n* provide an example that will work and an example that will not work\r\n* provide a simple explanation of why the non-working example does not work', '4', null, null, 'ryanhart2', '2015-10-02T22:33:03Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1414', '37', '13002', 'fix($parse): do evaluate several times expressions with interceptors', 'For simple expressions without filters that need a stateless interceptor then handle the 2nd phase parse evaluation using `inputs`.\r\n\r\nCloses #12983', '4', null, null, 'lgalfaso', '2015-10-03T00:06:51Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1415', '37', '13003', 'docs($http): expand caching section to cover FAQ', '* add note that only GET & JSONP requests are cached\r\n* add note that cache keys are the url and search params (headers not considered)\r\n* add note that cache-control header on response does not affect angular caching\r\n* add note that $httpProvider.defaults.cache can be used to set cache default (in addition to $http.defaults.cache)\r\n* expand note on how default cache property affects requests with cache set to true\r\n\r\nFixes #11101', '6', null, null, 'ryanhart2', '2015-10-03T03:00:57Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1416', '37', '13007', 'docs(ngOptions): explain using \'select as\' and \'track by\' together', '* change warning to indicate that \'select as\' and \'track by\' can be used together with care\r\n* provide an example that will work and an example that will not work\r\n* provide a simple explanation of why the non-working example does not work\r\n\r\nFixes #11768', '16', null, null, 'ryanhart2', '2015-10-04T13:31:57Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1417', '37', '13010', 'docs(ngOptions): describe your change...', 'Rephrased a sentence for clarity', '5', null, null, 'thinegod', '2015-10-05T08:40:47Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1418', '37', '13012', 'fix(ngOptions): override select option registration', 'When ngOptions is present on a select, the option directive should not be able to\r\nregister options on the selectCtrl since this may cause errors during the\r\nngOptions lifecycle.\r\n\r\nThis can happen in the following cases:\r\n\r\n- there is a blank option below the select element, an ngModel\r\ndirective, an ngOptions directive and some other directive on the select\r\nelement, which compiles the children of the select\r\n(i.e. the option elements) before ngOptions is has finished linking.\r\n\r\n- there is a blank option below the select element, an ngModel\r\ndirective, an ngOptions directive and another directive, which uses\r\ntemplateUrl and replace:true.\r\n\r\nWhat happens is:\r\n- the option directive is compiled and adds an element `$destroy` listener\r\nthat will call `ngModel.$render` when the option element is removed.\r\n- when `ngOptions` processes the option, it removes the element, and\r\ntriggers the `$destroy` listener on the option.\r\n- the registered `$destroy` listener calls `$render` on `ngModel`.\r\n- $render calls `selectCtrl.writeValue()`, which accesses the `options`\r\nobject in the `ngOptions` directive.\r\n- Since `ngOptions` has not yet completed linking the `options` has not\r\nyet been defined and we get an error.\r\n\r\nThis fix moves the registration code for the `option` directive into the\r\n`SelectController`, which can then be easily overridden by the `ngOptions`\r\ndirective as a `noop`.\r\n\r\nFixes #11685\r\nCloses #12972\r\nCloses #12968', '9', null, null, 'petebacondarwin', '2015-10-05T12:49:35Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1419', '37', '13013', 'fix(testabilityPatch): reset cache after memory leak detection', 'When you have a test failure in the angular.js project, which also causes a memory leak, such as a failure to dealocate an element or a scope, you often get a false-negative failure for every subsequent test. This change ensures that after such an error, the cache is reset so that subsequent tests can run normally.', '5', null, null, 'petebacondarwin', '2015-10-05T13:11:20Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1420', '37', '13014', 'docs(ngResource): fix error in example', 'user must be a parameter of callback function\r\ncurrently it is not defined', '3', null, null, 'alexeymetelev', '2015-10-05T14:44:59Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1421', '37', '13016', 'G3 v1 2', '', '1', null, null, 'tjgambs', '2015-10-05T17:51:49Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1422', '37', '13017', 'V1.2.x', '', '1', null, null, 'tjgambs', '2015-10-05T17:53:45Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1423', '37', '13018', 'chore(sanitize): new implementation of the html sanitized parser', '', '2', null, null, 'tjgambs', '2015-10-05T17:54:12Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1424', '37', '13019', 'Pr 8901', '', '1', null, null, 'tjgambs', '2015-10-05T17:54:47Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1425', '37', '13020', 'docs($animate): fixed typo - \'doesn\'t trigger an animations\'', '', '4', null, null, 'RaghavRamesh', '2015-10-06T10:05:28Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1426', '37', '13023', 'docs(loader): fix pluralization of constant', '', '0', null, null, 'FuzzySockets', '2015-10-06T18:51:11Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1427', '37', '13024', 'docs(loader): fix pluralization of constant', '', '1', null, null, 'FuzzySockets', '2015-10-06T18:56:12Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1428', '37', '13025', 'fix($compile): evaluate against the correct scope with bindToController on new scope', 'Previously, the directive bindings were evaluated against the directive\'s new (non-isolate) scope, instead of the correct (parent) scope.\r\nThis went unnoticed most of the time, since a property would be eventually looked up in the parent scope due to prototypal inheritance. The incorrect behaviour was exhibited when a property on the child scope was shadowing that on the parent scope.\r\n\r\nThis commit fixes it.\r\n\r\nFixes #13021', '5', null, null, 'gkalpak', '2015-10-06T19:51:33Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1429', '37', '13028', 'Directives link API documentation did not describe or mention the controller param.', 'The 4th param for link() was not defined in the api doc, but used in the examples. This change adds the param and describes it.', '12', null, null, 'hahla', '2015-10-06T22:29:41Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1430', '37', '13029', 'fix(ngOptions): provide robust identification of empty options with ngIf', 'When an empty option has ngIf, the compilation result is different from\r\nthe extracted emptyOption, so the default way of identifying the empty\r\noption doesn\'t work anymore. In that case, we need to make sure that we\r\ndon\'t identify comment nodes and options whose value is \'\' as valid\r\noption elements.\r\n\r\nRelated #12952\r\nCloses #12190', '2', null, null, 'Narretz', '2015-10-07T10:05:38Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1431', '37', '1303', 'Disable trim an option for form fields using ng-model', 'Using AngularJS today I found myself needing that extra whitespace at the end of the value of an input field.\n\nI added a couple lines for optionally disabling the trim that occurs by default with ng-model.\n\n<input ng-model=\"foo\" ng-trim=\"false\">\n\nNow {{foo}} will include a space at the end when you enter \"bar \".\n\nWithout that attribute, \"ng-trim\", the value will be trimmed same as normal.', '7', null, null, 'grevory', '2012-08-28T04:27:54Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1432', '37', '13030', 'docs($sce): typo', '', '0', null, null, 'rgksugan', '2015-10-07T11:09:49Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1433', '37', '13033', 'fix(ngOptions) skip authentic empty options when looking for options', 'Related #12952\r\nCloses #12190\r\nCloses #13029', '7', null, null, 'petebacondarwin', '2015-10-07T12:20:24Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1434', '37', '13036', 'fix(Angular.js): use cookie instead of window.name to load with debug…', '… info\r\n\r\nUse cookie to store a check if the application needs to be loaded with debug info, instead of using window.name. As window.name can be used alread (and be overwritten on page load)\r\nFixes issue #13031', '3', null, null, 'klaascuvelier', '2015-10-07T15:36:21Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1435', '37', '13038', 'Fix AngularJS Polish number grouping separator (should be nothing instead of space).', 'Fix AngularJS Polish number grouping separator (should be nothing instead of space).', '5', null, null, 'radmaneshp', '2015-10-07T16:34:16Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1436', '37', '13039', 'feat(NgRoute): allow resolve promises on routeUpdate event', 'When using the reloadOnSearch defined as false, if you have a resolve property for that path the promise will not be invoked. My pull request is to enable that functionality, in our product we have a scenario where we need this feature I hope that this could help somebody else', '13', null, null, 'd0g', '2015-10-07T16:41:35Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1437', '37', '13042', 'docs(ngInclude): add warning to onload function cause breaks in IE11', 'Closes #12493', '2', null, null, 'kutyel', '2015-10-07T20:28:07Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1438', '37', '13044', 'fix small typo', 'small typos', '2', null, null, 'chrisjlee', '2015-10-08T04:34:35Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1439', '37', '13045', 'orderBy should not allow to sort on string', 'Currently if you sort `\'hello\' | orderBy`, it return `[\"e\",\"h\",\"l\",\"l\",\"o\"]`, result does not make sense.\r\nInstead it should be `hello` without sorted, or `ehllo` sorted as string.\r\n\r\nThis PR let orderBy return `hello` without sorting for string.\r\nI hope this is not a breaking change.', '1', null, null, 'S-YOU', '2015-10-08T07:59:49Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1440', '37', '13047', 'Update ngOptions.js', 'Check value type to avoid errors', '8', null, null, 'epplestun', '2015-10-08T09:40:36Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1441', '37', '13048', 'Check value type to avoid errors', '', '3', null, null, 'epplestun', '2015-10-08T10:14:14Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1442', '37', '13050', 'Do not suggest using a promise as timeout', 'Promises don\'t work. (#9332) I wish they did, but if they don\'t at least do not explicitly document that they do.\n\n<!-- Reviewable:start -->\n[<img src=\"https://reviewable.io/review_button.png\" height=40 alt=\"Review on Reviewable\"/>](https://reviewable.io/reviews/angular/angular.js/13050)\n<!-- Reviewable:end -->\n', '2', null, null, 'darabos', '2015-10-08T15:31:07Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1443', '37', '13051', 'Dangling comma', 'Remove dangling comma.', '0', null, null, 'chrisjlee', '2015-10-08T15:43:17Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1444', '37', '13058', 'WIP - feat($resource): add support for cancelling requests using promises', 'Previously, it was not possible to use a promise as value for the `timeout` property of an action\'s `config`, because that value would be copied before being passed to `$http`.\r\n\r\nThis commit introduces a special value for the `timeout`, namely `\'promise\'`.\r\nSetting an action\'s `timeout` configuration property to `\'promise\'`, will create a new promise and pass it to `$http` for each request. The associated deferred, is attached to the resource instance, under `$timeoutDeferred`.\r\n\r\nExample usage:\r\n\r\n```js\r\nvar Post = $resource(\'/posts/:id\', {id: \'@id\'}, {\r\n query: {\r\n method: \'GET\',\r\n isArray: true,\r\n timeout: \'promise\'\r\n }\r\n});\r\n\r\nvar posts = Post.query(); // GET /posts\r\n...\r\n// Later we decide to cancel the request\r\n// in order to make a new one\r\nposts.$timeoutDeferred.resolve();\r\nposts.query({author: \'me\'}); // GET /posts?author=me\r\n...\r\n```\r\n\r\nFixes #9332\r\nCloses #13050', '11', null, null, 'gkalpak', '2015-10-09T01:21:22Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1445', '37', '13059', 'fix(ngAnimate): Provide information about what class is being added for addClass and removeClass events', 'Hi everyone!\r\n\r\nThis pull request is related to the issue https://github.com/angular/angular.js/issues/12697 about the lack of information for the events addClass and removeClass.\r\n\r\nPlease review the code and let me know is something is wrong,\r\n\r\nCloses https://github.com/angular/angular.js/issues/12697', '3', null, null, 'frankweb', '2015-10-09T02:33:52Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1446', '37', '13061', 'Feat linky 12558', '', '6', null, null, 'Narretz', '2015-10-09T11:34:38Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1447', '37', '13064', 'Improve the docs search results layout', 'Sometimes the docs search results look really bad. This is hopefully an improvement that works in all browsers. Tested in FF, Chrome, IE11.\r\n\r\nHere\'s a comparison for Firefox, searching for http:\r\nOLD:\r\n![http-old-firefox](https://cloud.githubusercontent.com/assets/1153097/10398093/6ac7d736-6eab-11e5-8484-21a9ef0a2336.PNG)\r\n\r\nNEW:\r\n![http-new-firefox](https://cloud.githubusercontent.com/assets/1153097/10398103/70b0d6a2-6eab-11e5-81d6-0185db4ddf63.PNG)\r\n\r\nFirefox looks the best, mainly because it supports hyphenation. Chrome breaks the words rather ugly, but you can actually read them. IE11 also hyphenates, but since it doesn\'t support @supports it doesn\'t get multi columns, so it looks a bit weird when list items break. Overall, though I\'d say it\'s an improvement.', '5', null, null, 'Narretz', '2015-10-09T15:32:40Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1448', '37', '13072', 'docs($location): minor english improvements', '', '3', null, null, 'bertyhell', '2015-10-12T09:15:14Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1449', '37', '13074', 'fix(ngMessage): make ngMessage work with ngBind', 'Fixes #8089 \r\n\r\n(I\'m not actually sure why this works tbh)', '3', null, null, 'Narretz', '2015-10-12T15:21:53Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1450', '37', '13077', 'feat $q: spread', 'add spread functionality to promises\r\n\r\nIssue: <a href=\"https://github.com/angular/angular.js/issues/13076\">13076</a>', '1', null, null, 'fernandomoraes', '2015-10-12T21:25:45Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1451', '37', '1308', 'Build changes', '', '1', null, null, 'IgorMinar', '2012-08-29T00:02:29Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1452', '37', '13082', 'docs($animateCss): add missing doc', 'Fixes #13049', '8', null, null, 'sevdog', '2015-10-13T18:59:03Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1453', '37', '13083', 'docs(error/ctreq): typofix', '', '1', null, null, 'mLuby', '2015-10-13T22:53:20Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1454', '37', '13084', 'docs(guide/Scopes):Fixed Grammar', 'Added a comma to make the reading more natural and correct.', '4', null, null, 'zurin', '2015-10-14T07:45:44Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1455', '37', '13086', 'refactor($compile): remove unused var', '', '1', null, null, 'gkalpak', '2015-10-14T11:58:43Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1456', '37', '13087', 'refactor(ngMessages): remove unused argument', '', '2', null, null, 'gkalpak', '2015-10-14T12:18:23Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1457', '37', '13095', 'fix(ngAria): remove tabindex from radio buttons', 'There was some funky stuff going on when ngModel was set to null, which I fixed by adding a nodeBlackList check to the method setting tabindex. \r\n\r\nThe logic added to `needsTabIndex` should eventually be moved into the `shouldAttachAttr` function but it will require refactoring of other directives, so I decided to wait on that. \r\n\r\nCloses #12492', '5', null, null, 'marcysutton', '2015-10-14T21:09:21Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1458', '37', '13096', 'V1.4.x', '', '1', null, null, 'ashley1982', '2015-10-15T00:58:41Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1459', '37', '13099', 'Fixes the issue \"ng-bind not working correctly with <textarea> & <input> elements.', 'This issue mostly occurs in chrome because the current ng-bind does not update \'value\' property of element. [IE somehow updates the property automatically]\r\nEg. can be found at plunk : http://plnkr.co/edit/w89iACaEl5fgJIo0svkh?p=preview\r\nWhen using the ng-bind directive on `<textarea>` , the results are strange , But when using the modified version of ng-bind directive => \'ng-text-area-bind\' it works as expected.', '4', null, null, 'nozelrosario', '2015-10-15T10:53:05Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1460', '37', '1310', 'Add dblclick method to the ngSecenario dsl', 'I wanted to write a test to check that an action happens when a user double click on a element. It looks like the angular-scenario dsl does not provide any method for that. \n\nWith the new dblclick method I can write the test as: \n\n```coffeescript\n describe \"Edit property\", ->\n it \"should display the input field after double clicking on a property value\", ->\n expect(element(\"[name=\'Account\'] li\").attr(\"class\")).toBe \"ng-scope\"\n element(\"[name=\'Account\'] div\").dblclick()\n expect(element(\"[name=\'Account\'] li\").attr(\"class\")).toBe \"ng-scope editing\"\n```', '4', null, null, 'pedrodelgallego', '2012-08-29T14:17:06Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1461', '37', '13101', 'docs($q): add a note re. difference in exception handling vs ES6', 'Closes #11472', '0', null, null, 'stucox', '2015-10-15T14:34:31Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1462', '37', '13102', 'refactor($rootScope): remove unused dependency', 'Removed unused dependency', '1', null, null, 'lgalfaso', '2015-10-15T22:06:40Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1463', '37', '13103', 'feat($injector): Allow specifying a decorator on $injector', 'Allows the definition of a decorator on `$injector`', '6', null, null, 'lgalfaso', '2015-10-15T22:17:01Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1464', '37', '13105', 'refactor($q): remove an unneeded check', '', '1', null, null, 'thorn0', '2015-10-15T22:38:29Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1465', '37', '13106', 'docs(tutorial/0 - Bootstrapping): describe your change...', 'Specified the project and location to start with. This was entirely non-obvious from the previous version.', '1', null, null, 'cketterling', '2015-10-16T00:03:47Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1466', '37', '13109', 'feat($resource): pass isArray to http config', 'This will allow to indentify request type in global interceptor.\r\n\r\nI need to identify if request is array or object and put necessary array or object to httpCache accordingly if request does not need to be made.', '4', null, null, 'tautvilas', '2015-10-16T08:58:05Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1467', '37', '13110', 'docs($rootScope): Minor corrections for increased clarity and consistency', '', '0', null, null, 'michaelgeorgeattard', '2015-10-16T11:14:15Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1468', '37', '13111', 'Not a \'real\' PR, but a demo for #13108', '@gkalpak please check out this branch and run `grunt test:unit`. You\'ll see that removing the `$apply`/`$applyAsync` call has the same effect as using `$applyAsync`.', '1', null, null, 'thorn0', '2015-10-16T14:36:44Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1469', '37', '13113', 'docs(angular.element): add a note explaining that this is a selector …', '…and doesn\'t find elements by tag name\r\n\r\nCloses #13107', '0', null, null, 'keropodium', '2015-10-16T19:39:30Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1470', '37', '13114', 'docs(tutorial/2 - Angular Templates): Running unit test without Firef…', 'Running unit test without having Firefox installed throws error\r\n\r\nI am following the tutorial on AngularJS website https://docs.angularjs.org/tutorial/step_02. However I got an error when running the provided unit test without having Firefox browser installed on my machine.\r\n\r\nConsole output:\r\n```\r\nINFO [karma]: Karma v0.12.37 server started at http://localhost:9876/\r\nINFO [launcher]: Starting browser Chrome\r\nINFO [launcher]: Starting browser Firefox\r\nERROR [launcher]: Cannot start Firefox\r\n Can not find the binary /Applications/Firefox.app/Contents/MacOS/firefox-bin\r\n Please set env variable FIREFOX_BIN\r\nINFO [Chrome 46.0.2490 (Mac OS X 10.11.0)]: Connected on socket zZ0c0QemlSHXzVaqVGqC with id 90305753\r\n``` \r\n\r\nI guess it will be much clearer if we also pointed out these browsers requirement on the tutorial documentation.', '5', null, null, 'risan', '2015-10-16T20:51:25Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1471', '37', '13119', 'docs(select): add multiple attribute', 'In the documentation of the [select](https://docs.angularjs.org/api/ng/directive/select) directive there is an example of multiple selection, but the multiple attribute is not listed as an argument, so I think it can be a bit confusing.', '7', null, null, 'Puigcerber', '2015-10-19T01:17:02Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1472', '37', '13122', 'Update ngClick.js', 'The prevent default at this point changes the behavior of regular ng-click (only in mobile phone mode).\r\nFor example, if you have a dropdown and you click in an element that contains an ng-click the dropdown will no close automatically because there is external click events attached to the element.', '1', null, null, 'solispauwels', '2015-10-19T12:19:12Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1473', '37', '13124', 'fix(ngMockE2E): allow $httpBackend.passThrough() to work when ngMock is loaded', 'Allow $httpBackend.passThrough() to work normally when `ngMock` is loaded concurrently with `ngMockE2E`. This also allows one to use `angular.mock.module()` to write tests that depend on `ngMockE2E`, as `module()` always adds a dependency on `ngMock`.\r\n\r\nFixes #1434 ', '4', null, null, 'schmod', '2015-10-19T14:37:26Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1474', '37', '13125', 'Add min group size to number patterns.', 'The whole part of Polish numbers are grouped in 3\'s separated with a space (and a comma for the decimal separator), but only after there are at least 5 digits in the whole part - https://pl.wikipedia.org/wiki/Separator_dziesi%C4%99tny:\r\n\r\n 3,14\r\n 0,178011392519\r\n 157,3567\r\n 5348,26\r\n 25 772,1\r\n 9 212 345,576213\r\n\r\nThis change adds a new optional number format property, gMinSize, which if set causes the whole part of a number to only be grouped if it is greater than or equal to gMinSize.', '11', null, null, 'radmaneshp', '2015-10-19T16:53:34Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1475', '37', '13128', 'refactor($http): remove unneeded call to $apply', 'This `$apply` call was needed only for tests, so it\'s been moved to `$httpBackend.flush`. An example of such a test can be found in `ngIncludeSpec.js`. It fails if `$digest` isn\'t synchronously invoked after each response. See also the comments I included in the code of the tests.\r\n\r\nBREAKING CHANGE: `$httpProvider.useApplyAsync` was removed\r\n\r\nCloses #13108\r\nCloses #13111', '5', null, null, 'thorn0', '2015-10-20T00:34:57Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1476', '37', '13129', 'docs(ngModelOptions): add missing user.data result for updateOn: blur example', 'In the `updateOn: blur` example, there is an input for `user.data` but the result is missing and nowhere to see how the value changes comparing to `user.name` which only gets updated on blur.', '3', null, null, 'Charlie-Hua', '2015-10-20T04:16:58Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1477', '37', '1314', 'Fixing this strange bug with innerHTML and <tr> tags', 'There\'s this bug (at least in Chrome) where the original $(\'<div>\' + stuff + \'</div>\') wouldn\'t do the right thing when stuff was a string that started with, say, a <tr>. This change fixes that bug, but hasn\'t been rigorously tested in any way. I\'m just curious if this is the right approach for the fix.\n\nYou can see what I think of as a bug here http://jsfiddle.net/A2FPR/2/', '5', null, null, 'applmak', '2012-08-30T02:55:29Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1478', '37', '13140', ' optimize angularInit function . do not foreach candidate if the element is retrived', '…ent is retrive', '2', null, null, 'omarProgrammer', '2015-10-21T08:08:26Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1479', '37', '13146', 'feat(ngMock) add atomic flushing strategy for $timeout', 'Hi dear angular community,\r\n\r\nDuring writing unit-tests I found one interesting issue. I need to write tests for some code like this:\r\n``` javascript\r\n$timeout(function() {\r\n action1();\r\n $timeout(function() {\r\n action2();\r\n });\r\n});\r\n```\r\nAnd I\'m expecting that i need to execute `$timeout.flush()` 2 times. First time to reach `action1` function and the second time to execute `action2` function (let\'s call this kind of flush _\"atomic\"_ for example). But for now, for the first flush() it executes the both handlers. One after another. Please check this example: http://jsbin.com/fuziri/edit?js,output .\r\n\r\nAt the other hand we have some cases in tests when this buggy, for the first look, behaviour can simplify our lifes. In such case for example:\r\n``` javascript\r\n var callback = jasmine.createSpy();\r\n $timeout(function() {}, 0, false).then(callback);\r\n $timeout.flush();\r\n expect(callback).toHaveBeenCalled();\r\n```\r\nHere `$timeout` register new defered task to process callback using `$browser.defer` during flushing. So to execute callback (if you are using that _atomic_ flush strategy) you should call `$timeout.flush()` twise.\r\n\r\nI think that the both strategies of flushing are pretty useful. And may be it will be a good idea to allow to switch between them, using some additional parameter. \r\n\r\nI implemented solution which works for me. What do you think about this? \r\n\r\n ', '1', null, null, 'elkeis', '2015-10-21T22:37:24Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1480', '37', '13147', 'docs(modules): example of testing run blocks', 'Add:\r\n - example to the documentation of unit testing run blocks.\r\n\r\nCloses #12706', '0', null, null, 'iamisti', '2015-10-21T23:01:58Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1481', '37', '13148', 'My New Pull', 'Tweaking..', '4', null, null, 'ColinFletch', '2015-10-21T23:49:24Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1482', '37', '1315', 'Please accept my pull request that makes the time zone optional in the date filter', 'Problem with the current R_ISO8601_STR regex was that the time was optional, but the zone was not.\nThis results in the filter not formatting local date times, which it could easily do.\n\nFor example:\n2012-08-30 -> formatted\n2012-08-30T06:06:06.123Z -> formatted\n2012-08-30T06:06:06.123 -> NOT formatted\n\nA simple change in the regex fixes this. Arguably this is closer to the ISO8601 spec which specifies\nlocal dates being in the \"current time zone\" and not requiring a Z. In any case it behaves more like\na user would expect.', '3', null, null, 'iwein', '2012-08-30T04:49:40Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1483', '37', '13150', 'optimize angularInit function . do not foreach candidate if the element is retrived', 'If the element Module is retrived then do not foreach for retrive a candidate children element', '5', null, null, 'omarProgrammer', '2015-10-22T08:03:20Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1484', '37', '13151', 'feat(ngModel): pass the previous and current model to view change listeners', '', '3', null, null, 'luaks', '2015-10-22T09:10:28Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1485', '37', '13152', 'docs(tutorial/10 - Event Handlers): missing unit test', 'In the doc there stands \"You also have to refactor one of your unit tests because of the addition of the `mainImageUrl`\r\nmodel property\" but the spec was missing the test of `mainImageUrl`', '7', null, null, 'Airborn22', '2015-10-22T14:38:34Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1486', '37', '13156', 'docs(tutorial/0 - Bootstrapping): describe your change...', 'I think it\'s more clear to specify which element should be considered as the root element.', '3', null, null, '349989153', '2015-10-23T07:42:58Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1487', '37', '13159', 'docs($routeProvider): describe your change...', 'Document typo fix', '4', null, null, 'hasithaprageeth', '2015-10-23T19:46:17Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1488', '37', '13160', 'ignore: Will redo with a more correct implementation & proper CLA', 'Fix an issue where the disabled attribute was applied to an element with an invalid value.', '2', null, null, 'shelbymorris90', '2015-10-23T20:58:31Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1489', '37', '13161', 'ignore: Will redo with a more correct implementation.', 'Fixes an issue where the attribute \'disabled\' was assigned to an element, but the value of the attribute wasn\'t enforced. This correctly assigns the \'disabled\' attribute with the value \'disabled\' (Fixes CSS selectors such as option[disabled] and option[disabled=\"disabled\"], et al.) This is more consistent with other angular implementations (see: ngDisabled)', '3', null, null, 'shelbymorris90', '2015-10-23T21:45:31Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1490', '37', '13163', 'docs(error/iscp): describe your change...', 'added another error in isolated scope definition', '3', null, null, 'darek', '2015-10-25T15:25:44Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1491', '37', '13166', 'Master', null, '1', null, null, 'AutumnsWind', '2015-10-26T03:14:57Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1492', '37', '1317', 'Xhtml script fix', '', '1', null, null, 'IgorMinar', '2012-08-30T09:28:17Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1493', '37', '13171', 'fix(forEach): handle jQuery objects of length 0', 'Closes: #13169', '3', null, null, 'lgalfaso', '2015-10-26T11:01:32Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1494', '37', '13175', 'fix(ngAnimate): do not alter the provided options data', 'Prior to this fix the provided options object would be\r\naltered as the animation kicks off due to the underlying\r\nmechanics of ngAnimate. This patch ensures that a\r\ncopy of the provided options is used instead. This patch\r\nalso works for when `$animateCss` is used by itself.\r\n\r\nCloses #13040', '3', null, null, 'matsko', '2015-10-26T19:19:26Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1495', '37', '13176', 'refactor($parse): simplify constantWatchDelegate', 'Simplify the implementation of `constantWatchDelegate`', '1', null, null, 'lgalfaso', '2015-10-26T21:44:43Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1496', '37', '13180', 'docs: Fix broken link to HTML 5 spec in $anchorScroll.', '', '1', null, null, 'srawlins', '2015-10-27T17:19:51Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1497', '37', '13183', 'feat(ngMock) add atomic flushing strategy for $timeout', 'Hi dear Angular community,\r\n\r\nDuring writing unit tests I found one interesting issue. I need to write tests for some code like this:\r\n``` javascript\r\n$timeout(function() {\r\n action1();\r\n $timeout(function() {\r\n action2();\r\n });\r\n});\r\n```\r\nAnd I\'m expecting that I need to execute `$timeout.flush()` 2 times. First time to reach `action1` function and the second time to execute `action2` function (let\'s call this kind of flush _\"atomic\"_ for example). But for now, for the first flush() it executes the both handlers. One after another. Please check this example: http://jsbin.com/fuziri/edit?js,output .\r\n\r\nOn the other hand we have some cases in tests when this buggy, for the first look, behaviour can simplify our lifes. In such case for example:\r\n``` javascript\r\n var callback = jasmine.createSpy();\r\n $timeout(function() {}, 0, false).then(callback);\r\n $timeout.flush();\r\n expect(callback).toHaveBeenCalled();\r\n```\r\nHere `$timeout` register new defered task to process callback using `$browser.defer` during flushing. So to execute callback (if you are using that _atomic_ flush strategy) you should call `$timeout.flush()` twise.\r\n\r\nI think that the both strategies of flushing are pretty useful. And may be it will be a good idea to:\r\n - implement that _atomic_ flushing\r\n - to allow to switch between the strategies using some additional flag\r\n\r\nWhat do you think, guys?\r\n\r\nP.S. this is a duplicate of #13146, I opened a new one because can\'t solve the certificate issue for commit with wrong email address. \r\n', '4', null, null, 'elkeis', '2015-10-27T20:34:22Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1498', '37', '13184', 'fix($rootScope): reset internal phase on digest exception', 'Cleanup the internal phase when there is a non-handled exception.\r\n\r\nCloses: #13127', '2', null, null, 'lgalfaso', '2015-10-27T20:40:22Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1499', '37', '13185', 'feat(ngAnimate): introduce ngSwap directive', '', '12', null, null, 'matsko', '2015-10-28T02:05:17Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1500', '37', '13188', 'feat($templateRequest): support configuration of accept headers', 'It is now possible to configure the Accept header for template requests.\r\nIf a value is configured then this will override only the Accept property\r\nof the headers that are passed.\r\nIf no value is configured then the request will use the default $http\r\nAccept header.\r\n\r\nThanks to @luckycadow for help on this feature\r\n\r\nCloses #11868\r\nCloses #6860', '7', null, null, 'petebacondarwin', '2015-10-28T08:10:43Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1501', '37', '13194', 'chore(contributing): add commitizen commit message formatting', 'This adds `npm run commit` to package.json scripts to assist in formatting git commit messages with [commitizen](https://github.com/commitizen/cz-cli).\r\n\r\nCloses #12730', '7', null, null, 'stephensauceda', '2015-10-28T16:57:51Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1502', '37', '13198', 'docs(tutorial/Tutorial): add to PATH in Windows', 'user may need to add the directory to the PATH variable.', '1', null, null, 'bladefistx2', '2015-10-29T12:13:29Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1503', '37', '13199', 'docs/test($templateRequest): minor docs improvement and tests clean-up', '', '3', null, null, 'gkalpak', '2015-10-29T12:39:03Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1504', '37', '13204', 'style($http): do not use angular global object to invoke `isObject`', '', '1', null, null, 'lgalfaso', '2015-10-29T23:35:03Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1505', '37', '13206', 'feat(checkbox): ngIndeterminateValue', 'adds support for an inderminate value in the same pattern as\r\nngTrueValue and ngFalseValue\r\n\r\nCloses #1411\r\n\r\nHere\'s a jsFiddle that demonstrates the feature: http://jsfiddle.net/tyk7kybe/', '0', null, null, 'calebcauthon', '2015-10-30T01:23:59Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1506', '37', '13207', 'Improved vocabulary', 'Made some little corrections as well as adding a few words to get in context of a developer\'s mind.', '1', null, null, 'Pablo-Ivan', '2015-10-30T01:44:02Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1507', '37', '13208', 'feat(checkbox): ngIndeterminateValue', 'adds support for an inderminate value in the same pattern as\r\nngTrueValue and ngFalseValue\r\n\r\nCloses #1411\r\n\r\nHere\'s a jsFiddle that demonstrates the feature: http://jsfiddle.net/tyk7kybe/', '3', null, null, 'calebcauthon', '2015-10-30T02:44:48Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1508', '37', '13209', 'perf(copy): use ES6 Map to track source/destination objects', '@lgalfaso here\'s the ES6 Map change I promised.\r\n\r\nWhen running f7bf118ecaaab16ed8b3d16febb0ee6bb1d6749c the larger objects are 10-20% faster, but the smaller objects are a bit slower (0-25%, but the times are so small I don\'t think this means much). On my box that meant the larger objects were ~400ms faster, the smaller were 1-3ms slower. Memory usage also goes down 15-30% (30 on the more complicated cases, 15 on the simpler ones).\r\n\r\nWhen using the shim (manually enabling it on chrome) the larger objects are 20-25% slower, the smaller objects are a bit slower just like when using the native `Map`. This is because the shim causes an extra `indexOf` call compared to before this change (one on `get`, a second on `set`). This extra `indexOf` could be avoided if we remove the check if the key already exists in the shim `set` method, but then this wouldn\'t be a proper `Map` shim (or add a magic 3rd param to `set` called \"iAlreadyKnowTheKeyDoesNotExist` and always pass true? :P).\r\n\r\nNote that while profiling `isTypedArray` is what stands out the most, not `Map` or `indexOf`, see #12054.', '13', null, null, 'jbedard', '2015-10-30T05:30:50Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1509', '37', '13210', 'feat($resource): add support for cancelling requests', 'Introduced changes:\r\n\r\n- Deprecate passing a promise as `timeout` (for `$resource` actions).\r\n It never worked correctly anyway.\r\n Now a warning is logged (using `$log.debug()`) and the property is\r\n removed.\r\n- Add support for a boolean `cancellable` property to actions\'\r\n configuration, the `$resource` classes `options` of the\r\n `$resourceProvider`\'s defaults.\r\n If true, the `$cancelRequest` method (added to all returned values for\r\n non-instance calls) will abort the request (if it\'s not already\r\n completed or aborted).\r\n If there is `timeout` specified on the action\'s configuration, the value\r\n of `cancellable` is ignored.\r\n\r\nExample usage:\r\n\r\n```js\r\nvar Post = $resource(\'/posts/:id\', {id: \'@id\'}, {\r\n get: {\r\n method: \'GET\',\r\n cancellable: true\r\n }\r\n});\r\n\r\nvar currentPost = Post.get({id: 1});\r\n...\r\n// A moment later the user selects another post, so\r\n// we don\'t need the previous request any more\r\ncurrentPost.$cancelRequest();\r\ncurrentPost = Post.get({id: 2});\r\n...\r\n```\r\n\r\nFixes #9332\r\nCloses #13050\r\nCloses #13058', '41', null, null, 'gkalpak', '2015-10-30T18:07:19Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1510', '37', '13213', 'fixes #12082 (ngTouch regression since 1.3)', 'Send original event to triggerHandler and bypass prevent ghost click if no coordinates.\r\n\r\nIf there is anchor with ng-click on it the click event was not triggering.\r\n\r\nfixes #12082 ', '1', null, null, 'NorikDavtian', '2015-10-31T05:04:12Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1511', '37', '13216', 'feat(jqLite): add support for \'ngIndeterminate\' as a boolean attribute', 'ng-indeterminate can be used in the same pattern as ng-readOnly, ng-checked, ng-multiple, etc.\r\n \r\nCloses #1411\r\n\r\njsFiddle demo of this feature: http://jsfiddle.net/m6ruj542/', '3', null, null, 'calebcauthon', '2015-10-31T23:38:46Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1512', '37', '13222', 'Updated to danish standards', '', '9', null, null, 'Squazz', '2015-11-02T09:14:03Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1513', '37', '13223', 'docs(tutorial/11 - REST and Custom Services): bower install, not npm', 'If we change the bower.json then we should run \"bower install\", not \"npm install\"', '4', null, null, 'acme', '2015-11-02T09:54:28Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1514', '37', '13226', 'docs(ngRepeat): corrected MDN link', '', '3', null, null, 'JonyD', '2015-11-02T16:36:18Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1515', '37', '13227', 'docs(guide/Unit Testing): a typo was fixed', 'Nothing special, just typo', '2', null, null, 'Lakmus85', '2015-11-02T17:44:50Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1516', '37', '13230', 'fix(jqLite): deregister special `mouseenter` / `mouseleave` events correctly', 'An alternative solution...\r\n\r\nCloses #12795\r\nCloses #12799', '12', null, null, 'petebacondarwin', '2015-11-02T22:55:04Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1517', '37', '13233', 'fix(ngLocale): set FIRSTDAYOFWEEK to monday for german locales', 'first day of week in germans locales should be monday', '4', null, null, 'ctaepper', '2015-11-03T09:22:12Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1518', '37', '13234', 'fix(ngLocale): set FIRSTDAYOFWEEK to monday for german locales', 'first day of week in germans locales should be monday', '1', null, null, 'ctaepper', '2015-11-03T10:33:23Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1519', '37', '13235', 'fix(ngLocale): set FIRSTDAYOFWEEK to monday for german locales', 'first day of week should be monday for german locales', '1', null, null, 'ctaepper', '2015-11-03T10:46:20Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1520', '37', '13236', 'perf(merge): remove unnecessary wrapping of jqLite element', 'Fixes https://github.com/angular/angular.js/commit/75292a6cb5e17d618902f7996e80eb3118eff7b0#commitcomment-14137538', '5', null, null, 'gkalpak', '2015-11-03T12:28:05Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1521', '37', '1324', 'fix(mocks): free up memory after every spec', '', '0', null, null, 'vojtajina', '2012-08-30T21:54:38Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1522', '37', '13243', 'Fix ie 8659 (interpolation in extracted textNodes)', 'This is to test a fix for issue #8659. Locally, it caused another test to fail.\r\n\r\n~~There are a few more commits in here that should be, I\'ll check this out later~~', '5', null, null, 'Narretz', '2015-11-03T20:24:42Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1523', '37', '13244', 'fix(): fix scoping for transclusion directives inside replace directive', 'Tweaks to the implementation of #12975\r\n\r\nCloses #12975\r\nCloses #12936 \r\n', '4', null, null, 'petebacondarwin', '2015-11-03T22:47:09Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1524', '37', '13251', 'fix($location): $locationchangesuccess not fires when browser location changes to URL which ends with# issue #12175 ', 'fix($location): $locationchangesuccess not fires when browser location changes to URL which ends with# issue #12175 ', '4', null, null, 'rrsivabalan', '2015-11-04T15:25:56Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1525', '37', '13252', 'docs($rootScope.Scope): default value of objectEquality parameter', '', '0', null, null, 'thorn0', '2015-11-04T18:50:48Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1526', '37', '13253', 'docs(guide/Directives): change plural \"it\" to possessive', '', '1', null, null, 'jodytate', '2015-11-04T20:57:21Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1527', '37', '13257', 'remove unnecessary return of \'refresh\'', 'It is not necessary to return a value for refresh in this example.', '5', null, null, 'dkrugman', '2015-11-05T14:15:35Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1528', '37', '1326', 'Declaration missed for fix on PR #1222', 'The var declaration was missed for the update to the module documentation. Changes it from var simpleAppModule to var myAppModule.', '3', null, null, 'traviswatsonws', '2012-08-31T19:13:22Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1529', '37', '13261', 'refactor($interval): do not use `notify` to trigger the callback', 'Do not use `$q.notify` to trigger the callback. This allows `$q` to be replaced\r\nwith another Promise/A+ compilant library\r\n\r\nNote: this PR is not enough to close #12533, but should solve the main issue in trying to use Bluebird as a replacement of `$q`', '6', null, null, 'lgalfaso', '2015-11-05T21:00:47Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1530', '37', '13263', 'refactor($compile): remove unnecessary try/catch', 'I don\'t see anything in there that could throw...', '8', null, null, 'jbedard', '2015-11-06T05:44:13Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1531', '37', '13265', 'refactor($compile): simplify multi element directive check', 'I think this is a bit simpler. It also avoids `directiveIsMultiElement()` (which does `$injector.get`) for every attribute of every element when compiling (which might have minor perf improvements when compiling).', '3', null, null, 'jbedard', '2015-11-06T06:35:15Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1532', '37', '13267', 'refactor($compile): move check for interpolation of on-event attributes to compile time', 'BREAKING CHANGE:\r\nPreviously the nodomevents would be thrown at link time for any interpolation on* event attributes. Now this will be throw at compile time similar to the selmulti error.\r\n\r\n\r\nThe breaking change should be rare, but is probably worth mentioning. This makes the two interpolation errors consistent and avoids checking the same thing per link (which previously would log the same error per link).\r\n\r\nThe test changes are not necessary but do make them stricter and more like the selmulti error tests.', '1', null, null, 'jbedard', '2015-11-06T08:29:50Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1533', '37', '13272', 'Fix TypeError: tapElement.blur is not a function', 'Hi,\r\n\r\nI ran into the same issue than #11261 with the following HTML:\r\n```html\r\n<span ng-click=\"scrollService.goToSection(\'my-section\')\">\r\n <svg><use xlink:href=\"#my-icon\"></use></svg>\r\n Title\r\n</span>\r\n```\r\n\r\nOn Firefox mobile, when i tap onto the SVG icon, i get the following error which breaks the event handler:\r\n```\r\nTypeError: tapElement.blur is not a function\r\n```\r\nThe tap element is a SVG node that does not have a \'blur\' function.\r\n\r\nThis commit fixes the issue for me.\r\n\r\nRegards', '3', null, null, 'ghostd', '2015-11-06T21:44:23Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1534', '37', '13273', 'Add request and requestError interception in ngResource', 'This patch adds request and requestError interception for ngResource actions,\r\nas per the documentation found for $http interceptors. It is important to\r\nnote that returning an error at this stage of the request - before the\r\ncall to $http - will completely bypass any global interceptors and/or recovery\r\nhandlers, as those are added to a separate context. This is intentional; intercepting\r\na request before it is passed to the HTTP stack indicates that the resource itself\r\nhas made a decision, and that it accepts the responsibility for recovery.\r\n\r\nCloses #5146', '16', null, null, 'krotscheck', '2015-11-07T00:07:56Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1535', '37', '13279', 'feat($sanitize): enable amending allowed attributes in $sanitize', 'Provide additionalAttributes function in $sanitizeProvider. When called with a comma separated string of attributes, add these attributes to the list of allowed attributes.\r\n\r\nThis potentially allows the user to introduce changes that break the security guarantees of $sanitize.', '6', null, null, 'majello', '2015-11-07T20:56:26Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1536', '37', '1328', 'Allow ng-model bindings to arbitrary functions', 'This allows for very flexible 2-way binding to inputs through getters/setters.\nFor example:\n```html\n<div ng-controller=\"MyCtrl\">\n <input ng-model=\"fun\"/>\n</div>\n\n<script>\n var myApp = angular.module(\'myApp\',[]);\n\n myApp.controller(\'MyCtrl\', function($scope) {\n var _test = \'Hello World!\';\n $scope.fun = function(value) {\n if (value !== undefined){\n _test = value;\n }\n return _test;\n }\n });\n</script>\n```\nThe value of `INPUT[ng-model=\"fun\"]` will be `Hello World!`. As the value changes from user input the function will be called with the new value as the argument, enabling the function to handle how the value gets set.\n\nYou can see a working example with this [jsfiddle](http://jsfiddle.net/CamShaft/kLgTL/10/).', '4', null, null, 'camshaft', '2012-09-01T21:53:28Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1537', '37', '13281', 'docs(ngModel.NgModelController): fix mistake in example', 'The bodies of `resolved` and `rejected` callbacks were in wrong order.', '5', null, null, 'ignovak', '2015-11-09T11:00:28Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1538', '37', '13284', 'docs(tutorial/0 - Bootstrapping): describe your change...', 'my first test (just delete an empty line)', '1', null, null, 'matthew188', '2015-11-10T02:50:45Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1539', '37', '13286', 'perf(ngModel,ngForm): change ng-model/form controllers to use prototype methods', 'This makes the largetable-bp ng-model benchmarks 10-15% faster (down 90-100ms for me). The actual controller instantiation doesn\'t change too much but the overall numbers seem consistently faster, I assume all due to reducing memory usage / gc. Specifically on creation there is ~40% less memory GCed, on destruction there is about ~25% less.\r\n\r\nLooking at the heap snapshot this is entirely from having less closures (~70k => 30k closures), other counts are all equal or very close.\r\n\r\nLooking at the chrome timeline the number of GC events is about half and the time/gc amounts roughly match the benchpress measurements.\r\n\r\nWorth the breaking change? The diff can probably be reduced or split into 2 commits if there\'s interest...', '11', null, null, 'jbedard', '2015-11-10T08:40:30Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1540', '37', '1329', 'add commit-msg hook (commit msg validation)', 'Installation:\n\n````\ncd <angular-repo>\nln -s ../../validate-commit-msg.js .git/hooks/commit-msg\n````\n\nIf you are using gitx, it won\'t display the error (only fail):\nhttp://gitx.lighthouseapp.com/projects/17830/tickets/294-feature-display-hook-error-message-when-hook-fails\nhttps://groups.google.com/group/gitx/browse_thread/thread/a03bcab60844b812\nOther tools should be fine.\n\nSome more ideas, do we wanna do this ?\n\n- allow only specific scopes, eg. fix(docs) should not be allowed\n- auto correct the type to lower case\n- auto correct first letter of the subject to lower case, eg. fix($compile): Bla -> fix($compile): bla\n- auto add empty line after subject, if missing\n- auto remove empty ()\n- auto correct typos in type, eg. doc($compile) -> docs($compile)\n\n', '2', null, null, 'vojtajina', '2012-09-02T03:02:03Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1541', '37', '13292', 'docs(contributing): fix typo (a unambiguous => an unambiguous)', 'use the article “an” before words that start with a vowel sound', '0', null, null, 'ericcarraway', '2015-11-11T04:16:12Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1542', '37', '13293', 'perf($q): reduce closures', 'First commit:\r\n* Only wrap the internal `$$reject` / `$$resolve` when necessary, which is when a promise is resolved with another promise as the result. This is now in a `$$delayResolve` method.\r\n* Move the \"call once\" logic into the `$$reject` / `$$resolve` methods, it already existed in `notify`\r\n* ~~Use `isPromiseLike` instead of redefining it, this is a slight functional change since they were different~~\r\n\r\nSecond:\r\n* Only bind the `Deferred` methods when the `Deferred` will be returned publicly (`$q.defer`). Most of the time it is only used internally and the binding isn\'t necessary. The other option is to stop binding them completely which would be nicer but would be a breaking change.\r\n\r\nAll the `Deferred` / `Promise` methods use somewhere between 20-80% less memory except for a few with no changes (`$q.defer()`, `promise.then()` (no args))...', '22', null, null, 'jbedard', '2015-11-11T08:14:34Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1543', '37', '13295', 'docs(guide/Internet Explorer Compatibility): Clear up potentially confusing terminology', 'The idea of \"deploying\" on a web browser does not seem like suitable terminology for browser-based applications. This might help clear up any potential confusion to newer users as to what AngularJS is. This use of words would have confused me as a newer developer.', '3', null, null, 'cbier', '2015-11-11T21:54:01Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1544', '37', '13297', 'docs(readme): fix typo (setup => set up)', 'spell set up as two words\r\nhere, it is an adjective modifying the noun \"environment\"', '0', null, null, 'ericcarraway', '2015-11-12T04:26:17Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1545', '37', '133', 'Fix old assertions (filters, parser)', 'I did simple node script for replacing old JSTD expectations by Jasmine\'s BDD style...\r\nPlus some small code formatting and refactor...\r\nTest descriptions are still weird, but I don\'t have fantasy today to find better descriptions :-D\r\n\r\nThere are other old tests that need to be corrected, but these contain whole JSTD test definitions (not only assert* methods), so I kept them for this moment...', '2', null, null, 'vojtajina', '2010-11-09T01:26:48Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1546', '37', '1330', 'Please pull my change that makes the time zone optional in the date filter', 'Supersedes https://github.com/angular/angular.js/pull/1315 . I\'ve accepted the CLA and added a testcase.\n\nCommit message:\n---------------------------\nProblem with the current R_ISO8601_STR regex was that the time was optional, but the zone was not.\nThis results in the filter not formatting local date times, which it could easily do.\n\nFor example:\n2012-08-30 -> formatted\n2012-08-30T06:06:06.123Z -> formatted\n2012-08-30T06:06:06.123 -> NOT formatted\n\nA simple change in the regex fixes this. Arguably this is closer to the ISO8601 spec which specifies\nlocal dates being in the \"current time zone\" and not requiring a Z. In any case it behaves more like\na user would expect.\n\n\n', '2', null, null, 'iwein', '2012-09-02T10:15:58Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1547', '37', '13302', 'docs(timeout): minor grammar fix', '', '2', null, null, 'etsuo', '2015-11-14T00:32:06Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1548', '37', '13306', 'fix($httpBackend): make verifyNoOutstandingRequest work as expected', 'Make $httpBackend::verifyNoOutstandingRequest catch unflushed requests made by $http.\r\n\r\nCloses #5453', '1', null, null, 'danidin', '2015-11-15T10:21:53Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1549', '37', '13307', 'fix($httpBackend): make verifyNoOutstandingRequest work as expected', 'Make $httpBackend::verifyNoOutstandingRequest catch unflushed requests made by $http.\r\n\r\nCloses #5453', '0', null, null, 'danidin', '2015-11-15T10:36:35Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1550', '37', '13309', 'docs(guide/Conceptual Overview): $http.success is deprecated', 'Using the standard then method instead success, because success is deprecated', '3', null, null, 'lborgav', '2015-11-15T20:05:04Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1551', '37', '13311', 'docs($http): add a missing semicolon', '', '0', null, null, 'stevemao', '2015-11-15T23:39:46Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1552', '37', '13318', 'fix($compile): support merging special attribute names in `replace` d…', '…irectives\r\n\r\nWhen compiling a `replace` directive, the compiler merges the attributes from\r\nthe replaced element onto the template element.\r\n\r\nUnfortunately, `setAttribute` and other related DOM methods do not allow certain\r\nattribute names - in particular Angular 2 style names such as `(click)` and `[value]`.\r\n\r\nThis is relevant when using ngForward with Angular Material, since the `mgButton`\r\ndirective uses `replace` and in the former you often use `(click)`.\r\n\r\nThis fixes the problem but for those special attributes the speed is considerably\r\nslow.\r\n\r\nCloses #13317', '20', null, null, 'petebacondarwin', '2015-11-16T22:30:08Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1553', '37', '13320', 'Use require.resolve when possible to avoid hard coded module paths.', 'This PR use `require.resolve` when possible to avoid hard coded module paths. Avoid issues with npm@3 that dedupes/flattens packages deps.', '5', null, null, 'jdalton', '2015-11-17T00:47:31Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1554', '37', '13323', 'docs(number): fix use of undefined decimalPlaces', 'Replace `decimalPlaces` with `fractionSize`, as `decimalPlaces` isn\'t defined anywhere and is most likely meant to be `fractionSize`.', '3', null, null, 'rahatarmanahmed', '2015-11-17T18:33:32Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1555', '37', '13324', 'docs(api): add link to global APIs', '', '0', null, null, 'gkalpak', '2015-11-17T20:06:50Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1556', '37', '13326', 'fix(ngOptionsDirective): fix form pristine (use !equals function instead of !== for issue 13211)', 'This pull request is related to Issue\r\n\r\nhttps://github.com/angular/angular.js/issues/13211\r\n\r\nit solves form $pristine and $dirty wrong values in case of multi select element \r\n\r\nprevoiusValue and nextValue are array for example\r\n\r\n previousValue = [1,2]\r\n nextValue = [1,2]\r\n\r\nThe are the same value but the === operator will return false because they are array\r\nafter some debugging i found that these lines cause the problem\r\n\r\n if (!ngModelCtrl.$isEmpty(previousValue)) {\r\n var nextValue = selectCtrl.readValue();\r\n if (ngOptions.trackBy ? !equals(previousValue, nextValue) : previousValue !== nextValue) {\r\n ngModelCtrl.$setViewValue(nextValue);\r\n ngModelCtrl.$render();\r\n }\r\n }\r\n\r\nwhat cause the problem is ngOptions.trackBy is undefined and \r\n(previousValue !== nextValue) i will be true becuase [1,2] !== [1,2]', '5', null, null, 'm-amr', '2015-11-18T01:11:15Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1557', '37', '13331', 'Firefox dual select workaround', 'Firefox (verified on versions 38..42, Windows and Linux-AMD64) can get\r\nconfused about what option is selected after options ngOptions populates\r\nthe select control when it has a empty option that is ng-disabled. It\r\nappears to think both first option added by ngOptions and the one\r\nselected by ngModel are selected. The trigger seems to be angular\r\nleaving the empty option both selected and disabled.\r\n\r\nThis patch works around the problem.', '13', null, null, 'rstuart', '2015-11-18T05:46:46Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1558', '37', '13333', 'fix($animateCss): respect transition styles already on the element', 'Previously, $animateCss wouldn\'t use transition styles that were on the element\r\nbefore the animation process started. Precisely, transition property, timing-function\r\nand delay were overwritten in the process.\r\n\r\nThis is a fix for #12656\r\n\r\nIt\'s a bit of a special case, because all the transition properties are sitting on the element already before $animateCss is called.\r\n\r\nThis could also affect the animation property, I haven\'t checked yet.\r\n\r\nStrangely enough, this fix doesn\'t work when the transition property is `all`, because for some reason $animateCss blocks transition duration etc. when it\'s all - see https://github.com/angular/angular.js/blob/master/src/ngAnimate/animateCss.js#L596 Removing this doesn\'t break any tests, though.', '7', null, null, 'Narretz', '2015-11-18T11:31:41Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1559', '37', '1334', '* Correct a typo in module doc example code', '(where myAppModule should be simpleAppModule). This ties to issue #1333', '1', null, null, 'jayzeng', '2012-09-04T05:59:32Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1560', '37', '13340', 'docs(ngModel.NgModelController): Example inputs behave the same when …', '…they shouldn\'t.\r\n\r\nThe first input demonstrating $rollbackViewValue is meant to rollback the value, not make it blank. Code in it\'s current state makes both behave the same.', '7', null, null, 'FesterCluck', '2015-11-18T18:41:57Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1561', '37', '13341', 'Unnecessary input value update', 'Removing lines because they completely confuse the examples. Script for Plunkr examples needs updating as well.', '2', null, null, 'FesterCluck', '2015-11-18T19:08:09Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1562', '37', '13343', 'Copy performance cherry-picks for 1.3.x', '@bourey - please take a look and see if this would help with 1.3 performance.', '2', null, null, 'petebacondarwin', '2015-11-19T10:07:14Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1563', '37', '13344', '1.3.x copy() performance cherry-picks', '', '2', null, null, 'petebacondarwin', '2015-11-19T10:08:44Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1564', '37', '13346', 'docs: minor grammar fix concepts.ngdoc', '\r\nmissing word in overview', '3', null, null, 'aperala', '2015-11-19T18:49:29Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1565', '37', '13347', 'fix(core): ensure core animate runner is the same with and without animations', 'The `$$AnimateRunner` class is now used as the same code within the\r\ncore $animate service.\r\n\r\nCloses #13205', '1', null, null, 'matsko', '2015-11-19T19:02:39Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1566', '37', '13349', 'fix(core): ensure animate runner is the same with and without animations (1.4)', 'The $$AnimateRunner class is now the same for the core $animate service\r\nand the ngAnimate $animate service. Previously, the core used a different\r\nimplementation that didn\'t match the ngAnimate behavior with regard\r\nto callbacks.', '2', null, null, 'Narretz', '2015-11-19T23:28:59Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1567', '37', '13350', 'docs(error/nobase): making <base> visible in html', 'I couldn\'t see `<base>` in the html webpage, so I fixed it. ', '1', null, null, 'anasqadrei', '2015-11-20T00:40:33Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1568', '37', '13352', 'Avoid browser input[number] defaults', 'Is there a way to use <input type=\"number\" ng-model=\"vm.foo\" /> syntax but WITHOUT usa type=number?\r\nI have some quircks with spinner, mouse wheel and so on.\r\n\r\nThe patched code will works, but I\'m lookin for a external solution\r\n', '5', null, null, 'antonellopasella', '2015-11-20T10:18:12Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1569', '37', '13353', 'docs($swipe): remove reference to ngCarousel', 'Removing ngCarousel reference as it no longer (ever) exists.\r\n\r\nIssue: $swipe doc references component `ngCarousel` #13322', '0', null, null, 'Mutmatt', '2015-11-20T17:34:20Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1570', '37', '13354', 'fix(ngRequired): set valid to false if select value is required (value is not in options)', 'This pull request solve Issue 13172\r\nhttps://github.com/angular/angular.js/issues/13172\r\n\r\ni validate that the view value should be one of the select option\r\nso i overrideng ModelCtrl.$validators.required function in ngOptionsDirective\r\n\r\n ngModelCtrl.$validators.required = function(modelValue, viewValue) {\r\n\r\n if (!attr.required) {\r\n return true;\r\n } else if (ngModelCtrl.$isEmpty(viewValue)) {\r\n return false;\r\n }\r\n\r\n var isValidOption = true;\r\n var viewOptions = [];\r\n // Get all option and add them to viewOptions array\r\n angular.forEach(options.items, function(item) {\r\n viewOptions.push(options.getViewValueFromOption(item));\r\n });\r\n\r\n // In case of multiple view model is an array so validate all view values\r\n // if one of them doesn\'t match set isValidOption to false\r\n if (multiple) {\r\n for (var i = 0, length = viewValue.length; i < length; i++) {\r\n if (viewOptions.indexOf(viewValue[i]) === -1) {\r\n isValidOption = false;\r\n break;\r\n }\r\n }\r\n } else {\r\n if (viewOptions.indexOf(viewValue) === -1) {\r\n isValidOption = false;\r\n }\r\n }\r\n\r\n return isValidOption;\r\n };\r\n\r\nwe have the following cases\r\n\r\n 1 - case attr.required is false i return true\r\n \r\n 2 - case $isEmpty(viewValue) return false\r\n \r\n 3 - case is required and not empty now we need to validate that value is one of the options\r\n and in this case we have two subcases\r\n \r\n a - select in multiple and value is an array\r\n we check that all the values of the array must be in of the select options to return true\r\n \r\n b - select is a single value so this value must be one of the select options to return true\r\n\r\ni think this will solve the problem,\r\n', '10', null, null, 'm-amr', '2015-11-20T18:00:39Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1571', '37', '13356', 'feat(filterFilter): allow overwriting the special `$` property name', 'Previously, the special property name that would match against any\r\nproperty was hard-coded to `$`.\r\nWith this commit, the user can specify an arbitrary property name,\r\nby passing a 4th argument to `filterFilter()`. E.g.:\r\n\r\n```js\r\nvar items = [{foo: \'bar\'}, {baz: \'qux\'}];\r\nvar expr = {\'%\': \'bar\'};\r\n\r\nconsole.log(filterFilter(items, expr, null, \'%\')); // [{foo: \'bar\'}]\r\n```\r\n\r\nFixes #13313', '4', null, null, 'gkalpak', '2015-11-20T23:11:49Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1572', '37', '13359', 'V1.4.x', '', '2', null, null, 'shizhilvren', '2015-11-21T16:21:37Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1573', '37', '1336', 'fixed module example and typos', '', '2', null, null, 'godmar', '2012-09-05T14:30:32Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1574', '37', '13360', 'Fix some markdown mistakes in sce documentation', 'Attempt to fix some markdown mistakes in sce documentation.\r\nhttps://docs.angularjs.org/api/ng/provider/$sceDelegateProvider', '3', null, null, 'Oliboy50', '2015-11-22T14:37:55Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1575', '37', '13363', 'fix($animateCss): consider options.delay value for closing timeout', 'Previously, options.delay was only considered when a class added an\r\nextra transition style, because that leads to style recalculation.\r\n\r\nFixes #13355', '6', null, null, 'Narretz', '2015-11-23T16:44:43Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1576', '37', '13365', 'Modified the short date using yyyy', 'Improved short date for nl, fr,, en and de', '4', null, null, 'chowlouise', '2015-11-24T09:44:35Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1577', '37', '13368', 'Fix documentation: add closing parenthesis', 'closing parenthesis is missing to **docs/content/tutorial/step_02.ngdoc**', '2', null, null, 'JoanClaret', '2015-11-24T14:07:37Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1578', '37', '13373', 'fix($parse): handle interceptors with `undefined` expressions', 'When calling `$parse` with `undefined` as the expression and with an interceptor, then when the function is evaluated, then call the interceptor\r\n\r\nCloses: #13367', '1', null, null, 'lgalfaso', '2015-11-24T21:51:07Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1579', '37', '13376', 'docs(input): ngPattern validates against view value', 'ngPattern doesn\'t validate modelValue any more, it validates the viewValue. (https://github.com/angular/angular.js/pull/12640/files#diff-fd9d2cc2d19609321aa0bd5cfa6b3444R46). \r\n\r\nI think it\'s worth mentioning explicitly, reading \"ngModel value\", I assumed it was referring to the modelValue.\r\n\r\n', '4', null, null, 'melbourne2991', '2015-11-25T11:52:45Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1580', '37', '13377', 'adding moduleExists to angular', 'the method moduleExists allows to verify whether a module was already created or not. Would fix #13371 ', '3', null, null, 'robstoll', '2015-11-25T11:55:02Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1581', '37', '13383', 'fix(ngTransclude): fix case where ngTransclude attribute value equals its key', 'Some preprocessors such as Jade will automatically provide a value for an attribute\r\nrather than leave it empty. E.g. `<div ng-transclude=\"ng-transclude\">`.\r\nIn these situations we still want to use the default transclusion slot.\r\n\r\nCloses #12934', '2', null, null, 'petebacondarwin', '2015-11-25T17:39:58Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1582', '37', '13384', 'Resource fixes', 'One for @gkalpak to review :-)', '3', null, null, 'petebacondarwin', '2015-11-25T18:10:15Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1583', '37', '13385', 'added comma to let the user understand the flow', '', '3', null, null, 'toubou91', '2015-11-25T20:20:26Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1584', '37', '13390', 'feat($locale): Include original locale ID in $locale', 'Most systems use *IETF language tag* codes which are typically a combination of the ISO 639 language code and ISO 3166-1 country code with an underscore or hyphen delimiter. For example `en_US`, `en_AU`, etc.\r\n\r\nWhilst the `$locale.id` comes close, the lowercase format makes it impossible to transform to an IETF tag reliably. For example, it would be impossible to deduce `en_Dsrt_US` from `en-dsrt-us`.\r\n\r\nIt would be very handy for communicating with external systems to be able to pass the IETF tag format, at least with the character casing intact.', '0', null, null, 'philBrown', '2015-11-27T05:24:34Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1585', '37', '13392', 'feat(numberFilter.formatNumber): add min group size to number patterns', 'The whole part of Polish numbers are grouped in 3\'s separated with a space\r\n(and a comma for the decimal separator), but only after there are at least\r\n5 digits in the whole part -\r\nhttps://pl.wikipedia.org/wiki/Separator_dziesi%C4%99tny:\r\n 3,14\r\n 0,178011392519\r\n 157,3567\r\n 5348,26\r\n 25 772,1\r\n 9 212 345,576213\r\nThis change adds a new optional number format property, gMinSize, which if\r\nset causes the whole part of a number to only be grouped if it is greater\r\nthan or equal to gMinSize. A separate pull request will be applied to the\r\nI18N project directly to set gMinSize to 5 for Polish locales.', '0', null, null, 'radmaneshp', '2015-11-27T08:36:10Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1586', '37', '13394', 'fix(formatNumber): better corner case handling', 'The idea here is that we actually parse the input number ourselves and then do the rounding ourselves manually. This allows us more control and reliability on the output for corner case numbers.\r\n\r\nCloses #8674\r\nCloses #12709 \r\nCloses #8705 \r\nCloses #12707 \r\nCloses #10246\r\nCloses #10252', '9', null, null, 'petebacondarwin', '2015-11-27T12:38:16Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1587', '37', '1340', 'docs(guide): fix directive interpolation example code', 'Closes #1339', '0', null, null, 'btford', '2012-09-07T04:18:54Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1588', '37', '13400', 'feat(ngView): reference resolved locals in scope', 'this will make it easier to use ng-route with component pattern by being able to configure something like `$routeProvider.when(\'/\', {resolve: {items: ($http) => $http.get(...)}, template: \'<my-app items=\"resolve.items\" />\'});` and not having to configure a dummy controller that puts the resolved values on the scope.', '11', null, null, 'shahata', '2015-11-27T21:32:43Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1589', '37', '13402', 'docs(orderBy): updated controller example', 'Updated example which manually injects the filter.\r\nIt matches sibling example in functionality.', '1', null, null, 'zainengineer', '2015-11-28T09:14:13Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1590', '37', '13403', 'fix for $emit loop bug, when listeners were deregistered', 'fixes #13401 the $emit loop is not aware which listener was removed', '2', null, null, 'kasparsj', '2015-11-28T09:15:02Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1591', '37', '13405', 'Adding MIT license to bower.json.', '', '4', null, null, 'reiz', '2015-11-29T15:38:56Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1592', '37', '13408', 'Feat: ng-[event]-prepare class for structural animations (ngIf etc)', 'A fix / workaround for #12969\r\n\r\nWe currently don\'t have any place in the docs that documents the classes ngAnimate adds. At least I can\'t find it .:o I think it got lost during 1.4. We should add it back so people can find this feature easier.\r\n\r\nIdea by @matsko ', '12', null, null, 'Narretz', '2015-11-29T19:07:10Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1593', '37', '1341', 'Update Angular Scenario to emit RunnerBegin event', 'THis is to allow Testacular Angular Scenario adapter to correctly display total number of tests from the beginning', '1', null, null, 'shyamseshadri', '2012-09-07T05:50:42Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1594', '37', '13411', 'refactor: single implementation of isPromiseLike()', 'There are multiple different implementations of isPromiseLike(). Change them all to use the one from Angular.js and use the stricter implementation from $q.\r\n\r\nCloses #13372', '6', null, null, 'lucastetreault', '2015-11-30T04:09:03Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1595', '37', '13412', 'ngResource collection $new method (ActiveRecord style)', 'Why:\r\nWhen a collection result is empty, there is no reference to the originated resource object.\r\nBenefits:\r\nCompatible restful models for new and existing resources in resolve blocks.', '3', null, null, 'AlexVangelov', '2015-11-30T04:23:09Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1596', '37', '13413', 'docs(guide/Scopes): small spelling/grammar fix', '', '3', null, null, 'adamzerner', '2015-11-30T06:58:28Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1597', '37', '13414', 'fix(ngAnimate): don\'t normalize classes on follow-up animations to jo…', '…ined animations\r\n\r\nThis allows follow-up animations to remove a class that is currently\r\nbeing added in a running animation. \r\nThis previously didn\'t work if the running animation was a joined animation itself.\r\n\r\nFixes #13380', '1', null, null, 'Narretz', '2015-11-30T11:40:35Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1598', '37', '13416', 'fix(ngMock): clear out `$providerInjector` after each test', 'Closes #13397', '2', null, null, 'petebacondarwin', '2015-11-30T14:56:01Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1599', '37', '13417', 'fix($parse): prevent assigning on constructor properties', 'Prevents assignments on `constructor` properties', '0', null, null, 'lgalfaso', '2015-11-30T21:31:23Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1600', '37', '13418', 'docs($controller): describe your change...', 'fix typo', '3', null, null, 'xieranmaya', '2015-12-01T03:29:31Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1601', '37', '13419', 'using svg, allow svg attrs also, not only elements', '', '1', null, null, 'Vnthf', '2015-12-01T05:46:04Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1602', '37', '13420', 'style($compile,$controller): adding function names for debug/tracing', 'I find this very useful when profiling or looking at heap dumps. Normally browsers figure out the `var` name in stack traces but when looking at a heap dump things like `var Attributes = function() { .. }` or `return function() { ... }` all show up as \"anonymous\"...', '1', null, null, 'jbedard', '2015-12-01T07:53:08Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1603', '37', '13421', 'refactor($compile): move setting of controller data to single location', 'This does move the data call after the construction of the controller. Is that a breaking change (that has no tests)? If so I could do this a bit differently, but I like how `setupControllers` now creates the controllers which will make it easier to move `setupControllers` + `getControllers` out of the per-elemenet compile closure... ', '2', null, null, 'jbedard', '2015-12-01T08:01:35Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1604', '37', '13422', 'refactor($compile): allow transclude data to be GCed after a non-cloning transclusion', 'This does two things:\r\n* nulls out some data when a non-cloning transclude completes to allow mainly the `boundTranscludeFn` func/closure to be GCed (the other things are *probably* still referenced)\r\n* throws if that transclude is executed again since that would either re-link the same element or clone the linked element', '3', null, null, 'jbedard', '2015-12-01T09:17:50Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1605', '37', '13424', 'fix(ngAnimate): ignore children without animation runner when closing…', '… them\r\n\r\nDuring parent structural animations, ongoing animations on child elements\r\nare closed. These children are looked up by checking the data-ng-animate\r\nattribute. If an element is the clone of an animating element,\r\nit might have this attribute, but no animation runner associated with it,\r\nso we need to ignore it.\r\n\r\nFixes #11992\r\nCloses #13423', '1', null, null, 'Narretz', '2015-12-01T17:12:33Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1606', '37', '13427', 'refactor($compile): move setup/get controller methods out of the compile node closure', 'This moves two methods out of the per-element compile closure.\r\n\r\n`getControllers` has no changes\r\n\r\n`setupControllers` required the `newIsolateScopeDirective` param and the use of `hasElementTranscludeDirective` was removed (.data on a comment is a noop). This can be a little simpler after something such as #13421 ', '1', null, null, 'jbedard', '2015-12-02T06:17:57Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1607', '37', '13428', 'Capitalize the name \'JSHint\' in the comments', 'When referencing JSHint, the first three letters are capitalized. \r\n\r\nhttps://github.com/jshint/jshint', '1', null, null, 'henryw4k', '2015-12-02T07:41:13Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1608', '37', '13429', 'docs(ngModel.NgModelController): Prevent model overwrite', 'If there are default values in the model, they get overwritten at runtime because the read() function is initiating with a blank element and is assigning that to the model.', '11', null, null, 'uglu', '2015-12-02T09:45:01Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1609', '37', '1343', 'Fix the regexp serialization issue for scenario runner', 'This is simliar to Issue 119. \n\nProblem: If given a RegExp in toMatch and fails, {} is printed in the output. (This happens in angular-phonecat Step 03)\n\nFix: Use string value of the RegExp in `toJsonReplacer`.\n\nQuestion: This may affect the correctness of `angular.fromJson` since `angular.fromJson(angular.toJson(/test/))` should be an `Object`. Jasmine uses their own pp method that handles RegExp in a similar way. Would it be better to fix this by introducing a simple pp method in ngScenario?\n\nThanks,\nGary', '3', null, null, 'ghsyeung', '2012-09-07T08:19:08Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1610', '37', '13430', 'docs(guide/Expressions): fixes about void and new operator usage', '1. `void` operator works in angular expressions in all 1.x versions of Angular. For example: expression {{void(2+3)+\'x\'}} is being interpolated into \'x\' without any errors. Documentation incorrectly states that this is impossible.\r\n\r\n2. You cannot create new objects inside Angular expressions. For example: {{ new Date() }} expression fails.', '5', null, null, 'bhovhannes', '2015-12-02T12:07:16Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1611', '37', '13431', 'feat(ngTransclude & $compile): fix treatment of unfilled optional slots', 'Closes #13426', '15', null, null, 'petebacondarwin', '2015-12-02T14:04:05Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1612', '37', '13433', 'feat(ngMock): destroy $rootScope after each test', 'Previously $rootScope would be new for each test, but old $rootScopes would never be destroyed.\r\nNow that we are able to destroy the $rootScope, doing so provides an opportunity for code to clean\r\nup things like long-lived event handlers between tests.', '2', null, null, 'andyrooger', '2015-12-03T01:22:15Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1613', '37', '13438', 'docs($cacheFactory.Cache): Providing more clarity about the cache obj…', 'Many AngularJS users/developers are confused with the names $cacheFactory.Cache, $templateCache, etc. They strongly believe that it is the browser\'s native cache. Hence, this part of the doc requires immediate updation. \r\n\r\nReferences: \r\nhttps://github.com/angular/angular.js/blob/v1.4.8/src/Angular.js#L1834\r\nhttps://github.com/angular/angular.js/blob/v1.4.8/src/ng/cacheFactory.js#L96\r\nhttps://github.com/angular/angular.js/blob/v1.4.8/src/ng/cacheFactory.js#L242', '1', null, null, 'KnightCoder', '2015-12-03T10:34:18Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1614', '37', '13443', 'Interpoilate directive controller name', 'In directive `xDir` directive if you have:\r\n\r\n```javascript\r\nrestrict: \'E\',\r\nscope: true,\r\ncontroller: \'@\',\r\nname: \'component\',\r\n```\r\n\r\nThen you shall be able to pass controller name dynamically, like:\r\n\r\n```html\r\n<x-dir component=\"{{\'a\' + \'b\'}}\"></x-dir>\r\n```\r\n\r\nThis way I\'ll be able to use `ab` controller in directive.', '5', null, null, 'karaxuna', '2015-12-03T15:20:15Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1615', '37', '13444', 'feat(http): Check if url passed to $http is String', 'Checks early on if the url passed in is a string or not.\r\n\r\nFixes #12925', '0', null, null, 'Utsav2', '2015-12-03T16:35:25Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1616', '37', '13445', 'docs($compile): Remove deprecation notice on replace', 'The fact that replace is deprecated in Angular 2 basically means nothing. Pretty much everything\'s deprecated in Angular 2. This notice discourages people from using features of Angular 1 which could actually serve their purposes best just because they think that it\'ll get removed from Angular 1.', '5', null, null, 'kentcdodds', '2015-12-03T21:29:37Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1617', '37', '13447', 'fix(ngClick): subract processing time of the click action', 'subract the time it takes for the browser to process the click action for preventing the ghost click. long running processes or slower devices where a lot of rendering is happening would get the ghost click every time.', '5', null, null, 'Tr4v1s', '2015-12-04T01:07:50Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1618', '37', '13448', 'docs($resource): fix mixed singular/plural', 'fix \"any of the parameter value\" to be singular to match the rest of the text block', '0', null, null, 'marcusnielsen', '2015-12-04T14:07:43Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1619', '37', '13449', 'docs(ngDisabled): describe your change...', 'There is a typo in the doc. It should be \'ng-disabled\' and not just \'disabled\'.', '2', null, null, 'arthur2001', '2015-12-04T16:29:11Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1620', '37', '13452', 'docs(tutorial/8 - More Templating): describe your change...', 'Original statement is in the past tense (as if it referring to step-7 of the tutorial). Mentioned changes however are being in the done in the step-8 which is presented in the remainder of this page. Hence, future tense :)', '4', null, null, 'sijanmilan', '2015-12-05T11:32:23Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1621', '37', '13453', 'fix($sanitize): blacklist SVG `<use>` elements', 'The use element can reference external svg\'s (same origin) and can include\r\nxlink javascript urls or foreign object that can execute xss.\r\n\r\nThis change disallows `<use>` elements in sanitized SVG markup.\r\n\r\nAn example of a malicious SVG document would be:\r\n\r\nSVG to sanitize:\r\n```\r\n<svg><use xlink:href=\"test.svg#xss\" /></svg>\r\n```\r\n\r\nExternal SVG file (test.svg)\r\n```\r\n<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\r\n<svg xmlns:svg=\"http://www.w3.org/2000/svg\"\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"100\"\r\n height=\"100\"\r\n id=\"xss\">\r\n<a xmlns:xlink=\"http://www.w3.org/1999/xlink\" xlink:href=\"javascript:alert(1)\">\r\n <circle cx=\"50\" cy=\"50\" r=\"40\" stroke=\"black\" stroke-width=\"3\" fill=\"red\" />\r\n</a>\r\n</svg>\r\n```\r\n\r\nHere the SVG to sanitize loads in the `test.svg` file via the `<use>` element.\r\nThe sanitizer is not able to parse this file, which contains malicious\r\nexecutable mark-up.\r\n\r\nThis can only be taken advantage of if the external file is available via the\r\nsame origin restrictions in place.', '3', null, null, 'petebacondarwin', '2015-12-05T18:50:16Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1622', '37', '13454', 'feat($parse): provide a mechanism to access the locals object', 'Extends the built-in identifiers definitions by adding `$local`. This is a non-assignable reference to the locals object.\r\n\r\nCloses: #13247', '2', null, null, 'lgalfaso', '2015-12-06T16:06:57Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1623', '37', '13455', 'fix($compile): allow transclude maps to use normalized camelCase element names', 'The ability to do this was removed at https://github.com/angular/angular.js/commit/c3a2691115b92536fb3d213d0ca16ac68cf32415#diff-a732922b631efed1b9f33a24082ae0dbL1881\r\n\r\nOn second thoughts we should support both camelCase normalized and exact match elements.\r\n\r\nCloses #13439', '6', null, null, 'petebacondarwin', '2015-12-06T21:52:22Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1624', '37', '13456', 'Fixed the headings for Changes to your code table', '', '3', null, null, 'eltronix', '2015-12-07T09:42:39Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1625', '37', '13458', 'test(booleanAttrsSpec): add unit test for IE11 URL parsing failure', 'IE11/10/Edge fail when setting a href to a URL containing a % that isn\'t a valid escape sequence\r\nReference: https://github.com/angular/angular.js/issues/13388', '2', null, null, 'andypatterson', '2015-12-07T15:32:00Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1626', '37', '13459', 'docs(guide/$location): fix table header formatting', 'Al alternative approach to #13456 (with improved spacing and borders).', '2', null, null, 'gkalpak', '2015-12-07T16:25:19Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1627', '37', '13460', 'fix(input): add missing chars to URL validation regex', 'Update the list of permitted chars in URLs\r\n\r\nCloses #13379', '5', null, null, 'andypatterson', '2015-12-07T17:10:37Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1628', '37', '13461', 'fix($animateCss): remove animation end event listeners on close', 'Previously the transition/animation end events were not removed when the\r\nanimation was closed. This normally didn\'t matter, because\r\nthe close function knows the animation are closed and won\'t do work\r\ntwice.\r\nHowever, the listeners themselves do computation that could fail when\r\nthe event was missing some data, for example when the event was\r\ntriggered instead of natural.\r\n\r\nCloses #10387', '3', null, null, 'Narretz', '2015-12-07T19:58:14Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1629', '37', '13462', 'fix($resource): remove (broken) support for promises as `timeout`', 'This fixes #13393 by:\r\n\r\n1. Reverting 7170f9d.\r\n2. Update the docs to note that promise as timeout is not supported.\r\n3. Log a warning when someone tries to use it.\r\n\r\nThe commits could/should be squashed before merging. We probably need a BC notice (since the broken support for promises as `timeout` has sneaked into `v1.4.8`, right ?', '13', null, null, 'gkalpak', '2015-12-07T22:49:23Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1630', '37', '13466', 'Fix $animate.pin() to work with nested elements', 'Given the following DOM structure:\r\n```\r\n- e1\r\n -e2\r\n -e3 <--- pin this\r\n e4 <-- animate this\r\n```\r\n\r\nthe function that is responsible for finding the parent element that is pinned to the app root would find e3, set it as parent, but not indicate that a rootElement had been found.\r\n\r\nThe PR also contains a second commit that adds a test and fixes a use of minErr inside ngAnimate.', '1', null, null, 'Narretz', '2015-12-08T13:21:21Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1631', '37', '13467', 'fix(ngOptions): unset [selected] on unselected empty option', '(Cleaned up version of #13331)\r\n\r\nFirefox (verified on versions 38..42, Windows and Linux-AMD64) can get\r\nconfused about what option is selected after options ngOptions populates\r\nthe select control when it has a empty option that is ng-disabled. It\r\nappears to think both the empty option added by ngOptions and the one\r\nselected by ngModel are selected. The trigger seems to be angular\r\nleaving the empty option both selected and disabled.\r\n\r\nThis patch works around the problem.', '5', null, null, 'Narretz', '2015-12-08T18:10:54Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1632', '37', '13468', 'add parameter to $swipe.bind', 'adds a parameter to $swipe.bind to allow for a different vertical buffer separating swipe from scroll. currently swipe vs scroll is determined by the change in y being greater then the change in x', '13', null, null, 'Binvention', '2015-12-08T18:20:45Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1633', '37', '1347', 'Eval async', 'Last PR only', '1', null, null, 'mhevery', '2012-09-07T18:21:40Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1634', '37', '13471', 'fix(ngOptions): add ngEmptyValue attribute to ngOptions', 'Reference: angular#13334\r\n\r\nThis would allow an additional attribute on ng-options to provide a default value for options that lack values.', '21', null, null, 'Thesoro', '2015-12-08T23:47:28Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1635', '37', '13472', 'fix(ngAnimate): don\'t normalize classes on follow-up animations to jo…', '…ined animations\r\n\r\nThis allows follow-up animations to remove a class that is currently\r\nbeing added.\r\n\r\nFixes #13339\r\nFixes #13380\r\nCloses #13414', '5', null, null, 'matsko', '2015-12-09T08:38:04Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1636', '37', '13477', 'docs(ngTransclude): name value pair were the wrong way round', 'The plunker associated with multiple transcludes fails because of this error.', '6', null, null, 'jamesclark92', '2015-12-09T15:16:50Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1637', '37', '13479', 'V1.4.x', '', '1', null, null, 'sudhakarvenkatesh', '2015-12-09T16:26:44Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1638', '37', '1348', 'chore(scripts): add init-repo script', '', '1', null, null, 'vojtajina', '2012-09-07T19:26:55Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1639', '37', '13480', 'fix($compile): Fix namespace detection for achor elements', 'Fixed a bug where anchor elements with `SVG` in the href attribute got incorrectly detected as svgs. Seems the detection only happens when the anchor element has a child that needs to be transcluded.\r\n\r\nCalling `node.toString()` on a anchor returns the `href` value instead of the expected `[object HTMLAnchorElement]`.\r\n\r\nAdded a test for this edge case.\r\n\r\nPlunker to reproduce: http://plnkr.co/edit/OBgCS8phjTwMTFYwhk6D', '5', null, null, 'harrison', '2015-12-09T19:35:50Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1640', '37', '13483', 'fix(ngAria): Apply ARIA attrs correctly', 'BREAKING CHANGE: Where appropriate, ngAria now applies ARIA to custom controls only, not native inputs. Because of this, support for `aria-multiline` on textareas has been removed. \r\n\r\nNew support added for ngValue, ngChecked, and ngRequired, along with updated documentation. Also supports ngTrueValue and ngFalseValue as part of ngModel.\r\n\r\nCloses #13078\r\nCloses #11374\r\nCloses #11830\r\n\r\ncc @petebacondarwin (I got this done finally! :smile:)', '31', null, null, 'marcysutton', '2015-12-09T22:14:49Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1641', '37', '13485', 'fix(Module): allow passing template/templateUrl in array notation', '', '20', null, null, 'shahata', '2015-12-09T23:52:46Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1642', '37', '13486', 'Handle undefined provider method during module loading', 'https://github.com/angular/angular.js/issues/13481#issuecomment-163435774', '4', null, null, 'robstove', '2015-12-09T23:57:04Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1643', '37', '13488', '[don\'t merge]: fix($animateCss): respect transition styles already on the element', 'Previously, $animateCss wouldn\'t use transition styles that were on the element\r\nbefore the animation process started. Precisely, transition property, timing-function\r\nand delay were overwritten in the process.\r\n\r\nCloses #12656\r\nCloses #13333', '17', null, null, 'Narretz', '2015-12-10T09:44:04Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1644', '37', '13489', 'fix(ngOptions): don\'t skip optgroup elements with value === \'\'', 'Internet explorer 11 returns \'\' for optgroup elements without a value attribute.\r\nWe only want to skip option elements with value \'\'\r\n\r\nFixes #13487', '4', null, null, 'Narretz', '2015-12-10T11:18:04Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1645', '37', '1349', ' Fixed appWindow.angular is undefined', 'this happens when no angular lib is loaded.', '2', null, null, 'zhuomingliang', '2012-09-08T04:47:20Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1646', '37', '13490', 'docs: revamp information about interpolation', '- Move interpolation info from Directive guide into new interpolation guide\r\n- Add information about boolean attributes to interpolation guide\r\n- remove wroong examples from prefixed boolean attribute docs, link\r\nto interpolation guide instead\r\n- mention additional examples for attributes that benefit from ngAttr\r\n\r\nI felt this was a good idea because currently interpolation information has no real place in the guide. So these docs try to bring the available info together and add some other stuff that has come up recently (ngAttr, mixing expressions and interpolation)', '25', null, null, 'Narretz', '2015-12-10T14:20:32Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1647', '37', '13491', 'docs(select): describe your change...', 'fixed typo in comments.', '3', null, null, 'ReneFerwerda', '2015-12-10T15:19:07Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1648', '37', '13492', 'fix(jqLite): do not break if `Node` is not available', 'Fixes #13442', '13', null, null, 'gkalpak', '2015-12-10T16:19:34Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1649', '37', '13493', 'fix(ngInclude): add a return in a promise handler', 'Since bluebird 3, when a promise is created within another promise handler, and nothing is returned from it, the library prints a warning.\r\n\r\nSee related issue https://github.com/petkaantonov/bluebird/issues/846', '6', null, null, 'lionep', '2015-12-10T18:29:03Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1650', '37', '13495', 'fix(ngAnimate): do not use event.timeStamp anymore for time tracking', 'Due to recent changes in Chrome, Firefox and Webkit use of the\r\nevent.timeStamp value will lead to unpredictable behaviour due to\r\nprecision changes. Therefore it\'s best to stick entirely to use\r\n`Date.now()` when it comes to confirming the end of transition-\r\nending values. See #13494 for more info.\r\n\r\nApplies to 1.2, 1.3, 1.4 and 1.5.\r\n\r\nCloses #13494', '4', null, null, 'matsko', '2015-12-10T19:43:03Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1651', '37', '13497', 'fix: Use Date.now() instead of Event.timeStamp to detect animation end', 'Chrome and Firefox are planning to change event.timeStamp to be a\r\nhigh resolution time instead of epoch time. This means that the\r\nevent.timeStamp will not longer be compatible with Date.now()[1, 2]\r\n\r\nInstead we can use Date.now() at the moment when the event is\r\nreceived by event listener instead.\r\n\r\nThis addresses https://github.com/angular/angular.js/issues/13496\r\n\r\n[1] http://crbug.com/538600\r\n[2] https://bugzilla.mozilla.org/show_bug.cgi?id=1231619#c3', '1', null, null, 'majido', '2015-12-10T20:00:59Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1652', '37', '13498', 'docs($routeProvider): document `resolveAs` and assiging `resolve` map on scope', 'Related to #13400.', '2', null, null, 'gkalpak', '2015-12-10T21:46:14Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1653', '37', '135', 'Docs', 'formatter docs', '0', null, null, 'mhevery', '2010-11-09T04:41:09Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1654', '37', '1350', 'Various documentation fixes', 'I\'ve fixed some of the typos and other minor issues I\'ve noticed on the documentation. Commits are generally divided by method.', '1', null, null, 'mernen', '2012-09-08T20:39:25Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1655', '37', '13502', 'Update animateCss.js to not remove events from elements', 'animateCss currently removes all events from and element during close(). We should check if any animationend events have occured by checking the length of the events array, rather than its truthiness.', '4', null, null, 'josephperrott', '2015-12-11T01:48:58Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1656', '37', '13503', 'V1.4.x material breakage rollback', '', '2', null, null, 'IgorMinar', '2015-12-11T02:05:26Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1657', '37', '13504', 'revert: fix($animateCss): remove animation end event listeners on close', 'This reverts commit c98e08fd871fa5df39c66e9700345c2ae0f21bc0.\r\n\r\nThis commit was identified as incompatible with ng-material at Google\r\nand is causing broken builds there. Proper fix to be investigated once\r\nthe immediate regression is addressed.', '21', null, null, 'IgorMinar', '2015-12-11T02:06:23Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1658', '37', '13507', 'Bugfix - Typos', 'This PR fixes few typo found around the place', '13', null, null, 'jutaz', '2015-12-11T09:30:59Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1659', '37', '13511', 'fix(jqLite): don\'t deregister all listeners when calling off with \'\'', '.off should only deregister all events when the first argument is undefined.', '2', null, null, 'Narretz', '2015-12-11T10:18:56Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1660', '37', '13513', 'fix(ngMock): trigger digest with `$httpBackend.verifyNoOutstandingRequest`', 'To be consistent with `$httpBackend.verifyNoOutstandingExpectation` and `$httpBackend.flush`\r\nFixes #13506 ', '3', null, null, 'katemihalikova', '2015-12-11T11:33:52Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1661', '37', '13514', 'fix($animateCss): don\'t unregister events when empty', '', '8', null, null, 'Narretz', '2015-12-11T11:41:10Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1662', '37', '13517', 'chore(travis/build.sh): move ddescribe check before unit tests', 'This was changed as part of https://github.com/angular/angular.js/pull/9792.\r\nWhile the logic is sound that style errors shouldn\'t block tests from\r\nrunning, ddescribe should run before the tests.\r\nOtherwise, when Travis exits with a warning after some browsers have run,\r\nddescribe doesn\'t get run and it doesn\'t immediately become apparent\r\nthat not all tests have run.', '23', null, null, 'Narretz', '2015-12-11T17:30:13Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1663', '37', '13518', 'docs(ngModel): add section explaining ngModel watching by reference ', '…and not value\r\n\r\nadd section to ngModel docs explaining that for objects and collections changing a property doesn\'t\r\ntrigger re-rendering.\r\n\r\nlargely lifted from already-existing section on same topic in ngOptions.\r\n\r\nCloses: #13224', '0', null, null, 'Thesoro', '2015-12-11T22:12:34Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1664', '37', '13519', 'Bugfix - Typos', 'Here is another one typo-crusher PR!\n\nMost notable this time - `./test` directory. Also fixed one rogue CSS rule: `soild` -> `solid`.', '1', null, null, 'jutaz', '2015-12-11T22:27:45Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1665', '37', '13520', 'docs(form): remove mention of interpolated control names not being supported', 'The docs state that interpolation cannot be used in control names.\r\nThis used to be true, but not anymore.', '4', null, null, 'gkalpak', '2015-12-11T23:55:51Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1666', '37', '13522', 'fix(ngRepeat): Check own object property', '', '7', null, null, 'jray', '2015-12-12T17:55:10Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1667', '37', '13524', 'Adds the ability to reregister a watcher thru the property `restore`', 'Two commits:\r\n* A small performance optimization on watchers deregistration\r\n* Adds a the ability to restore a watcher once it was unregistered', '3', null, null, 'lgalfaso', '2015-12-12T20:37:48Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1668', '37', '13525', 'fix($compile): Add missing variable declaration', '', '1', null, null, 'lgalfaso', '2015-12-13T11:24:00Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1669', '37', '1353', 'fix(ngResource): Fix a spelling typo', 'fix(ngResource): Fix a spelling typo (agressive => aggressive) in resource.js encodeUriSegment docblock', '1', null, null, 'jayzeng', '2012-09-10T06:53:38Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1670', '37', '13531', 'Merge pull request #1 from angular/master', 'update to latest', '2', null, null, 'izogain', '2015-12-14T11:51:19Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1671', '37', '13532', 'Merge pull request #1 from angular/master', 'update to latest', '1', null, null, 'izogain', '2015-12-14T11:55:58Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1672', '37', '13533', 'Merge pull request #1 from angular/master', 'update to latest', '1', null, null, 'izogain', '2015-12-14T11:57:38Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1673', '37', '13534', 'Merge pull request #1 from angular/master', 'update to latest', '2', null, null, 'izogain', '2015-12-14T12:01:42Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1674', '37', '13535', 'Merge pull request #1 from angular/master', 'update to latest', '1', null, null, 'izogain', '2015-12-14T12:11:25Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1675', '37', '13536', 'Merge pull request #1 from angular/master', 'update to latest', '1', null, null, 'izogain', '2015-12-14T12:22:45Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1676', '37', '13540', 'feat($compile): Allow ES6 classes as controllers with bindToController: true', 'Modify `$injector.invoke` so ES6 classes would be invoked using `new`\r\n\r\nCloses: #13510', '5', null, null, 'lgalfaso', '2015-12-14T22:50:07Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1677', '37', '13543', 'fix(ngInclude): do not compile template if original scope is destroyed', 'With slow internet connection scope may be destroyed before template is loaded.\r\nPreviously in this case ngInclude compiled template that leaded to memory leaks\r\nand errors in some cases.\r\n\r\nCloses #13515', '6', null, null, 'zgmnkv', '2015-12-15T10:29:25Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1678', '37', '13544', 'fix(input): fix URL validation being too strict', 'Background:\r\nPrior to ffb6b2f, there was a bug in `URL_REGEXP`, trying to match the hostname as `\\S+` (meaning\r\nany non-space character). This resulted in never actually validating the structure of the URL (e.g.\r\nsegments such as port, path, query, fragment).\r\nThen ffb6b2f and subsequently e4bb838 fixed that bug, but revealed `URL_REGEXP`\'s \"strictness\" wrt\r\ncertain parts of the URL.\r\n\r\nSince browsers are too lenient when it comes to URL validation, this commit relaxes the \"strictness\"\r\nof `URL_REGEXP`, focusing more on the general structure, than on the specific characters allowed in\r\neach segment.\r\n\r\nNote 1: `URL_REGEXP` still seems to be stricter than browsers in some cases.\r\nNote 2: Browsers don\'t always agree on what is a valid URL and what isn\'t.\r\n\r\nFixes #13528', '9', null, null, 'gkalpak', '2015-12-15T10:43:26Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1679', '37', '13546', 'docs: add docs for ngPattern, ngMinlength, ngMaxlength', 'Closes #9991', '1', null, null, 'Narretz', '2015-12-15T13:02:58Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1680', '37', '1355', 'chore(scripts): add init-repo script', '', '1', null, null, 'vojtajina', '2012-09-11T23:44:59Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1681', '37', '13551', 'fix(linky): do not throw on non-string values', 'Fixes #13547', '5', null, null, 'gkalpak', '2015-12-15T18:32:10Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1682', '37', '13552', 'chore(travis): update to use node 4.x', '', '2', null, null, 'petebacondarwin', '2015-12-15T18:34:03Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1683', '37', '13553', 'chore(build): add a validation step for angularFiles', 'The output looks like this (when passing):\r\n\r\n```bash\r\nRunning \"validate-angular-files\" task\r\nValidating 13 files from the \'ngAnimate\' module\r\nValidating 5 files from the \'ngCookies\' module\r\nValidating 7 files from the \'ngMessageFormat\' module\r\nValidating 3 files from the \'ngMessages\' module\r\nValidating 3 files from the \'ngResource\' module\r\nValidating 5 files from the \'ngRoute\' module\r\nValidating 4 files from the \'ngSanitize\' module\r\nValidating 3 files from the \'ngMock\' module\r\nValidating 6 files from the \'ngTouch\' module\r\nValidating 3 files from the \'ngAria\' module\r\nValidating 76 files from the \'ng\' module\r\nValidating 5 files from the \'angularLoader\' module\r\nAll files were detected successfully!\r\n```\r\n\r\nWhen failing (when a file is referenced in a module but doesn\'t exist in the local filesystem):\r\n\r\n```bash\r\nRunning \"validate-angular-files\" task\r\nValidating 14 files from the \'ngAnimate\' module\r\n>> src/ngAnimate/referenced-but-missing-file.js does not exist in the local file structure\r\nValidating 5 files from the \'ngCookies\' module\r\nValidating 7 files from the \'ngMessageFormat\' module\r\nValidating 3 files from the \'ngMessages\' module\r\nValidating 3 files from the \'ngResource\' module\r\nValidating 5 files from the \'ngRoute\' module\r\nValidating 4 files from the \'ngSanitize\' module\r\nValidating 3 files from the \'ngMock\' module\r\nValidating 6 files from the \'ngTouch\' module\r\nValidating 3 files from the \'ngAria\' module\r\nValidating 76 files from the \'ng\' module\r\nValidating 5 files from the \'angularLoader\' module\r\nWarning: Not all files were properly detected the local file structure Use --force to continue.\r\n```\r\n\r\nWhen failing (when a file exists locally but isn\'t used in any module):\r\n\r\n```bash\r\nRunning \"validate-angular-files\" task\r\nValidating 13 files from the \'ngAnimate\' module\r\nValidating 5 files from the \'ngCookies\' module\r\nValidating 7 files from the \'ngMessageFormat\' module\r\nValidating 3 files from the \'ngMessages\' module\r\nValidating 3 files from the \'ngResource\' module\r\nValidating 5 files from the \'ngRoute\' module\r\nValidating 4 files from the \'ngSanitize\' module\r\nValidating 3 files from the \'ngMock\' module\r\nValidating 6 files from the \'ngTouch\' module\r\nValidating 3 files from the \'ngAria\' module\r\nValidating 76 files from the \'ng\' module\r\nValidating 5 files from the \'angularLoader\' module\r\n>> src/ngAnimate/missing-file exists in the local file structure but isn\'t used by any module\r\nWarning: Not all files were properly detected the local file structure Use --force to continue.\r\n```', '8', null, null, 'matsko', '2015-12-15T19:48:12Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1684', '37', '13557', 'Updating example to use standard promise syntax', 'Examples were using deprecated .success and .error rather .then', '3', null, null, 'mkalish', '2015-12-16T12:23:37Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1685', '37', '1357', 'doc($q): fix missing bracket in example', 'Add bracket to greeting example', '3', null, null, 'Urigo', '2012-09-12T16:05:36Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1686', '37', '1359', 'fix($compile): reference local in isolate scope', 'This was really corner case:\nWatcher needs to return changed value, to notify that model might have changed and one more $digest cycle needs to be performed.\n\nThe watcher, that takes care of reference binding into an isolate scope (\"=\"), did not return changed value, if the change was from the isolate scope to the parent.\n\nIf any other watcher returned change, it worked fine, as this change caused re-digest.\n\nCloses #1272', '1', null, null, 'vojtajina', '2012-09-13T09:41:00Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1687', '37', '136', 'Issue 134 scenario dsl element css', 'Support the key value methods like css on element() DSL. Closes #134', '1', null, null, 'esprehn', '2010-11-09T06:46:17Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1688', '37', '1361', 'chore(testing): Testacular config files + rake tasks', '- adds testacular config files for jqlite, jquery, modules and e2e tests\n- replaces obsolete JsTD Rake tasks with Testacular onces\n- rake tasks are parameterazied so that they can be used locally as well as on CI server\n\nusage:\n\nrake test # run all tests on Chrome\nrake test[Safari] # run all tests on Safari\nrake test:jqlite # run unit tests using jqlite on Chrome\nrake test:jqlite[Safari,\"--reporter=dots\"] # run jqlite-based unit tests on Safari with dots reporter\nrake autotest:jquery # start testacular with jquery-based config and watch fs for changes\nrake test:e2e # run end to end tests', '5', null, null, 'IgorMinar', '2012-09-13T19:00:11Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1689', '37', '1362', 'tests for isXXX function ', '- isBoolean function is already existing. However, no comment, so add comment\n- add testing for isXXX functions\n- use === and !== to replace == and != in isXXX functions', '4', null, null, 'zhenbzha', '2012-09-14T21:27:26Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1690', '37', '1364', ' $http config.param expands array values properly.', 'Today, calling e.g. $http(url, { params: { a: [1,2,3] } }) results in a query\nstring like \"?a=%5B1%2C2%2C3%5D\" which is undesirable. This commit enhances\nbuildURL to createa query string like \"?a=1&a=2&a=3\".\n\nFixes #1363.', '16', null, null, 'tdavis', '2012-09-14T21:46:26Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1691', '37', '1365', 'docs(misc): update download page to recommend Google CDN', 'Documentation should point people to the CDN for hosted code.\n\nAlso the example link should use the minified code as that\'s what people will copy and paste :)', '3', null, null, 'daaain', '2012-09-14T22:40:05Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1692', '37', '1368', 'feat($timeout-mock): verify no pending tasks', 'Added verifyNoPendingTasks method, which throws error if not all\ndeferred tasks have been flushed\n\nRelated to the issue #1245', '1', null, null, 'petrovalex', '2012-09-15T16:05:38Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1693', '37', '137', 'Issue 123 scenario repeater binding', 'Support matching binding expressions with substring matching for repeater column() and repeater row().\r\n', '1', null, null, 'esprehn', '2010-11-09T19:28:13Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1694', '37', '1373', 'docs: load angular from can only on production', 'So that when running the docs locally, eg. during e2e testing, we use the latest build version of angular, rather than the stable one from CDN.', '0', null, null, 'vojtajina', '2012-09-17T23:56:19Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1695', '37', '138', 'docs: service', '* basic services description from wiki (with small updates)\n* service template\n* service overview\n* added @requires tag to parser + test\n\nWe still need (at least):\n\n* some more examples\n* @methodOf tag and description of methods\n* @property tag and description of properties (fields)', '2', null, null, 'vojtajina', '2010-11-09T20:28:13Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1696', '37', '1385', 'Fixed some types in guide', 'I fixed some typos/grammar in the guide for Angular.js.', '0', null, null, 'davedx', '2012-09-19T10:24:13Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1697', '37', '1386', 'Doc fixes', 'Hi, I fixed some typos/grammar in the guide.', '0', null, null, 'davedx', '2012-09-19T10:25:28Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1698', '37', '1387', 'Some typo/grammar fixes in the docs', 'Third time\'s the charm. :o Fixed some typos/grammar errors in the guide.', '1', null, null, 'davedx', '2012-09-19T10:40:10Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1699', '37', '139', 'Hash bootstrap', 'just added spec.', '1', null, null, 'IgorMinar', '2010-11-09T23:13:03Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1700', '37', '1395', 'chore(test): add junit config for testacular', '', '1', null, null, 'vojtajina', '2012-09-20T07:51:00Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1701', '37', '1398', 'Added contribution guidelines file for GitHub', 'Added file to help curb dupe issue reports.\n\nInfo take from AngularJS docs page, groups header, etc\n\nSee https://github.com/blog/1184-contributing-guidelines', '8', null, null, 'Iristyle', '2012-09-20T14:46:53Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1702', '37', '1399', 'Add feature to use key for mapping in ngRepeat', 'The attribute `npRepeatUseKey` toggles whether to use the key (for arrays,\nthis would be the index, for objects, this would be the key) for mapping\nvalues to their respective scopes.\n\nI have not added spec/tests and documentation changes because I\'m awaiting input/feedback on this implementation.\n\nReferring to Issue #1374', '2', null, null, 'chrisirhc', '2012-09-21T00:35:09Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1703', '37', '1402', 'fix($resource) Route constructor, updated RegExp', 'Update RegExp to allow urlParams with out leading slash (/).\n- Will allow reoucese to be loaded from a relative path\n\nExample:\nvar R = $resource(\':path\');\nR.get({ path : \'data.json\' });\n\nExample usage:\nLoad resources in applications not using webserver, ie local webapp in on a tablet.', '5', null, null, 'fredrikbonander', '2012-09-21T11:48:19Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1704', '37', '1406', 'fixing issue #1111', '', '0', null, null, 'rkirov', '2012-09-22T02:02:38Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1705', '37', '1407', 'feat(scenario): add mouseover method to the ngScenario dsl', 'so e2e tests are more readable.\n- it adds a mouseover() method to element that trigger the mouseover\nevent on that element.\n\nMotivation: I wanted to write a test that checks that the method in\nthe ng-mouseover directive was correct.\n\n````coffeescript\nit \"should display the user friends when mouseover the avatar \", ->\n element(\".user-avatar\").mouseover()\n # ...\n````', '6', null, null, 'pedrodelgallego', '2012-09-22T08:50:17Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1706', '37', '1408', 'fix($resource): Prevent default params to be shared between actions', 'Having a $resource defined as:\n\nvar R = $resource(\'/Path\', {}, {\n get: {method: \'GET\', params: {objId: \'1\'}},\n perform: {method: \'GET\'}\n});\n\nwas causing both actions to call the same URI (if called in this order):\n\nR.get({}); // => /Path?objId=1\nR.perform({}); // => /Path?objId=1', '4', null, null, 'deviousdodo', '2012-09-23T00:13:41Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1707', '37', '1410', 'Made the basic module demo work', 'A variable seems to have been named wrong.', '1', null, null, 'gabrielf', '2012-09-23T20:31:01Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1708', '37', '1415', 'fix($rootScope): allow removing a listener during event', 'There is a bug, if an event listener is removed during the event. The next listener can be skipped, or null pointer exception can happen.\n\nNot sure, what is the best solution for this problem.\n\nI assume, that removing listeners does not happen so often. Otherwise we might iterate through the array and remove empty items after every event / or just sometimes :-D', '1', null, null, 'vojtajina', '2012-09-25T08:12:31Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1709', '37', '1421', 'docs: Minor grammar fixes. Input needed on other proposed enhancements.', 'I was lying in bed with a cold today and decided to do some doc cleanup.\n\nThere are a few other changes I would like to make but would like some input first:\n\n1. The Unit Testing section of the guide is incomplete. I would be happy to finish it off if whoever wrote the original doc could give me a few lines of what they intended to cover under each incomplete heading.\n2. The tutorial is using an older version of the seed project. What about updating it to use yeoman or at least Testacular? Not sure if that would make it harder for Windows users, though.\n3. The tutorial is also using the \"global function\" style. What about updating it to use myApp.controller() as that seems to be a best practice?', '4', null, null, 'prognostikos', '2012-09-26T13:42:19Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1710', '37', '1424', 'Fix \'isomers\' typo in Directives guide', 'I\'m guessing this was a victim of autocorrect.', '1', null, null, 'duelinmarkers', '2012-09-27T20:41:25Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1711', '37', '1432', 'Small mistype fix.', 'Hi, mistype in guide doc.', '1', null, null, 'peroksid', '2012-10-02T11:02:19Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1712', '37', '1440', 'Fix($location): Reset $locaiton.$$replace with every watch call.', 'fixes #1111', '1', null, null, 'rkirov', '2012-10-06T05:56:32Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1713', '37', '1446', 'feat(linky): Allow optional \'target\' argument.', 'Closes #1443.', '9', null, null, 'zdexter', '2012-10-09T18:06:31Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1714', '37', '1447', 'fix(ngScenario): Error messages in XML output of scenario tests', 'Fix the XML output of scenario tests so that it properly includes error\r\nmessages from failing specs.', '6', null, null, 'juliemr', '2012-10-09T18:32:42Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1715', '37', '1449', 'Fix \"API Docs\" link.', 'The \"API Docs\" link points to docs.angularjs.org which pulls up the old version of the angular api.\r\nIt should link to docs.angularjs.org/api.', '3', null, null, 'kevinwestern', '2012-10-10T03:58:25Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1716', '37', '1454', 'Removing \'X-Requested-With\' from default headers.', 'fixes #1004', '22', null, null, 'rkirov', '2012-10-12T19:44:29Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1717', '37', '1455', 'fix($http) Only set X-XSFR-TOKEN header for same-domain request.', 'fixes #1096', '1', null, null, 'rkirov', '2012-10-12T22:15:27Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1718', '37', '1456', 'Updating JSDoc to return Promise instead of * in $timeout service.', 'The cancel function accepts a Promise, but the timeout function fails to specify returning a Promise.\r\n\r\nMy guess is this could be because of the Promise object being augmented with the timeout ID from the $browser, but I\'m not so sure.', '1', null, null, 'wesalvaro', '2012-10-14T08:57:42Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1719', '37', '1458', 'Documentation fixes', 'Fix some typos and name mismatches between examples and example code.', '7', null, null, 'jergason', '2012-10-14T16:02:30Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1720', '37', '1461', 'Update docs/content/tutorial/step_05.ngdoc', 'The controller is expecting a $httpBackend object but one is not provided.', '1', null, null, 'kevinwestern', '2012-10-15T21:15:32Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1721', '37', '147', 'ng:include onload', '', '1', null, null, 'IgorMinar', '2010-11-16T19:33:52Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1722', '37', '1470', 'Added support for telephone links in sanitize', 'added support for telephone links and also fixed typo', '2', null, null, 'annavester', '2012-10-17T20:37:05Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1723', '37', '1471', 'docs(angular.module): fixed a typo in run function', 'The word **with** was doubled across rows in the ngDoc documentation for `angular.Module#run` method.', '1', null, null, 'hkdobrev', '2012-10-18T08:04:25Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1724', '37', '1474', 'Fix JQLiteClone in IE7/8', 'Addresses Issue #1381, wherein non-native HTML elements receive an\r\nempty namespace when used within directives on IE7/8. For example,\r\n`<nav></nav>` renders as `<:nav></:nav>`, which prevents the tag\r\nfrom being styled.\r\n\r\nThe root cause is the use of `cloneNode` within `JQLiteClone`. Even\r\nwith an HTML5 polyfill, early versions of IE are unable to clone\r\nnon-native elements without adding this \'empty\' namespace.\r\n\r\nThe solution, as seen in the corresponding `clone` function in full\r\njQuery, is to use innerHTML upon another established element to create\r\nthe clone.', '4', null, null, 'jamesreggio', '2012-10-18T22:15:20Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1725', '37', '1475', 'Add Common Pitfalls section to FAQ.', 'Also some minor spelling fixed to FAQ in general.', '0', null, null, 'shepheb', '2012-10-19T15:45:03Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1726', '37', '1476', 'Pitfalls FAQ Section', '', '1', null, null, 'shepheb', '2012-10-19T16:22:18Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1727', '37', '1477', 'fix(currency): Handle not-quite-zero values', 'IEEE 754 floating point sometimes results in values that are very small,\r\nrather than zero. One example is 1.0 + 1.07 - 2.07, which returns\r\n4.440892098500626e-16 instead of 0.\r\n\r\nThis change tweaks the number formatting logic so that an exponential\r\nvalue with a negative exponent that is larger than the precision+1\r\nreturns 0 instead. For example: with precision 2, anything with an\r\nexponent of -4, -5 or more would become 0. 9e-3 = 0.009 = 0.01, but 9e-4\r\n= 0.0009 = 0.001 = 0.00. This detail is unlikely to matter since this\r\nquirk is usually only triggered with values very close to zero.\r\n\r\nCloses #1469', '1', null, null, 'shepheb', '2012-10-19T18:33:57Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1728', '37', '1478', 'refactor($rootScope): allow partial $digest within $apply', '$apply() was calling $digest() on $rootScope using closure variable, which makes it hard to override. Now it calls it on this.$root, which means people can override the $root property on a scope in order to make $apply $digest only part of the app.\r\n\r\nThis is useful for stuff like dialogs, where you can set the dialogs scope to be $root and therefore any subsequent $apply() will $digest only the dialog, without the rest of the universe.', '4', null, null, 'vojtajina', '2012-10-19T20:12:47Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1729', '37', '1479', 'Making testacular a dependency to avoid having to install it globally', 'Doing a global install of `testacular` causes npm issues on some machines. This commit makes it a local dependency and modifies the `Rakefile` accordingly. ', '4', null, null, 'sudhirj', '2012-10-21T06:22:31Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1730', '37', '1480', 'fix(select): Select option with a label of 0 is not shown. Closes #1401.', 'Bug caused by the use of the `||` operator to replace all non-truthy values with an empty string. Changed to replace only `undefined` values.\r\n\r\nCloses #1401.', '2', null, null, 'sudhirj', '2012-10-21T07:38:48Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1731', '37', '1481', 'Update docs/content/guide/module.ngdoc', 'Fix broken sample code: s/simpleAppModule/myAppModule/', '1', null, null, 'fredsa', '2012-10-21T19:28:52Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1732', '37', '1482', 'Update docs/content/guide/dev_guide.services.$location.ngdoc', 'Fix table formatting so headings are bold, rows are separated by lines, and rows have :hover style', '1', null, null, 'fredsa', '2012-10-21T19:57:00Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1733', '37', '1483', 'Add optional constructor to factored resources', 'Right now it is impossible (as far as we know) to use a custom constructor for a resource. An optional constructor parameter to the `$resource` factory could do the trick, by using the default (`copy(value || {}, this);`) constructor only when a custom one is not provided.', '3', null, null, 'rewritten', '2012-10-23T10:30:36Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1734', '37', '1487', 'Fix $compile text node issue in IE7/8', 'IE7/8 inconsistency adds and removes empty text nodes between block,\r\ninline, and comment elements. These implicit nodes may appear or vanish\r\nafter directive compilation, which breaks the correlation between the\r\nnodeList and nodeLinkFn arrays within compositeLinkFn.\r\n\r\nThis commit simply ignores empty text modes both during compilation and\r\nlinking under the assumption that an empty text node will never have an\r\nassociated directive.', '4', null, null, 'jamesreggio', '2012-10-23T20:20:40Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1735', '37', '1488', 'Do a one-off interpolation of @ locals', 'Ensures that the link fn receives attributes that are already interpolated.\r\n\r\nThis will make the @ locals consistent with = locals, in that they can be used straight up in the link function.\r\n\r\nCurrently this confuses many directive developers.\r\nIt also requires that they use attrs.$observe to access the interpolated value in the link function even though it could be readily available there.\r\n\r\nObviously, if they want to be able to do work when the interpolated value changes they will still need to create a $observe function but this is currently true of \'=\' locals, where the initial value is available in the link function but they have to use $watch to deal with changes to the value.\r\n\r\n[ Disclaimer: I am running on Windows, and I couldn\'t get the e2e tests to run but all the unit tests seem to pass.]', '0', null, null, 'petebacondarwin', '2012-10-24T10:22:08Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1736', '37', '1489', 'docs(contribute): fix task name for continuous testing', 'Just something that confused me until I checked `rake -T`. The docs were advocating the `test:*` namespace for both single-run test and continuous watching.', '1', null, null, 'mernen', '2012-10-24T11:46:51Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1737', '37', '1494', 'Fix 836 1166', '', '2', null, null, 'IgorMinar', '2012-10-25T08:23:10Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1738', '37', '1496', 'fix(doc): typo on FAQ', 'Typo reported on #1493', '1', null, null, 'mernen', '2012-10-25T12:07:44Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1739', '37', '1498', 'Add option to edit source in Angular Docs in Plunkr as well', '', '1', null, null, 'shyamseshadri', '2012-10-25T15:27:48Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1740', '37', '15', 'Closure upgrade', '', '1', null, null, 'IgorMinar', '2010-09-20T14:27:11Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1741', '37', '1500', 'Tiny typo in an example', '', '1', null, null, 'sqwishy', '2012-10-26T03:55:08Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1742', '37', '1507', 'ngResource is usable via prototyping & file://', 'Doco added for ngResource and that\'s its usable over file:// Useful to people doing prototyping.', '1', null, null, 'paul-hammant', '2012-10-29T19:52:14Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1743', '37', '1508', 'fix(SpecRunner.js): data-ng and x-ng based attributes are now found', 'Prefixed attributes like data-ng-model and x-ng-model were not being\r\nfound by the Selector. It was only looking at ng: and ng- prefixed\r\nattributes.\r\nAdded a few tests as well to ensure the aforementioned prefixed\r\nattributes are being matched properly.\r\n\r\nCloses #1020', '4', null, null, 'adam33', '2012-10-30T01:57:51Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1744', '37', '1509', 'fix(removePatch): fire $destroy event when full jQuery is used', 'This patch corrects a problem observed when using ngRepeat to create required inputs inside a form. If the user removed the text from an input (making it invalid) and then carried out an action to delete the appropriate part of the model then the input element was never removed from the form, causing the form to stay $invalid although in fact all current elements were $valid. Because the form then had an invalid validation token retained for a destroyed control it was not possible to recover the correct state for the form without destroying it.\r\n\r\nThe previous code relied upon internal jQuery structures which are not present in v.1.8.2 (current). This code uses the public API to fire the $destroy custom event, and so should work with any post-1.4 jQuery version.', '1', null, null, 'PeteAppleton', '2012-10-30T13:49:04Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1745', '37', '151', 'Issue 145', '', '1', null, null, 'mhevery', '2010-11-16T22:01:14Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1746', '37', '1512', 'fix(removePatch): fire $destroy event when full jQuery is used', 'We found an issue where jQuery 1.8.2 is used where form controls created by ngRepeat are never removed from the parent form because the $destroy custom event is not fired. As a result, if a control was invalid (due to the model binding) and then destroyed the form\'s validity state became out-of-sync with the model and impossible to restore. This patch corrects the issue.\r\n\r\nThe previous code relied upon internal jQuery structures which are not\r\npresent in v.1.8.2 (current). This code uses the public API to fire the\r\n$destroy custom event, and so should work with any post-1.4 jQuery\r\nversion.', '9', null, null, 'PeteAppleton', '2012-10-31T12:48:31Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1747', '37', '1513', 'Update docs/content/guide/module.ngdoc', 'fixed example app, `simpleAppModule` should have been `myAppModule`.', '1', null, null, 'refractalize', '2012-10-31T20:52:12Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1748', '37', '1514', 'Ability to configure the encoding/decoding data for $resource', 'Right now it seems like the $resource module excepts the data from the REST API call to be returned the content of the response however sometimes it might not be formatted that way. What I have done is instead of getting the data from the responce.data automatically, it is now a configurable function that defaults to the current process.\r\n\r\nThere is now a 4th optional parameter for $resource() that is the function used to parse for the data of the response so that if the REST API you are working with has the data formatted slightly (or completely) different than excepted, it is very easy to still use the $resource module.\r\n\r\nAn example of a REST API that has a different response the what $resource right now except for be the Jira REST API.\r\n\r\nI have already submitted the electronic CLA.', '17', null, null, 'ryanzec', '2012-10-31T22:11:45Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1749', '37', '1520', 'docs(guide/directives): Fixed small typo', 'Just for clarity & consistency.', '1', null, null, 'sergiopantoja', '2012-11-02T19:59:38Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1750', '37', '1524', 'feat($routeProvider): Allow using functions as template params in \'when\'', 'This pull-request allows using custom functions when assigning templates in $routeProvider.when() method.\r\n\r\nThe new functionality could be used to generate templates on the fly based on the route parameters. Also, if used in templateUrl, the particular template URL that gets loaded can be customized.\r\n\r\nP.S. I\'ve just signed the CLA.', '19', null, null, 'lrlopez', '2012-11-03T20:18:20Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1751', '37', '1528', 'feat($parse+Scope): smarter handling of constant expressions', 'This patch adds two properties to functions returned by `$parse`: literal and constant.\r\n\r\n* `literal` is set to true if the expression\'s top-level is a JavaScript\r\n literal (number, string, boolean, null/undefined, array, object), even\r\n if it contains non-literals inside.\r\n* `constant` is set to true if the expression is known to be made\r\n entirely of constant values, i.e., evaluating it will always yield the\r\n same result.\r\n \r\nA consequence is that a JSON expression is guaranteed to be both literal and constant.\r\n\r\nThen, `Scope.prototype.$watch()` checks for `constant`, and won\'t keep it in the watchers list, meaning this expression is evaluated only once rather than needlessly evaluating it on every `$digest` cycle. For this reason, this also solves issue #1376.', '3', null, null, 'mernen', '2012-11-05T11:38:24Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1752', '37', '1529', 'Fix typo in encodeUriSegment documentation', '', '1', null, null, 'knewter', '2012-11-05T20:40:45Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1753', '37', '1530', 'Fix typo in ngList documentation', '', '1', null, null, 'knewter', '2012-11-05T20:42:59Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1754', '37', '1535', 'feat(noConflict): restore previous namespace', 'Angular needs to provide a way to restore the previously defined `angular` global namespace to prevent conflict with existing scripts. This is especially important if there are multiple versions of angular loaded onto the same page. If angular is used in a thirdparty javascript environment it should provide a way to clean up the global after loading. \r\n\r\nThis feature is similiar to the jQuery [noConflict](http://api.jquery.com/jQuery.noConflict/) function. ', '16', null, null, 'treasonx', '2012-11-06T22:39:55Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1755', '37', '1536', 'Fixed some text in the directive guide, scope \'=\'', 'Fixed some confusing names, now much easier to grok.', '1', null, null, 'refractalize', '2012-11-07T09:26:14Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1756', '37', '1538', 'docs(directive): correct expression, fix typo and re-wrap lines', 'Regarding the comment on line 343 of c6b4ab35.', '3', null, null, 'mernen', '2012-11-07T10:41:01Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1757', '37', '154', 'docs update', 'Better overview of services and fix of a small bug in collect.markdown()\n\nWhy we don\'t include jasmine for scenario test ?\nI was about to write scenario test for service overview example, but I don\'t know, how to mock window.alert properly...\n\nWe should refactor docs/collect.js:\nFor example \'markdown\' tests test Showdown library as well, I hope we need to test angular, to Showdown, but at this moment, Showdown is hacked in markdown()...\n\nLet me know, what do you think about the test code in service overview. It\'s a try to test services directly, without creating scope, as I hope it\'s not necessarry....\nWe can mock dependencies much easier then...', '3', null, null, 'vojtajina', '2010-11-17T22:57:08Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1758', '37', '1542', 'fix (directive): Preserve display type in ngShow and ngHide', 'From #1540, this preserves the display type when showing and hiding an element. This will only apply on the initial display state of the element. If the element\'s display type is modified to another value after creation, this will only set it back to its initial state, not the state it was before ngShow or ngHide have been performed.', '12', null, null, 'jtymes', '2012-11-08T14:46:07Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1759', '37', '1543', 'Adding ngRequired to docblocks', 'Fixes #1202\r\n\r\nI\'m assuming this is the only location I need to update', '3', null, null, 'ProLoser', '2012-11-09T00:15:55Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1760', '37', '1544', 'feat(Grunt) Switch from Rake to Grunt', 'Migrates the Angular project from Rake to Grunt.\r\n\r\n### Benefits:\r\n- Drops Ruby dependency\r\n- Lowers barrier to entry for contributions from JavaScript ninjas\r\n- Simplifies the Angular project setup and build process\r\n- Adopts industry-standard tools specific to JavaScript projects\r\n- Windows support for the build and end-to-end tests\r\n\r\n### BREAKING CHANGE:\r\n Rake is completely replaced by Grunt. Below are the deprecated Rake tasks and their Grunt equivalents:\r\n\r\n- rake --> grunt\r\n- rake package --> grunt package\r\n- rake init --> N/A\r\n- rake clean --> grunt clean\r\n- rake concat_scenario --> grunt build:scenario\r\n- rake concat --> grunt build\r\n- rake concat_scenario --> grunt build:scenario\r\n- rake minify --> grunt minify\r\n- rake version --> grunt write:version\r\n- rake docs --> grunt docs\r\n- rake webserver --> grunt webserver\r\n- rake test --> grunt test\r\n- rake test:unit --> grunt test:unit\r\n- rake test:<jqlite|jquery|modules|e2e> --> grunt test:<jqlite|jquery|modules|end2end|e2e>\r\n- rake test[Firefox+Safari] --> grunt test --in=[Firefox,Safari]\r\n- rake test[Safari] --> grunt test --in=[Safari]\r\n- rake autotest --> grunt autotest\r\n\r\n### NOTES:\r\n- For convenience grunt test:e2e starts a webserver for you, while grunt test:end2end doesn\'t.\r\nUse grunt test:end2end if you already have the webserver running.\r\n- Removes duplicate entry for Describe.js in the angularScenario section of angularFiles.js\r\n- Updates docs/src/gen-docs.js to use #done intead of the deprecated #end\r\n- Uses grunt-contrib-connect instead of lib/nodeserver (removed)\r\n- Removes nodeserver.sh, travis now uses grunt webserver\r\n- Built and minified files are identical to Rake\'s output, with the exception of one less\r\ncharacter for git revisions (using --short) and a couple minor whitespace differences\r\n\r\nCloses #199', '49', null, null, 'geddski', '2012-11-09T03:53:00Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1761', '37', '1546', 'Update the docs for ngHide', 'Makes it more readable and more in line with ngShow', '5', null, null, 'christianvuerings', '2012-11-09T13:44:37Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1762', '37', '1547', 'Resource promise', 'Added promise properties $q and $resolved to resource object. \r\n\r\nI put in some unit tests to make sure the properties are behaving as expected for get, query, save and delete operations.', '10', null, null, 'partap', '2012-11-09T21:09:20Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1763', '37', '1548', 'JSONP requests with the same callback name', 'Instead of use JSON_CALLBACK to jsonp requests (and angular.callbacks_X callbacks), using JSON_SINGLE_CALLBACK to use always the same callback name (useful to caching)', '13', null, null, 'ricardohbin', '2012-11-09T21:26:45Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1764', '37', '1552', 'feat(sanitize): support telephone links', 'Added support for telephone links.\r\nFixed a couple of typos in sanitizeSpec.js.', '3', null, null, 'annavester', '2012-11-10T20:42:06Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1765', '37', '1555', 'fix(compile): Interpolate @ locals before the link function runs', 'Do a one-off interpolation of @ locals to ensure that the link fn receives attributes that are already interpolated.\r\n\r\n(Rebased and reworded the commit message to make it easier to merge!)', '12', null, null, 'petebacondarwin', '2012-11-11T21:16:37Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1766', '37', '1559', 'feat(routeParams): Add support to catch-all parameters in routes', 'This allows <code>routeProvider</code> to accept parameters that matches substrings even when they contain slashes if they are prefixed with an asterisk instead of a colon.\r\n\r\nThis PR introduces a new syntax for route params, so we would have:\r\n\r\n- <code>:param</code> for a single param\r\n- <code>*param</code> for catch-all params\r\n\r\nFor example, routes like <code>edit/color/:color/largecode/*largecode</code> will match with something like this <code>http://appdomain.com/edit/color/brown/largecode/code/with/slashs</code>\r\n\r\nIt also matches catch-all routes in the middle of the path.', '4', null, null, 'lrlopez', '2012-11-12T19:29:12Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1767', '37', '1560', 'feat(routeProvider): Add support to catch-all parameters in routes', 'This allows <code>routeProvider</code> to accept parameters that matches substrings even when they contain slashes if they are prefixed with an asterisk instead of a colon.\r\n\r\nThis PR introduces a new syntax for route params, so we would have:\r\n\r\n- <code>:param</code> for a single param\r\n- <code>*param</code> for catch-all params\r\n\r\nFor example, routes like <code>edit/color/:color/largecode/*largecode</code> will match with something like this <code>http://appdomain.com/edit/color/brown/largecode/code/with/slashs</code>\r\n\r\nIt also matches catch-all routes in the middle of the path.', '15', null, null, 'lrlopez', '2012-11-12T21:14:30Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1768', '37', '1562', 'fix($cacheFactory) return undefined when removing non-existent cache ent...', '...ry\r\n\r\nMaking remove behave like get() when an entry does not exist by returning undefined. \r\n\r\nFrom #1497', '7', null, null, 'jtymes', '2012-11-13T13:11:47Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1769', '37', '1564', 'fix(ngClass) when reversing the orderByFilter ngClassOdd and ngClassEven is not updated.', 'Related to issue #1563', '2', null, null, 'rgaskill', '2012-11-13T14:11:09Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1770', '37', '1566', 'dropdown support to tabbable tabs directive', 'Tested with Mozilla Firefox 16 and Google Chrome 23 in Windows XP.\r\n\r\n[Plunker demo](http://plnkr.co/edit/o3hSr8)', '6', null, null, 'neocris', '2012-11-13T14:19:51Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1771', '37', '1570', 'feat(e2e dsl) fail when trying to select an option that does not exist', 'I am using e2e testing to test-drive my views.\r\n\r\nWithout this change, it is fails silently when I try to select an option that doesn\'t exist. then my test fails at a later stage when the app is not in the expected state. \r\n\r\nThis change is useful for me because it shortens the feedback cycle when I test-drive my stuff.', '1', null, null, 'stephanebisson', '2012-11-14T05:04:13Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1772', '37', '158', 'Fix location encoding hash', '', '13', null, null, 'vojtajina', '2010-11-18T01:18:08Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1773', '37', '1583', 'feat($cacheFactory): Make Cache.put return the value', 'Using cache.put is slightly awkward because you can\'t just wrap an expression with it like you can a standard object.\n\nCoffeescript with plain object:\ncache = {}\n(key) -> cache[key] ?= genValue(key)\n\nCoffeescript with $cacheFactory cache:\n\ncache = $cacheFactory.get(\'cache\')\n(key) -> cache.get(key) ? (r = genValue(key); cache.put(key, r); r)\n\nWith this change:\n\ncache = $cacheFactory.get(\'cache\')\n(key) -> cache.get(key) ? cache.put(key, genValue(key))', '8', null, null, 'taralx', '2012-11-15T23:22:35Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1774', '37', '1588', 'feat(input): make expressions work for ng-Maxlength and ng-Minlength', 'ng-minlength and ng-maxlength attributes do not accept expressions as\ninput parameter.\nMake it work as intended. Fix based on #1077.\n\nCloses #1405', '6', null, null, 'florianorben', '2012-11-17T00:59:45Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1775', '37', '1593', 'Don\'t clobber paramDefaults in ngResource actions', 'The \'paramDefaults\' parameter is global to a resource created by $resource. The\n\'extractParams\' function was merging \'actionParams\' into it every time when it\nreally should be creating a new object that is a merge of paramDefaults and\nactionParams. paramDefaults itself should remain unchanged.\n\nThe following code proves the issue (it\'s a negative test I didn\'t add a spec for it).\n\n it(\'should not clobber paramDefaults\', function() {\n\n var R = $resource(\'/Customer/:id/:otherActionParam\',\n {id: \'@id\'}, {otherAction: {method: \'POST\', params: {otherActionParam: \'other-action-says-hi\'}}});\n\n var thing = new R({id:123});\n\n $httpBackend.expect(\'POST\', \'/Customer/123/other-action-says-hi\').respond();\n thing.$otherAction();\n $httpBackend.flush();\n\n // This expectation fails because other-action-says-hi is still here.\n $httpBackend.expect(\'POST\', \'/Customer/123\').respond();\n thing.$save();\n $httpBackend.flush();\n });', '3', null, null, 'freshtonic', '2012-11-20T07:04:09Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1776', '37', '1595', 'Added missing </div> tag to sourceEdit directive template', 'I was browsing the code and noticed something odd in the sourceEdit directive template. it seemed to miss an end div tag.... so I added one. ', '1', null, null, 'JohannesEH', '2012-11-21T08:51:28Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1777', '37', '1596', 'Fixing a couple of typos in the documentation.', 'No code changes.', '1', null, null, 'krisajenkins', '2012-11-21T10:01:28Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1778', '37', '16', 'Closure upgrade', 'closure upgrade (as of 2010-09-20)', '1', null, null, 'IgorMinar', '2010-09-20T14:44:43Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1779', '37', '1601', 'fix(injector) Fixes #1452: Provider can\'t be configured with an array', 'The `provider` constructor now checks to see if the arguments are an\narray, which it then instantiates via the `providerInjector`.', '5', null, null, 'sudhirj', '2012-11-23T21:42:54Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1780', '37', '1602', 'Repeater fixes', 'I have reverted the original fix for #933 because it was making the repeater unstable and in general was causing a lot of churn in the DOM. The current fix via ngModel is not ideal, but better IMO.\n\nI also added proper fix for #1076. Similar fix was originally submitted by an external contributor, Misko dismissed it and accepted only tests because these tests were now passing thanks to the repeater changes - but that was only because the repeater was inefficient and was rebuilding the dom on every digest.', '14', null, null, 'IgorMinar', '2012-11-23T22:34:12Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1781', '37', '1603', 'jQuery 1.8.2 upgrade + compatibility fixes', '', '3', null, null, 'IgorMinar', '2012-11-24T00:57:04Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1782', '37', '1604', 'New costumization possibilities to currency', 'Hi, a fix to a failing test in a formar pull request:\nhttps://github.com/angular/angular.js/pull/1082', '2', null, null, 'Urigo', '2012-11-24T14:12:46Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1783', '37', '1607', 'Fix indentation in ngResource and moved Resource.bind definition', '* properly indented a couple of functions\n* moved Resource.bind out of the actions foreach', '1', null, null, 'cezar-berea', '2012-11-25T15:18:38Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1784', '37', '161', 'Add angular.Array.limitTo', 'is the name ok? other alternative is `limitTo` which reads a bit better, but is longer\n\n <li ng:repeat=\"item in items.$orderBy(\'name\').$limitTo(5)\">{{item}}</li>\n\nvs\n\n <li ng:repeat=\"item in items.$orderBy(\'name\').$limit(5)\">{{item}}</li>', '2', null, null, 'IgorMinar', '2010-11-22T18:29:45Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1785', '37', '1611', 'fix($injector): provider can now be defined in the array format', '`injector.instantiate` is now called for arrays too, instead of only for functions.\r\n\r\nCloses #1452', '8', null, null, 'sudhirj', '2012-11-26T19:21:15Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1786', '37', '1612', 'fix($resource): HTTP method should be case-insensitive', 'Perform call `angular.uppercase` on all given action methods.\n\nCloses #1403', '1', null, null, 'sudhirj', '2012-11-27T06:26:49Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1787', '37', '1613', 'test(ngClass) added a ngOdd/Even sort test which uses the orderBy filter', 'The existing sort test does not use the orderBy filter to change the order of the rows.', '3', null, null, 'rgaskill', '2012-11-27T13:14:16Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1788', '37', '1616', 'chore(docs): fix gen-docs.js deprecation warning', '', '2', null, null, 'TEHEK', '2012-11-28T01:56:50Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1789', '37', '1617', 'feat($parse): allow strict equality in angular expressions', 'Allows the parser to parse strict equality and inequality in angular expressions. \r\n\r\nCloses #908\r\n\r\n', '7', null, null, 'jtymes', '2012-11-28T02:34:23Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1790', '37', '1622', 'angular/angular.js#1035 added ng-keyup and ng-keydown and tests', 'I had a need for keyup as well as others described in issue #1035', '16', null, null, 'marknadig', '2012-11-28T23:30:59Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1791', '37', '1623', 'Add abort method to $http promise.', 'This is an attempt at resolving issue #1159. Let me know what you think.', '2', null, null, 'dbinit', '2012-11-29T01:19:28Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1792', '37', '1624', 'select multiple bound to multiple initial options is broken', 'Please see http://jsfiddle.net/P5WW7/ for a demonstration of the bug.', '11', null, null, 'skivvies', '2012-11-29T02:03:22Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1793', '37', '1625', 'feat($log): add $log.debug()', 'New debug() method with suppressable output via\n$logProvider.debugEnabled()\n\nCloses #1592', '6', null, null, 'nlaplante', '2012-11-29T05:43:32Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1794', '37', '1626', 'Allow html in title attributes in tab-pane directive', 'Usefull to add html decoration in the title like icons.\nFor example with Glyphicons:\n\n<div class=\"tab-pane\" title=\"<i class=\'icon-user\'></i> User settings\" value=\"userSettings\">\n...\n</div>', '1', null, null, 'jmaynier', '2012-11-29T10:20:24Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1795', '37', '1629', 'fix for issue #1553', 'Includes a test demonstrating the issue.', '9', null, null, 'skivvies', '2012-11-29T17:51:57Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1796', '37', '163', 'Sanitize', '', '1', null, null, 'mhevery', '2010-11-24T04:12:00Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1797', '37', '1630', 'Correct word location into anchorScroll.js', 'On line 56\n\nCorrect word locaiton to location.', '1', null, null, 'murilobr', '2012-11-30T00:57:32Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1798', '37', '1631', 'fix(Scope): ensure that a scope is destroyed only once', 'Due to bd524fc4 calling $destroy() on a scope mupltiple times cases NPE.\n\nCloses #1627', '5', null, null, 'IgorMinar', '2012-11-30T09:57:32Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1799', '37', '1634', 'Improved Angular routing in a backwards compatible way.', 'General routing improvements to support slash matching, ordered routing of ambiguous urls, typed groups and likely performance improvements.\n\nAngular now basically supports the werkzeug routing syntax.\n`/foo/:bar`\n`/foo/<path:bar>`\n`/foo/<string:bar>/`\n`/foot/<path:bar>/:id/`\n\nAddresses:\n- A TODO where most routes was being compiled and processed every single route change. Routes are now processed up front and simply matched\n\n- Routes are now processed in the order in which they are added instead of arbitrarily.\n\n- Helps with #1147\n- Helps with #1159\n- Makes #918 easier\n\n- It is now possible to match the forwardslash character.\n\n- It is now possible to restrict your match to string, int or path.', '10', null, null, 'xealot', '2012-11-30T17:08:51Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1800', '37', '1639', 'Update doc for more details about predefined regexp', 'I\'ve just added details about predefined patterns in the doc for regexp validation', '4', null, null, 'MathRobin', '2012-12-03T21:58:02Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1801', '37', '1640', 'fix(ngResource): Add suport for nested params', 'Allow ngResource to properly construct a query string for params which\nhave objects or arrays as values.', '11', null, null, 'cezar-berea', '2012-12-03T22:22:41Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1802', '37', '1641', 'Update src/ngMock/angular-mocks.js', 'correct explanation', '0', null, null, 'fredsa', '2012-12-04T00:04:11Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1803', '37', '1643', 'doc($http): fix link typo in $http doc', 'Should be $httpBackend instead of $httpBacked\n\nCloses #1516', '1', null, null, 'jtymes', '2012-12-04T20:03:54Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1804', '37', '1645', 'Update src/ngMock/angular-mocks.js', 'Clarify how to use `$exceptionHandlerProvider.mode(\'log\')` in tests', '1', null, null, 'fredsa', '2012-12-04T22:38:51Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1805', '37', '1646', 'comment-based repeater', '- tests with jQuery currently failing (I\'m working on that)\n- IE drops any comments inside of `<select>` element, so there is no way to get it working there\n- inside of the compile fn of the repeater directive there is no way to tell what the original node looked like, because it has been already replaced with a comment node at that point by transclusion, so I had to tack on a `$$originalNodeType` property on the linking fn that is built by the transclusion. I\'m happy to consider other options if someone suggests some.', '21', null, null, 'IgorMinar', '2012-12-04T23:13:24Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1806', '37', '1653', 'feat(limitTo): limitTo filter accepts strings', 'This allows strings to be filtered by limitTo, using the same methods\n\nCloses #653', '5', null, null, 'jtymes', '2012-12-05T12:44:14Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1807', '37', '1655', 'documentation fix', '', '1', null, null, 'fredsa', '2012-12-05T18:48:07Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1808', '37', '1658', 'Fix code example', '', '9', null, null, 'romainneutron', '2012-12-06T00:36:15Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1809', '37', '1661', 'ng-repeat : Fix issues when iterating over primitives', '# ng-repeat Directive\r\nThis complete rewrite of ng-repeat tracks element/scope pairing for objects since they can be tracked by object identity but tracks element/scope pairings for primitive values by the index position in the collection since there is no consistent way of tracking if a primitive has moved.\r\n\r\n## Fixes primitive issues\r\n\r\nIt solves various problems including:\r\n\r\n* Input element losing focus on each change. See this broken Plnker based on master - http://plnkr.co/edit/bFxHW4?p=preview - and this fixed version - http://plnkr.co/edit/zh5P9Y?p=preview.\r\n* Incorrect model updating when item is a primitive. Fixes #1389 and this fixed version of the example fiddle: http://jsfiddle.net/nMjet/\r\n\r\n## Tests\r\n\r\nI have added a new test to `ng-repeatSpec.js` to test for this but x-ed out the test that demonstrates the incorrect behaviour.\r\n\r\n## Algorithm\r\n\r\nThe algorithm checks the following, for `original` collection and `changed` collection, at each `index`.\r\n\r\n1. If `changed[index] === original[index]` then simply reuse element/scope pairing.\r\n2. If both `changed[index]` and `original[index]` are primitives then leave the element alone but update the scope model. _This will trigger changes in the this iteration\'s template bindings and DOM. We can\'t try to guess if this primitive moved from elsewhere but since we are reusing the element/scope pairing there will be minimal DOM updates._\r\n3. If a known object has moved then move its element and scope accordingly. _This reuse ensures minimal disruption to the bindings and DOM._\r\n4. if an object moved leaving a primitive in its place then create a new element and scope for this primitive. \r\n5. if an object moved into a position where a primitive was before, then destroy the old element/scope for that primitive.\r\n\r\n## WhatChanged service\r\n\r\nI factored out the algorithm that works out what has changed into its own function (`whatChanged`). Since there is potential for this to be reused, I also exposed it as a service, `$whatChanged`, in the `ng` module.\r\n\r\n## Helper Classes\r\n\r\nFurther to facilitate repeating over object key, the whatChanged algorithm works on a \"generic collection\", which are created by the internal classes ArrayWrapper and ObjectWrapper. These classes expose a common API of `get(index)`, `key(index)`, `length()` and `copy()`, which allows the whatChanged algorithm to work either with a straight array or iterating over the keys of an object, cleanly. _The array wrapper is very thin and should not be a great impact on performance._\r\n\r\nThese (and a couple of other helper classes `ObjectTracker`, `ChangeTracker` and `FlattenedChanged`) can be found in `apis.js`. These new classes replace the need for HashQueueMap, which could be removed.\r\n\r\n## To Do\r\n\r\nThere is work to be done on the documentation.\r\n\r\nI have done no performance testing. There are more lines of code and probably in most scenarios the repeater may perform worse than before. But I reckon there is lots of room for optimization.', '42', null, null, 'petebacondarwin', '2012-12-06T12:39:22Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1810', '37', '1663', 'feat(select): New select attribute directive ng:hasher', 'Add new attribute directive for specifying a hashing function for objects.\nIf ng:model is bound to an object and ng:options is \"obj for obj in objs\"\na reference equality is used for selection.\nWith ng:hasher you can bind a function that takes one argument and returns\na hash. Then the hash is used for comparision instead.\n\nEx.\n`<select\n ng-model=\"selection\"\n ng-options=\"obj for obj in objs\"\n ng-hasher=\"hash_func\">\n/select>`\n\n```javascript\nscope: {\n selection: { id: 12, ... },\n objs: [{ id: 12, ... }, { id: 13, ... }],\n hash_func: function(o) {\n return o ? o.id : undefined;\n }\n}\n```\n\nWill match model to the first obj in the objs array.', '11', null, null, 'quazzie', '2012-12-06T16:13:11Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1811', '37', '1666', 'typo fix: programing -> programming', '', '1', null, null, 'case', '2012-12-07T01:19:51Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1812', '37', '1667', 'Render has a $.', 'This is an error in the documentation.', '1', null, null, 'kitsched', '2012-12-07T09:02:16Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1813', '37', '1671', 'chore(docs): Up and down keys should highlight and select filtered resul...', 'Improve AngularJS doc navigation by allowing users to press down to select, highlight and go to the next filtered result, or up to select, highlight and go to the previous filtered result.\n\nGlad to work with any feedback or code reviews. From a UX perspective: No page is loaded until a key is pressed. Enter to visit the top match, down to visit the next, or up to visit the previous. A link is only highlighted when you are actually on the page. Do others also find this intuitive? If so, I will move on to tidying up the autocomplete.\n\nUnit tests (in Chrome and Firefox, on OSX latest) and scenario tests pass.\n\nCloses #1615', '7', null, null, 'zdexter', '2012-12-07T16:34:41Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1814', '37', '1672', 'Document port number escaping in URL for $resource', 'Related to issues #1664, #1243 and #942. Also fixed one typo.', '6', null, null, 'jsyrjala', '2012-12-07T18:15:01Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1815', '37', '1673', 'typo fix: commandx -> command', '', '1', null, null, 'case', '2012-12-07T23:11:59Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1816', '37', '1675', '$location support for pushState', 'I am using this to good effect in an application now. Let me know if you want to pull and I will write some tests.', '5', null, null, 'gregwebs', '2012-12-08T03:48:53Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1817', '37', '1676', 'feat($http): allow data promises in $http requests', 'It\'s possible to bind directly the promise returned by `$http` to the `$scope` model so I think it would look natural to do contrary, to pass to `$http` a data value that is a promise.\n\nI mean something like this:\n\n```javascript\nfunction MyCtrl($scope,$http){\n $scope.something = $http.get(\"geturl\");\n $scope.update = function(){\n $http.post(\"posturl\", $scope.something)\n .success(doSomething)\n }\n}\n```\n\nIn this pull request I have created a wrapper around `$http` to handle the situation in which data is a promise. \nI have added two unit tests to check this feature. ', '5', null, null, 'gonzaloruizdevilla', '2012-12-08T15:54:20Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1818', '37', '1677', 'feat(ngResource): headers passed can be now also a function', 'When creating a new resource, you can also pass a function as header to be executed when the ajax request is called; this is useful when you have to provide some headers that have to change dinamically.', '1', null, null, 'maur8ino', '2012-12-08T17:12:02Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1819', '37', '1683', 'New currency costumizations possibilities', 'Added new costumization possibilities to currency:\n- Fraction size\n- Change default negative numbers parentheses to \'-\' minus symbol\n\nPrevious behavior remains the same but when using the new optional parameters, the currency symbol becomes obligatory.', '0', null, null, 'Urigo', '2012-12-10T16:37:19Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1820', '37', '1684', 'New currency costumizations possibilities', 'Added new costumization possibilities to currency:\n- Fraction size\n- Change default negative numbers parentheses to \'-\' minus symbol\n\nPrevious behavior remains the same but when using the new optional parameters, the currency symbol becomes obligatory.', '0', null, null, 'Urigo', '2012-12-10T16:53:15Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1821', '37', '1685', 'New currency costumizations possibilities', 'feat($filter): currency (currencySymbol, fractionSize, isMinus)\n\nAdded new costumization possibilities to currency:\n- Fraction size\n- Change default negative numbers parentheses to \'-\' minus symbol\n\nPrevious behavior remains the same but when using the new optional parameters, the currency symbol becomes obligatory.', '1', null, null, 'Urigo', '2012-12-10T17:07:12Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1822', '37', '1686', 'New currency costumizations possibilities', 'feat($filter): currency (currencySymbol, fractionSize, isMinus)\n\nAdded new costumization possibilities to currency:\n- Fraction size\n- Change default negative numbers parentheses to \'-\' minus symbol\n\nPrevious behavior remains the same but when using the new optional parameters, the currency symbol becomes obligatory.', '0', null, null, 'Urigo', '2012-12-10T18:22:40Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1823', '37', '1687', 'New currency costumizations possibilities', 'feat($filter): currency (currencySymbol, fractionSize, isMinus)\n\nAdded new costumization possibilities to currency:\n- Fraction size\n- Change default negative numbers parentheses to \'-\' minus symbol\n\nPrevious behavior remains the same but when using the new optional parameters, the currency symbol becomes obligatory.', '0', null, null, 'Urigo', '2012-12-10T18:28:15Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1824', '37', '1688', 'New currency costumizations possibilities', 'feat($filter): currency (currencySymbol, fractionSize, isMinus)\n\nAdded new costumization possibilities to currency:\n- Fraction size\n- Change default negative numbers parentheses to \'-\' minus symbol\n\nPrevious behavior remains the same but when using the new optional parameters, the currency symbol becomes obligatory.', '8', null, null, 'Urigo', '2012-12-10T18:56:31Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1825', '37', '1691', 'Fixing readme', 'Made two tiny language corrections: added missing \"you\" in 2nd sentence, and added a comma in another sentence to make it flow better.', '1', null, null, 'evjan', '2012-12-11T10:05:33Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1826', '37', '1692', 'fix($routeProvider): fix #1501 wrong mapping of $routeParams', 'Routes like \'/bar/foovalue/barvalue\' matching \'/bar/:foo/:bar\'\r\nnow are well mapped in $routeParams to:\r\n{bar:\'barvalue\', foo:\'foovalue\'}\r\n\r\nCloses: #1501\r\nSigned-off-by: Gonzalo Ruiz de Villa <gonzaloruizdevilla@gmail.com>', '6', null, null, 'gonzaloruizdevilla', '2012-12-11T10:45:24Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1827', '37', '1694', 'Add angularjs tag to plunks and make private', 'This is a minor edit to allow Plunks created by way of the docs.angularjs.org site to be appropriately tagged as `angularjs`.\r\n\r\nAlso, make these generated Plunks private by default.', '9', null, null, 'ggoodman', '2012-12-11T16:42:49Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1828', '37', '1695', 'fix(equals): fix #1648 correctly compare objects with undefined member variables ', 'given a = {} and b = {x:undefined} then\r\nangular.equals(a, b) should be true\r\nangular.equals(b, a) should be true (this happened before)\r\n\r\nCloses: #1648', '4', null, null, 'gonzaloruizdevilla', '2012-12-11T19:41:40Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1829', '37', '17', 'Jstestdriver upgrade', 'upgrade to version 1.2.2, but patched it to remove annoying console.log(\'runTestConfiguration\') which was executed for every test run.', '1', null, null, 'IgorMinar', '2010-09-20T15:22:45Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1830', '37', '1701', 'feat($http): promise-based request interceptors', 'Currently there is no easy way to globally intercept requests sent with $http similar to the way responses can be intercepted with response interceptors. Furthermore, there are many legitimate scenarios and use-cases where the need for request interception arises; for example\r\n\r\n* if security tokens, parameters or headers need to be calculated for each individual request\r\n* for collecting statistics like request counts, measuring turnaround times etc.\r\n* for dynamic, client-side redirects (e.g., rewrite /api/x to /api/experimental/x for resource x but not resource y)\r\n\r\nPlease see #929 for a further discussion (and use-cases) on this topic.\r\n\r\n## Implementation\r\n\r\nThe request interceptor registration works exactly like the registration of response interceptors (in fact, I have put this into a separate routine to make it more explicit). If request interceptors are present, they are prepended to the promise chain returned by $http this was mostly devised and written by @splondike this gives the interceptors a lot of flexibility and fits very well into the Angular API.\r\n\r\n## Tests and Documentation\r\n\r\nThis pull requests includes both tests and documentation of the new feature.\r\n\r\nA note on testing: a separate call to $rootScope.$apply is necessary to test the interceptors with the mocked http backend.\r\n\r\n## Example\r\n\r\n // register interceptor using an anonymous function\r\n $httpProvider.requestInterceptors.push(function() {\r\n return function(promise) {\r\n return promise.then(function(config) {\r\n \r\n // the config object will be used by the actual request\r\n // you can modify it here\r\n \r\n config.url = \'/intercepted/\' + config.url;\r\n\r\n // return the config object to pass it on to the next interceptor\r\n return config;\r\n \r\n // if you reject the promise, the promise\r\n // returned by $http will be rejected\r\n };\r\n };\r\n });\r\n\r\n## Compatibility\r\n\r\nWhen no request interceptors are registered, no promises are prepended to the chain. Therefore, this feature should be completely backwards compatible if you register not interceptors everything stays the same.', '26', null, null, 'inukshuk', '2012-12-13T13:38:19Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1831', '37', '1708', '$scope.$watch listener expressions can access $newVal & $oldVal', 'a string listener expression can evaluate $newVal and $oldVal\r\n\r\nexample:\r\n\r\n```javascript\r\n$scope.$watch(\'foo\', \'foo = $newVal\');\r\n```', '12', null, null, 'flazz', '2012-12-15T04:12:30Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1832', '37', '1709', 'docs(form): Fixing broken example in form docs, added documentation for $setDirty().', '', '10', null, null, 'jonbcard', '2012-12-15T21:59:34Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1833', '37', '1710', 'Improvements for Closure Compiler compilation', 'Syntax fixes helpful for compiling with Closure Compiler advanced optimizations. Even if Closure Compilation is not eventually achieved or is not a goal, it is helpful static analysis to find problems in the code or documentation.', '19', null, null, 'benmccann', '2012-12-16T00:15:20Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1834', '37', '1717', 'docs(ngView): fix code example (change template to templateUrl)', '\r\nCloses #1715', '1', null, null, 'pkozlowski-opensource', '2012-12-17T22:34:04Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1835', '37', '1719', 'Rakefile: closure_compile force 32bit mode only when java supports it', 'Some Java installs don\'t have \'-d32\' flag (e.g. OpenJDK which is standard\r\nfor some Linux systems), and the closure_compile fails because of forcing\r\nthat flag. Test, and only run in faster 32bit mode if supported, or\r\nelse just run with no flag (default mode).', '11', null, null, 'imrehg', '2012-12-18T01:57:13Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1836', '37', '1721', 'feat($injector): allow loading of modules to an existing injector', 'When working on larger applications it is desirable to have individual parts loaded on demand, rather than loading everything at once in the beginning.\r\n\r\nUnfortunately, there is no way to load a new module to an existing injector after the injector has been instantiated. And we also can\'t create a new injector because we would have a separate `$rootScope` and separate instances of services etc.\r\n\r\nAs far as I understand dynamically loading modules is planned for Angular 2.x, but our project needs the functionality now.\r\n\r\nThis patch exposes the module loading functionality in the injector. With access to this low-level function, applications can implement their own loading behavior.\r\n\r\nI\'m happy to add docs and tests to this pull request, but I wanted to get a reaction from the Angular devs first.\r\n\r\nRelated discussion:\r\nhttps://groups.google.com/d/topic/angular/rs1dj097oHA/discussion', '10', null, null, 'justmoon', '2012-12-18T03:56:16Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1837', '37', '1722', 'English corrections to doco', '', '5', null, null, 'fletchgqc', '2012-12-18T17:52:28Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1838', '37', '1723', 'Allow for reverse check box state without a lot of unnecessaries', 'More information here:\r\n - http://stackoverflow.com/questions/13925462/angularjs-reverse-checkbox-state\r\n\r\nIt seems like a simple use case that could be implemented with 1 elegant change (line 646).\r\n\r\nI went with the change to $formatters instead of changing the trueValue/falseValue detection on lines 632-633, because this seemed less janky.\r\n\r\nI chose not to String(trueValue) to save some unnecessary casting.  I believe this handles all scenarios.', '1', null, null, 'langdonx', '2012-12-18T19:35:13Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1839', '37', '1725', 'fix(jqLite): children() should only return elements.', 'The jQuery implementation of `children()` only returns child nodes of the given element that are elements themselves. The previous jqLite implementation was returning all nodes except those that are text nodes.\r\n\r\n[One should use `jQLite.contents()` to get all the child nodes]\r\n\r\nThe testabilityPatch was incorrectly using `children()` rather than `contents()` inside `cleanup()` to iterate down through all the child nodes of the element to clean up.\r\n\r\nThe *\"bind should bind to window on hashchange\"* jqLiteSpec had not defined a `childNodes` property when it was mocking out the `window` object, so `contents()` was blowing up with a stack overflow in that test.\r\n\r\nThis fixes https://github.com/angular/angular.js/issues/1413', '0', null, null, 'petebacondarwin', '2012-12-18T20:49:29Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1840', '37', '173', 'Docs scrolling', '- added dual scrolling to the docs app\r\n- styled the scrollbars to look sweet in webkit browsers\r\n- completely redid the layout\r\n- cleaned up the html/css code', '1', null, null, 'IgorMinar', '2010-11-29T21:28:53Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1841', '37', '1731', 'fix(jqLite): next() should return the sibling element', '`nextSibling()` returns a text node. By replacing it with `nextElementSibling()`, issue [#1730](https://github.com/angular/angular.js/issues/1730) would be fixed.\r\n\r\nExample showing wrong behavior: http://jsbin.com/exosoz/1/edit', '3', null, null, 'Keyamoon', '2012-12-19T20:09:46Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1842', '37', '1732', 'fix(jqLite): Fix next() and its test', 'next() must return the next sibling element and it should ignore text nodes between elements. In the sample element that was prepared for testing, there was no text or space between the two elements (`<b>b</b>` and `<i>i</i>`) to check if next() was ignoring text nodes properly.\r\n\r\nTo get the next sibling element, `nextElementSibling` must be used instead of `nextSibling` because `nextSibling` doesn\'t ignore text nodes.', '9', null, null, 'Keyamoon', '2012-12-19T23:56:00Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1843', '37', '1735', 'Simplify trim()', 'Simplify regex to avoid calling replace() twice.', '7', null, null, 'jayzeng', '2012-12-20T05:04:38Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1844', '37', '1739', 'fix(jqLite): children() should only return elements', 'The jQuery implementation of children only returns child nodes of the given element that are elements themselves. The previous jqLite implementation was returning all nodes except those that are text nodes. Use jQLite.contents() to get all the child nodes.\r\n\r\nThe jQuery implementation of contents returns [] if the object has no child nodes. The previous jqLite implementation was returning undefined, causing a stack overflow in test/testabilityPatch.js when it tried to `cleanup()` a window object.\r\n\r\nThe testabilityPatch was incorrectly using children() rather than contents() inside cleanup() to iterate down through all the child nodes of the element to clean up.', '0', null, null, 'petebacondarwin', '2012-12-20T17:29:47Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1845', '37', '1742', 'Optimise images (520 KB reduction)', 'Hi, angular.\n\nI\'ve taken the liberty of putting angular.js\'s image assets though a range of optimisation tools. Image optimisation allows us to reduce the footprint of images - meaning faster load times at no cost to image quality. It does this by finding the best (lossless) compression parameters, stripping embedded comments, and removing unnecessary colour profiles. [See more](http://port3000.co.uk/imageoptimiser-a-github-bot-to-proactively-op).\n\nI found 64 optimisable images, making a 520 KB reduction in size. That\'s about 15.33% of your total image assets.\n\nMerry Christmas.\n\n<table><tr><th>Name</th><th>Reduction</th></tr><tr><td>AngularJS-small.png</td><td>16.60%</td></tr><tr><td>One_Way_Data_Binding.png</td><td>28.42%</td></tr><tr><td>Two_Way_Data_Binding.png</td><td>32.01%</td></tr><tr><td>angular_parts.png</td><td>42.88%</td></tr><tr><td>bullet.png</td><td>32.08%</td></tr><tr><td>form_data_flow.png</td><td>30.54%</td></tr><tr><td>about_model_final.png</td><td>3.87%</td></tr><tr><td>about_view_final.png</td><td>4.83%</td></tr><tr><td>concepts-controller.png</td><td>31.31%</td></tr><tr><td>concepts-directive.png</td><td>14.69%</td></tr><tr><td>concepts-model.png</td><td>26.94%</td></tr><tr><td>concepts-module-injector.png</td><td>30.04%</td></tr><tr><td>concepts-runtime.png</td><td>30.22%</td></tr><tr><td>concepts-scope.png</td><td>21.05%</td></tr><tr><td>concepts-startup.png</td><td>31.34%</td></tr><tr><td>concepts-view.png</td><td>27.27%</td></tr><tr><td>di_sequence_final.png</td><td>25.86%</td></tr><tr><td>dom_scope_final.png</td><td>5.54%</td></tr><tr><td>hashbang_vs_regular_url.jpg</td><td>35.58%</td></tr><tr><td>scenario_runner.png</td><td>51.05%</td></tr><tr><td>simple_scope_final.png</td><td>5.60%</td></tr><tr><td>helloworld.png</td><td>17.83%</td></tr><tr><td>helloworld_2way.png</td><td>16.22%</td></tr><tr><td>catalog_screen.png</td><td>5.24%</td></tr><tr><td>tutorial_00.png</td><td>23.20%</td></tr><tr><td>tutorial_00_final.png</td><td>5.48%</td></tr><tr><td>tutorial_02.png</td><td>18.39%</td></tr><tr><td>tutorial_03.png</td><td>19.52%</td></tr><tr><td>tutorial_04.png</td><td>20.62%</td></tr><tr><td>tutorial_07_final.png</td><td>5.29%</td></tr><tr><td>tutorial_08-09_final.png</td><td>5.28%</td></tr><tr><td>tutorial_10-11_final.png</td><td>5.17%</td></tr><tr><td>xhr_service_final.png</td><td>5.00%</td></tr><tr><td>arrow_left.gif</td><td>13.73%</td></tr><tr><td>arrow_right.gif</td><td>13.73%</td></tr><tr><td>indicator-wait.png</td><td>22.39%</td></tr><tr><td>image1.png</td><td>5.35%</td></tr><tr><td>image2.png</td><td>11.37%</td></tr><tr><td>image4.png</td><td>4.64%</td></tr><tr><td>image8.png</td><td>4.65%</td></tr><tr><td>image9.png</td><td>3.01%</td></tr><tr><td>image3.png</td><td>21.93%</td></tr><tr><td>image1.png</td><td>25.81%</td></tr><tr><td>image4.png</td><td>31.93%</td></tr><tr><td>image5.png</td><td>29.79%</td></tr><tr><td>image7.png</td><td>58.87%</td></tr><tr><td>image7.png</td><td>58.87%</td></tr><tr><td>image11.png</td><td>6.24%</td></tr><tr><td>image13.png</td><td>16.22%</td></tr><tr><td>image15.png</td><td>23.75%</td></tr><tr><td>image9.png</td><td>10.54%</td></tr><tr><td>image10.png</td><td>10.07%</td></tr><tr><td>image10.png</td><td>10.07%</td></tr><tr><td>image7.png</td><td>58.87%</td></tr><tr><td>AngularJS-Shield-huge.png</td><td>17.07%</td></tr><tr><td>AngularJS-Shield-large.png</td><td>16.72%</td></tr><tr><td>AngularJS-Shield-medium.png</td><td>17.35%</td></tr><tr><td>AngularJS-Shield-small.png</td><td>20.44%</td></tr><tr><td>AngularJS-huge.png</td><td>16.95%</td></tr><tr><td>AngularJS-large.png</td><td>21.92%</td></tr><tr><td>AngularJS-medium.png</td><td>25.15%</td></tr><tr><td>AngularJS-small.png</td><td>26.46%</td></tr><tr><td>image1.png</td><td>4.04%</td></tr><tr><td>image2.png</td><td>18.57%</td></tr></tr></table>\n\nTools used: advpng, gifsicle, jpegoptim, jpegrescan, jpegtran, optipng, pngcrush, pngout. This is an automated bot maintained by [@skattyadz](https://twitter.com/skattyadz)', '2', null, null, 'imageoptimiser', '2012-12-24T07:29:03Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1846', '37', '1744', 'feat($rootScope): stopDescent method added to broadcast event', 'Add `stopDescent` to event object.\r\n\r\nstopDescent - {function=}: calling stopDescent function will cancel further event propagation to children (available only for events that were $broadcasted-ed).\r\n', '3', null, null, 'joshrtay', '2012-12-27T00:56:32Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1847', '37', '1745', 'feat($route): express style route matching', 'visionmedia/express style route matching:\r\n* optional params\r\n* wildcard params\r\n* regexes\r\n\r\n\r\n```javascript\r\n.when(\'/bar/:foo?)\r\n $location.path(\'/bar\') --> $routePrams: {}\r\n $location.path(\'/bar/foovalue\') --> $routePrams: {foo: \'foovalue\'}\r\n\r\n.when(\'/bar/*\')\r\n $location.path(\'/bar/foovalue\') --> $routeParams: {0: \'foovalue\'}\r\n\r\n.when(\'/bar/*.*)\r\n $location.path(\'/bar/foo.js\') --> $routeParams: {0: \'foo\', 1: \'js}\r\n\r\n.when(/\\/(\\d+)/)\r\n $location.path(\'/12\') --> $routeParams: {0: \'12\'}\r\n```\r\n\r\n', '74', null, null, 'joshrtay', '2012-12-27T05:59:26Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1848', '37', '1748', 'Fix variable declaration in http://docs.angularjs.org/api/ngMock.$httpBackend documentation', '', '8', null, null, 'fredsa', '2012-12-27T22:45:31Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1849', '37', '175', 'Issue 170', '', '1', null, null, 'mhevery', '2010-12-02T04:50:32Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1850', '37', '1756', 'doc(guide): In DI, add missing greet method to greeter service in $scope...', 'doc(guide): In DI, add missing greet method to greeter service in $scope.sayHello\r\n\r\nMyController defines a $scope.sayHello function to demo the greeter service. But the actual greet method was omitted in the example code. Now instead of greeter(\'Hello World\') we call greeter.greet(\'Hello World\') to match the object returned from the greeter factory.', '1', null, null, 'mghardy', '2012-12-31T05:49:50Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1851', '37', '1757', 'Clarified $http documentation wrt error status', 'Modified the documentation for $http to correspond to what Angular\r\nconsiders a success status code.\r\n\r\nFixes #1693', '3', null, null, 'provegard', '2013-01-01T12:38:57Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1852', '37', '1758', 'Updated $controller API doc wrt return value', 'Fixed the documentation for $controller to clarify that the return value\r\nmay be either the controller instance, or the object returned by the\r\ncontroller constructor function. Also added a note about what the effect\r\nof writing the controller construction function in CoffeeScript can be.', '11', null, null, 'provegard', '2013-01-01T17:36:09Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1853', '37', '1759', 'doc(guide): Fixed typos in unit test guide', 'Couple of typos fixed:\r\n- changed \"often time mix concerns\" to \"often mix concerns\"\r\n- changed PasswordCntrl to PasswordCtrl and in testing the controller from \"PasswordController\" to \"PasswordCtrl\"', '3', null, null, 'klokoy', '2013-01-02T20:02:30Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1854', '37', '1760', 'feat(filter): Add strict option to filter', 'Add an optional strict option to $filter(\'filter\')(array, expression,\r\nstrict) such that when strict is true an equal comparision is made\r\ninstead of substring.', '13', null, null, 'bignall', '2013-01-03T17:11:04Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1855', '37', '1763', 'Update docs/content/misc/faq.ngdoc', 'Added info on logo reuse and how to get t-shirts and stickers.', '1', null, null, 'naomiblack', '2013-01-04T01:23:10Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1856', '37', '1767', 'fix(test): Launch a webserver for e2e tests, if it\'s not running yet', 'A small patch to start `rake webserver` if it\'s not already running.', '1', null, null, 'kmayer', '2013-01-07T18:27:49Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1857', '37', '1768', 'fix(Rakefile) Remove -d32 as argument to closure-compiler', 'Closes #1765', '2', null, null, 'kimpettersen', '2013-01-07T20:01:38Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1858', '37', '1770', 'fix(bootstrap): bug of tabbable viewValue unexpected change', 'move the tabbable un-active code into the check loop to make sure the new viewValue is in the tabs list\r\n\r\nI work with angularJs & angular-ui/bootstrap\r\nin one case i want to use tab inside a popmodal, but the popmodal cannot select anyone \r\nevent I write code to change the value of ngModel viewValue\r\n\r\nI thought it might be caught by something wrong inside angular-ui,\r\nand also the code in src/bootstrap/bootstrap.js is not reasonable\r\n\r\nI think the code for un-active a tab should be run when a new, exist tab is select.\r\n\r\nhere is the plnkr\r\nhttp://plnkr.co/edit/IIYvIYTMeCzDQZlOPxWm', '1', null, null, 'viilaismonster', '2013-01-08T08:01:36Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1859', '37', '1772', 'fix(docs): Fix warning: \'end is deprecated, use done instead.\'', 'There\'s a warning due to ./node_modules/q-fs@0.1.36 --> node_modules/q@0.8.11\r\n\r\nThis may also be due to AngularJS\'s package.json not being restrictive enough on the q-fs version.\r\n\r\nIn any case, q-fs is being retired for q-io/fs, so this fix is probably necssary eventually.', '4', null, null, 'kmayer', '2013-01-08T18:57:08Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1860', '37', '1773', 'Support modifying the DOM structure in link function of a directive', 'Support modifying the DOM structure in the post link function of a directive by creating a defensive copy of the node list, as opposed to a live DOM list.\r\nThis is useful for directives to actually replace their entire DOM fragment, e.g. with the HTML fragment generated by a 3rd party component (Closure, Bootstrap ...). Closure doesn\'t support attaching to an existing DOM fragment easily (decorate always recursively walks the tree, instantiating additional components and performing unwanted DOM changes).\r\nThe workaround is to have Closure .renderSibling() its component and then move the content that\'s controlled by Angular into the component. To achieve that, Angular must support linking functions changing the DOM, which this patch implements.\r\nAlso fix the indentation of the compileNodes function (was one too little).', '3', null, null, 'mprobst', '2013-01-08T19:13:49Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1861', '37', '1775', 'ngResource was incorrectly removing leading slash when param was followed by a non-slash character', '...tly removing leading slash when param was followed by a non-slash character.\r\n\r\nEx:\r\n\'/:foo/:bar.baz/:aux\'\r\n\r\nparams = {\r\n foo: \'aaa\',\r\n bar: undefined,\r\n aux: undefined\r\n}\r\n\r\nThe above params were incorrectly producing \'/aaa.baz\' but now it results in \'/aaa/.baz\'.', '3', null, null, 'pavelgj', '2013-01-08T22:21:46Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1862', '37', '1776', 'Fix examples of $location.html5mode in the documentation', 'While learning about the $location service, I read the docs on:\r\n\r\nhttp://docs.angularjs.org/guide/dev_guide.services.$location\r\n\r\nIn one of the examples, it was written in the config setter was: \r\n\r\n$locationProvider.html5mode = true;\r\n\r\nSo I tried it, and debugged it and couldn\'t get it to work.\r\nOnly after continuing to read on, I saw another version of the same config flag:\r\n\r\n$.locationProvider.html5Mode( true )\r\n\r\nand that one worked.\r\n\r\nSo I changed the examples to the working one.\r\nShai', '1', null, null, 'shairez', '2013-01-08T22:22:19Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1863', '37', '1777', 'Update docs/content/misc/faq.ngdoc', 'Updated the canonical video to a recent one. Fixed a typo.', '1', null, null, 'naomiblack', '2013-01-09T00:08:31Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1864', '37', '1781', 'fix(compile): Do not wrap empty root text nodes in spans', 'Fixes https://github.com/angular/angular.js/issues/1059', '2', null, null, 'petebacondarwin', '2013-01-09T15:04:43Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1865', '37', '1782', 'fix(date): parse string input as local time unless TZ is specified', 'previously we were always parsing the string input as UTC which cased issues like:\r\n\r\n{{ \'2012-04-01\' | date:\'d MMM yyyy\' }} renders as 31 Mar 2012\r\n\r\nBREAKING CHANGE: string input without timezone info is now parsed as local time/date\r\n\r\nCloses #847', '2', null, null, 'IgorMinar', '2013-01-09T18:39:01Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1866', '37', '1783', 'feat(input): Allow postponing model update until input blur event by specifying ng-update-on=\"blur\" so validation doesn\'t show up while user is still typing', '', '10', null, null, 'patgannon', '2013-01-09T22:25:06Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1867', '37', '1784', 'chore(*): remove obsolete files', 'if anyone cares about any of the removed files scream now', '1', null, null, 'IgorMinar', '2013-01-10T00:09:45Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1868', '37', '1785', 'fix($compile): safely create transclude comment nodes', 'Closes #1740', '3', null, null, 'IgorMinar', '2013-01-10T06:13:51Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1869', '37', '1787', 'Support modifying the DOM structure in link function of a directive', 'See https://github.com/angular/angular.js/pull/1773', '0', null, null, 'mprobst', '2013-01-10T19:22:35Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1870', '37', '1788', 'Support modifying the DOM structure in link function of a directive', 'Backport of the fix to 1.0.x.\r\n\r\nSee https://github.com/angular/angular.js/pull/1773', '3', null, null, 'mprobst', '2013-01-10T19:43:03Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1871', '37', '179', 'Fix for 152 (async resource callback)', '', '2', null, null, 'IgorMinar', '2010-12-05T07:53:06Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1872', '37', '1790', 'Apply $last to the array after properties starting with $ have been filtered out', 'Fixes #1789', '1', null, null, 'petebacondarwin', '2013-01-11T12:54:18Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1873', '37', '1793', 'fix(ngSwitch): not leak when transcluded and cloned', 'The leak can occur when ngSwich is used inside ngRepeat or any other\r\ndirective which does not attached transcluded content to DOM but clones\r\nit.\r\n\r\nRefactor ngSwitch to use controller instead of storing data on compile\r\nnode.\r\n\r\nCloses #1621', '8', null, null, 'danilsomsikov', '2013-01-11T17:22:43Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1874', '37', '1795', 'Typo in CHANGELOG', '', '1', null, null, 'kanwei', '2013-01-11T21:20:07Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1875', '37', '18', 'Json inf loop fix', 'fix that works in all browsers', '0', null, null, 'IgorMinar', '2010-09-21T14:20:41Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1876', '37', '1802', 'ng-cookie directive', '```\r\n<input ng-model=\"name\" ng-cookie=\"name\">\r\n```\r\nThis persists `$scope.name` to cookie[\'name\'] whenever the model changes, deletes the cookie when the model goes undefined, and sets the initial value of `$scope.name` to cookie[\'name\']. \r\n\r\n(The cookie name is isn\'t generated from the model name because cookies have bigger scope (domain, path) than models (controller).)', '1', null, null, 'mking', '2013-01-14T08:55:08Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1877', '37', '1803', 'feat($resource): accept cache', '$resource can get response in cache when cache is provided and response present in cache. This is useful when a resource does not change often (like a list of countries)', '1', null, null, 'vincentdieltiens', '2013-01-14T13:56:31Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1878', '37', '1804', 'fix($route): fix 773ac4a, route params not separated with slashes.', 'Fixes a regression introduced by 773ac4a, routes like /bar:barId are now supported again (note no slash separating the parameter from the rest of the URL).', '2', null, null, 'mprobst', '2013-01-14T13:58:37Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1879', '37', '1807', 'Remove prototype methods in docs examples', 'When first learning Angular I got confused by the use of the prototype for methods in some parts of the docs and $scope in others. I finally found the \'Understanding Controllers\' page that clarified the $scope way is correct, so here are some corrections to help future newbies.', '3', null, null, 'amirhhz', '2013-01-14T17:28:46Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1880', '37', '1808', 'Fix prototype methods in docs examples', 'When first learning Angular I got confused by the use of the prototype for methods in some parts of the docs and $scope in others. I finally found the \'Understanding Controllers\' page which clarified that the $scope way is the right way, so here are some corrections to help future newbies.\r\n\r\n[This PR contains is the same as #1807 but with better commit message]', '3', null, null, 'amirhhz', '2013-01-14T19:47:11Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1881', '37', '1810', 'Add the loop variable value to the child scope', 'This adds the loop variable value to the child scope created by ngRepeat.\r\nIt uses the identifier $currentItem\r\n\r\nThis prevents controllers from having to expect a specific name for the loop variable.', '3', null, null, 'robot-head', '2013-01-14T22:53:08Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1882', '37', '1813', 'Ignore - test of Travis build', '', '3', null, null, 'petebacondarwin', '2013-01-15T10:29:05Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1883', '37', '1816', 'Improved API examples', 'Corrected examples in doc comments so they will work regardless of the context in which they are executed.', '4', null, null, 'mbrowne', '2013-01-15T16:51:50Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1884', '37', '1817', 'fix(build system): Removes a duplicate file in angularFiles.js', '', '3', null, null, 'jbdeboer', '2013-01-15T17:19:15Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1885', '37', '1818', 'feat(build system): Generate version.json', 'Changes \'rake version\' to output the parsed version information in version.json file which can be used in other tools.', '3', null, null, 'jbdeboer', '2013-01-15T17:23:01Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1886', '37', '1820', 'E2E scenarios failing on IE9 because of \'input\' events', 'On IE9 input events are not triggering properly which is causing the e2e scenarios to fail.', '1', null, null, 'tdarsan', '2013-01-16T00:09:09Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1887', '37', '1821', 'Travis test', '', '1', null, null, 'petebacondarwin', '2013-01-16T10:25:53Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1888', '37', '1824', 'Update src/ng/exceptionHandler.js', 'Here\'s an initial attempt at documenting how one might write a\r\ntest using $exceptionHandlerProvider. The key take-away is the use\r\nof this pattern:\r\n\r\n it(...\r\n\r\n  module(...\r\n    $exceptionHandlerProvider.mode(\'log\');\r\n  });\r\n\r\n  inject(...\r\n  );\r\n\r\n });', '1', null, null, 'fredsa', '2013-01-17T02:01:36Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1889', '37', '1825', 'chore(Rakefile): force 32bit JVM mode only when java supports it', 'Some Java installs don\'t have \'-d32\' flag (e.g. OpenJDK which is standard\r\nfor some Linux systems), and the closure_compile fails because of forcing\r\nthat flag. Test, and only run in faster 32bit mode if supported, or\r\nelse just run with no flag (default mode).', '3', null, null, 'IgorMinar', '2013-01-17T09:34:58Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1890', '37', '1829', '[issue1797] Adding ng-open directive', '', '5', null, null, 'davidchang', '2013-01-18T04:19:22Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1891', '37', '183', 'Perf', '', '2', null, null, 'mhevery', '2010-12-07T05:42:25Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1892', '37', '1834', 'docs(contribute) adding npm install to step-by-step', '`npm install` is listed in the dependencies section of the contribute guide but\r\nis missing from the step-by-step. This adds it as step 4.\r\n\r\nTiny tweak for something that tripped me up. ', '1', null, null, 'willthemoor', '2013-01-18T21:02:43Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1893', '37', '1835', 'feat(httpBackend) Patch for Firefox bug w/ CORS and resonse headers', 'A workaround for https://bugzilla.mozilla.org/show_bug.cgi?id=608735\r\nIn FF getAllResponseHeaders() returns null if the request is the result of CORS.\r\n\r\nTried to format the code so that when a FF patch is released and gains enough\r\ntraction it can easily be selected and deleted. Heavily inspired by jQuery\'s\r\npatch for the same bug. This patch falls short of passing through custom headers\r\nbut covers all of the \"simple response headers\" in the spec at\r\nhttp://www.w3.org/TR/cors/\r\n\r\nCloses #1468', '4', null, null, 'willthemoor', '2013-01-18T22:32:34Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1894', '37', '1836', 'feat($http): Added method to abort a pending request. (2nd attempt)', 'Fixes issue #1159. Was pull request #1623.\r\n\r\nAddressed issues brought up by Miško:\r\n\r\n1. After calling .abort(), the promise is guaranteed to be resolved with a rejection (unless it has already been resolved).\r\n2. The .abort() method now returns a boolean:\r\n - True - if successfully aborted (or already aborted).\r\n - False - if abort failed because the promise is already resolved.\r\n3. Updated $httpBackend mock to support aborting.', '16', null, null, 'dbinit', '2013-01-18T23:17:52Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1895', '37', '1839', 'bug-fix for ng-list directive', 'Issue : ng-list directive overrides user specified separator by comma separator.\r\nResolution : Corrected the code of ng-list directive.\r\n ', '2', null, null, 'ashishgithub', '2013-01-19T10:13:32Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1896', '37', '1841', 'fix(ng:list) : ng-list directive separator bug fix.', 'Issue : ng-list separator getting overridden by \',\' .\r\n', '17', null, null, 'ashishgithub', '2013-01-19T11:45:28Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1897', '37', '1843', 'doc(tutorial): Fix confusing test filter injection', 'While doing some TDD, I\'ve noticed that you can\'t really inject controllers, directives and filters.\r\nSo Went over the tutorial and didn\'t understand how is this unit test passing, \r\nChecked, and in my runner it throws an error.\r\n\r\nShouldn\'t we use the $filter instead of asking directly the filter name? (like controllers?)', '7', null, null, 'shairez', '2013-01-19T23:24:56Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1898', '37', '1848', 'docs(angular.element): fix typo', '', '1', null, null, 'sergiopantoja', '2013-01-20T16:59:17Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1899', '37', '1849', 'feat($compile): Allow using functions as templates in directives', 'Added dynamic template support in directives:\r\n- The call will include the directive attributes common object as a parameter\r\n- This allows generating templates on the fly\r\n- It also applies to templateUrl\r\n\r\nCloses #1039 ', '16', null, null, 'lrlopez', '2013-01-20T20:05:32Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1900', '37', '185', 'Issue 169', '', '2', null, null, 'mhevery', '2010-12-08T04:43:56Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1901', '37', '1850', 'feat(trim): Publish trim() to external API', 'I\'ve found myself placing this function in $rootScope as it\'s used so frequently. Would be nice to simply expose it as part of the angular API.\r\n\r\nI\'ve submitted a Pull Request (and signed CLA) if you all agree', '4', null, null, 'chieffancypants', '2013-01-20T23:43:08Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1902', '37', '1851', 'feat($http): Pass http config to response interceptors', 'Allow response interceptors to use the config object passed to the\r\n$http call that the response originated from\r\n\r\n-------\r\n\r\nThis arose from a use case where I needed a global loading indicator with loading messages that were customized for each endpoint.\r\n\r\nHere is a jsfiddle I created that demonstrates this use case with a build of angular including this change: http://jsfiddle.net/ashelvey/UJ2Xx/ \r\n\r\nYou can use Charles, Fiddler, etc.. to throttle http calls for a more realistic demo.\r\n\r\n(CLA signed)', '5', null, null, 'thelvey', '2013-01-21T06:55:27Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1903', '37', '1852', 'fix(Rakefile): skip paralelization of build on Travis', '', '4', null, null, 'IgorMinar', '2013-01-21T15:44:17Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1904', '37', '1855', 'fix($q): Make $q more compatible with $http', 'Brings the deferred functionality of $q in sync with $http. Previously, the functions available to each differed between them, making interoperability less straightforward.\r\n\r\nA simple example would be if you want to work with an object that may or may not have been created on the server yet. This patch allows you to write code like this:\r\n\r\n```javascript\r\nfunction example(obj) {\r\n var defer = obj ? $q.defer().resolve(obj) : $http.get(\"/makeObj\");\r\n\r\n defer.success(function(obj) {\r\n //run various operations on the object\r\n });\r\n}\r\n```\r\nPreviously, working with $q and $http was unintuitive since $q lacks the success/error functions. Also added a promise return to resolve().', '6', null, null, 'kofalt', '2013-01-21T23:52:09Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1905', '37', '1860', 'fix(compile): compiling replace:true directives in external template', 'Passing DOMNode#childNodes to compileNodes when compiling remote\r\ntemplate, so that directives with replace:true can be compiled.\r\nThe previous version used jqLite#contents which returned collection\r\nthat was not updated during the compilation.\r\n\r\nCloses #1859', '2', null, null, 'danilsomsikov', '2013-01-22T16:01:23Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1906', '37', '1863', 'removed bug', '\r\n\r\nhttps://github.com/angular/angular.js/issues/1840', '2', null, null, 'bitliner', '2013-01-23T09:20:43Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1907', '37', '1865', 'Add cache option to ngRepeat to keep filtered out DOM element', 'Add keepCache parameter to have the option to keep in a cache and hide DOM elements associated to filtered out object of the collection. Make it faster to display again those element when filtered in.\r\n\r\nFor a large collection, it is sometimes very slow for angular to recreate all DOM node that were filtered out and are now filtered in. This prevent the deletion of those DOM nodes and keep them in a cache. \r\n\r\nUsage: \r\n\r\n<div ng-repeat=\"data in collection\" keep-cache=\"true\" >\r\n', '6', null, null, 'jmaynier', '2013-01-23T11:32:50Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1908', '37', '1866', 'feat(input.email): Input of type email support multiple attribute', 'Added support for HTML5 attribute `multiple` to enter more than one e-mail address per input field.\r\nThe mail addresses can be seperated by comma or semicolon.', '10', null, null, 'sja', '2013-01-23T12:04:37Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1909', '37', '1868', 'Add Welsh/Cymraeg locale', 'Add Welsh/Cymraeg local along with test', '2', null, null, 'wgriffiths', '2013-01-24T00:13:07Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1910', '37', '1870', 'feat(batarang): expose transcluded and isolate scope info for batarang', 'Exposes a value on the scope if the scope is transcluded, as well as a mapping from outer to inner scope matching the `scope` parameter of a directive.\r\n\r\nThis is what the current API looks like:\r\n```javascript\r\nscope.$$isolateBindings = {\r\n innerValue: \"=outerBinding\"\r\n};\r\n```\r\n\r\n```javascript\r\nscope.$$transcluded = true | false\r\n```\r\n\r\nI\'d like some input from @IgorMinar and @mhevery on this.', '8', null, null, 'btford', '2013-01-24T03:50:57Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1911', '37', '1871', '$injector docs: clear up some confusion on $inject property description', 'Section heading about `$inject` property refers to it as `$injector` property.', '1', null, null, 'vin', '2013-01-24T04:02:36Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1912', '37', '1874', 'feat(i18n): add Welsh/Cymraeg localisation files', 'Added Welsh/Cymraeg localisation files to project', '5', null, null, 'wgriffiths', '2013-01-24T19:43:13Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1913', '37', '1877', 'Update src/ng/directive/a.js', 'Escape this sample code:\r\n  <a href ng-click=\"model.$save()\">Save</a>', '3', null, null, 'fredsa', '2013-01-24T23:33:41Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1914', '37', '1878', 'This fixes some ', 'for some reason, some posts work only when you seperate the url generation into discrete steps; before I did this, this model \r\n\r\n````javascript\r\nangular.module(\'memberServices\', [\'ngResource\']).factory(\'Members\',\r\n function ($resource) {\r\n return $resource(\'/member/rest/member/:_id\', {_id: \'@_id\'},\r\n {\r\n add: {method: \'PUT\'},\r\n update: {method: \'POST\', params: {_id: \'@_id\'}},\r\n exists: {method: \'GET\'},\r\n get: {method: \'GET\'},\r\n query: {method: \'GET\', isArray: true}\r\n });\r\n });\r\n````\r\n\r\nwould not accept the _id value of an update. ', '1', null, null, 'bingomanatee', '2013-01-25T02:30:40Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1915', '37', '1879', 'fix(a): Anchor with empty href causing unintended reload', 'Anchor with no href shouldn\'t navigate anywhere, but click event bubbles to root element and location provider resolve as new route.\r\n\r\nCloses #1225', '1', null, null, 'just-boris', '2013-01-25T07:51:36Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1916', '37', '1880', 'fix(a): Opera click event (Bootstrap DropDownToggle and so on)', 'Prevents Opera from incorrectly navigating on link click and fixes Bootstrap DropDown behavior.', '4', null, null, 'chicoxyzzy', '2013-01-25T10:04:11Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1917', '37', '1881', 'doc($cookie) Added example to $cookie docs', 'Better than nothing.', '2', null, null, 'ProLoser', '2013-01-25T10:25:02Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1918', '37', '1883', 'Updated CONTRIBUTING.md', 'I have updated the CONTRIBUTING.md file. :+1: ', '2', null, null, 'KamranMackey', '2013-01-25T21:38:22Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1919', '37', '1884', 'Update CONTRIBUTING.md', 'I have removed the :smile: in the code. It should work with the rendering process of the docs, now. :+1: ', '2', null, null, 'KamranMackey', '2013-01-25T22:35:15Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1920', '37', '1885', 'Update src/ng/directive/a.js', 'Escape sample code in ng a directive.', '1', null, null, 'fredsa', '2013-01-26T02:02:29Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1921', '37', '1887', 'feat(sanitize): added support for skype links', 'Reference - http://developer.skype.com/skype-uri', '6', null, null, 'annavester', '2013-01-26T03:44:07Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1922', '37', '1888', 'Update src/ngResource/resource.js', 'Allow overriding URL when defining additional actions.', '1', null, null, 'guillaume86', '2013-01-26T17:54:23Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1923', '37', '1889', 'feat($compile): \'=\' binding can now be optional', 'If you bind using `\'=\'` to a non-existant parent property, the compiler will throw a `NON_ASSIGNABLE_MODEL_EXPRESSION` exception, which is right because the model doesn\'t exist.\r\n\r\nThis enhancement allow to specify that a binding is optional so it won\'t complain if the parent property is not defined. In order to keep backward compability, the new behaviour must be specified using `\'=?\'` instead of `\'=\'`. The local property will be undefined is these cases.\r\n\r\nCloses #909\r\nCloses #1435', '3', null, null, 'lrlopez', '2013-01-26T19:25:19Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1924', '37', '1890', 'Add possibility to override URL in custom $resource actions', 'This change adds the possibility to overridde the template URL when creating $resource custom actions:\r\n\r\n```\r\nvar Person = $resource(\'/Person/:id\', {}, {\r\n clear: { method: \'POST\', url: \'Person/clear\' }\r\n});\r\n\r\nPerson.clear(); // POST /Person/clear\r\n```', '11', null, null, 'guillaume86', '2013-01-26T21:12:32Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1925', '37', '1892', 'Directives doc: update obsolete reference', 'Replace an obsolete reference to a nonexistent \"Creating Widgets\"\r\nsection with a real link to \"Creating Components\".', '2', null, null, 'vin', '2013-01-27T02:39:50Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1926', '37', '1894', 'Update docs/content/tutorial/step_00.ngdoc', 'removed redundant verb', '1', null, null, 'matasaru', '2013-01-27T22:35:45Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1927', '37', '1895', 'Update src/Angular.js', 'removed redundant \'the\' from nextUid()\'s ngdoc', '1', null, null, 'matasaru', '2013-01-27T22:57:20Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1928', '37', '190', 'Issue 153', '', '1', null, null, 'mhevery', '2010-12-10T06:12:34Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1929', '37', '1901', 'Route functions (no templates)', 'Hi,\r\n\r\nI\'ve committed a change that gives us the possibility to add routes that will just evaluate a function when matched instead of rendering a template. I hope you find it useful and bring it into master as it really helped us when refactoring a project into angular and I\'m surprised it something that hasn\'t been implemented yet (if it has, please show me how)\r\n\r\nOne could basically do something like\r\n\r\n```javascript\r\nangular.module(\'example\', [], function($routeProvider) {\r\n $routeProvider.when(\'/foo\', {fn: function() {\r\n console.log(\'foo!\')\r\n }});\r\n $routeProvider.when(\'/bar/:id\', {fn: function(params) {\r\n console.log(\'bar! with params \' + params)\r\n }});\r\n});\r\n```\r\n\r\nRegards', '11', null, null, 'gaiottino', '2013-01-28T15:15:05Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1930', '37', '1904', 'Update src/ng/rootScope.js', 'Minor argument fix to`$rootScope.$on()` docs', '2', null, null, 'fredsa', '2013-01-28T22:55:54Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1931', '37', '1906', 'Modify Resource to support header in actions', 'here is the example how to use this\r\n\r\n$scope.signIn = function () {\r\n Authenticate.signIn(null,null,\r\n function (data, headers) {\r\n console.log(headers(\'x-token\'));\r\n \r\n },\r\n function(data, status, headers, config) {\r\n console.log(\'fail\');\r\n },\r\n { \'Authorization\': \'Basic NAdGVfghsezdC5jb206cGFzc3dvcmQhMQ==\' }\r\n );', '3', null, null, 'kkurni', '2013-01-29T07:43:34Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1932', '37', '1908', 'fix($browser): cookiePath now defaults to \'\' when basePath is undefined', 'As described in issue https://github.com/angular/angular.js/issues/1191 Safari and IE fails if the cookiePath is undefined.', '1', null, null, 'fredrikbonander', '2013-01-29T10:28:16Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1933', '37', '1909', 'doc($rootScope): Fix minor doc error.', 'The listener and watchExpression words were the wrong way around, which is incorrect and confusing.\r\n\r\nI\'ve signed the CLA (Philip Roberts, Scotland).', '1', null, null, 'latentflip', '2013-01-29T10:33:34Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1934', '37', '191', 'Defer eval fix', '', '0', null, null, 'IgorMinar', '2010-12-10T19:40:39Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1935', '37', '1910', 'fix($browser): cookiePath now defaults to \'\' when basePath is undefined', 'As described in issue https://github.com/angular/angular.js/issues/1191 Safari and IE fails if the cookiePath is undefined.', '7', null, null, 'fredrikbonander', '2013-01-29T10:56:49Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1936', '37', '1912', 'Fix to #1911', 'Here is the solution to issue #1911', '1', null, null, 'raftalks', '2013-01-29T15:33:26Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1937', '37', '1914', 'Tighten up a few spots to run on SES', 'window.Error is a read-only property under Caja, so assigning to it fails. Igor also says it was hurting after gzip.\r\n\r\nAssigning to undeclared globals is prohibited in Caja (and ES5 strict mode) so I added \"var\"s at the beginning of some \"element = ...\" statements.', '2', null, null, 'metaweta', '2013-01-29T19:38:15Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1938', '37', '1917', 'fix(filter:date) Timezone formatting issues.', 'This commit fixes #1261 and #1532. This covers two separate issues:\r\n\r\n- Positive timezones were being formatted without a leading `+` resulting in a formatting string like: \"HH:MM:ssZ\" giving \"12:13:141000\" instead of \"12:13:14+1000\". Fixed by checking if timezone is > 0 and adding a leading \"+\".\r\n\r\n- Timezone output signs were inverted. mock.TzDate expects the timezone _offset_ as it\'s first argument, _not_ the timezone. This means that a mock.TzDate with a positive offset should result in a date string with a negative timezone,\r\nand vice-versa.\r\n\r\nI\'ve tried to stick to the style as much as possible. I have one question about this commit though: [ISO_8601](http://en.wikipedia.org/wiki/ISO_8601) states:\r\n\r\n> An offset of zero, in addition to having the special representation \"Z\", can also be stated numerically as \"+00:00\", \"+0000\", or \"+00\". However, it is not permitted to state it numerically with a negative sign, as \"-00:00\", \"-0000\", or \"-00\".\r\n\r\nI have chosen that a UTC/0 offset timezone is represented with a Z, like: \"12:13:14Z\" as that seems to be more normal. Is that okay, or would \"12:13:14+0000\" be better for some reason?\r\n\r\n\r\n**I have signed the CLA, I am Philip Roberts from Scotland :smile:**\r\n\r\n', '12', null, null, 'latentflip', '2013-01-30T10:00:20Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1939', '37', '1921', 'fix($resource): params should expand array values properly', 'Today, calling e.g. var R = $resource(\'/Path/:a\'); R.get({a: \'foo\', bar: [\'baz1\', \'baz2\']}); results in a query\r\nstring like \"/Path/doh?bar=baz1,baz2\" which is undesirable. This commit enhances resource to use\r\n$http to encode any non-url parameters resulting in a query string like \"/Path/doh?bar=baz1&bar=baz2\".\r\n\r\nBREAKING CHANGE: if the server relied on the buggy behavior then either the\r\nbackend should be fixed or a simple serialization of the array should be done\r\non the client before calling the resource service.', '5', null, null, 'marknadig', '2013-01-30T15:47:37Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1940', '37', '1923', 'docs(tutorial): Remove Extra back-tick character', 'There was an extra back-tick on one of the examples.', '5', null, null, 'daspecster', '2013-01-30T21:22:56Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1941', '37', '1926', 'Adding PATCH HTTP method and urlencode request data', 'The ability to urlencode request data, by providing the boolean \"urlEncodeRequestData\" in the config object, as part of the issue: https://github.com/angular/angular.js/issues/1743\r\n\r\nSetting default headers and a short method for PATCH requests, as part of the issue: https://github.com/angular/angular.js/issues/899', '2', null, null, 'davidchang', '2013-01-30T23:57:36Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1942', '37', '1928', 'Adding PATCH HTTP method and urlencode request data', 'The ability to urlencode request data, by providing the boolean \"urlEncodeRequestData\" in the config object, as part of the issue: https://github.com/angular/angular.js/issues/1743\r\n\r\nSetting default headers and a short method for PATCH requests, as part of the issue: https://github.com/angular/angular.js/issues/899', '2', null, null, 'davidchang', '2013-01-31T05:55:00Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1943', '37', '193', 'Issue lazy browser poll', '', '1', null, null, 'mhevery', '2010-12-11T17:41:37Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1944', '37', '1930', 'fix for #1929 to provide a hook so controllers can override the service instances injected into their children via a $$scopeInjections property on the $scope', '...ontroller to override injection values on its child controllers created via ng-include or explicit template compilation', '3', null, null, 'jstrachan', '2013-01-31T12:19:50Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1945', '37', '1931', 'Crash fix with <object> in DOM', 'When <object> elements in the DOM are bound to browser plugins, the properties of this DOM element are defined by the plugin and thus the attribute childNode may not exist.\r\n\r\nWithout this fix, angular crashes when it encounters an element without the childNodes property.', '5', null, null, 'pascalm', '2013-01-31T14:48:44Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1946', '37', '1932', 'fixes #1907: $route property not available on next and current parameter...', '...s in $routeChangeStart for default route', '6', null, null, 'maciejblinkbox', '2013-01-31T18:04:48Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1947', '37', '1936', 'Format milliseconds in date filter', 'In some cases there is the need to see not only seconds, but also milliseconds in a formatted date.\r\n\r\nI suggest to add to the date filter three milliseconds format:\r\n\r\n* `fff`: Millisecond in second, padded (000-999)\r\n* `ff`: Millisecond in second, padded (00-999)\r\n* `f`: Millisecond in second (0-999)\r\n\r\nFor example:\r\n\r\n```\r\n{{1359689000181 | \'MM/dd/yy HH:mm:ss.fff Z\'}} => 02/01/13 09:23:20.181 -0600\r\n```', '27', null, null, 'mgrach', '2013-02-01T06:17:52Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1948', '37', '1938', 'fix(forEach): refined treatment of objects with numeric length property', 'fixes #1840\r\nto iterate the object like an array, it must verify one of these rules:\r\n- it comes from jquery so it must have at least a context property\r\n- every other property is a number between 0 and the value of\r\nlength property\r\n', '10', null, null, 'gonzaloruizdevilla', '2013-02-02T02:36:53Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1949', '37', '1939', 'Update src/Angular.js', 'typo', '1', null, null, 'matasaru', '2013-02-02T19:05:10Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1950', '37', '1946', 'docs(ngClass): fix typo in API docs', '', '1', null, null, 'PowerKiKi', '2013-02-04T07:01:23Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1951', '37', '1948', 'Format `sss` for milliseconds in date filter', 'Continuing the theme of #1936\r\n\r\nI suggest to add to the date filter format for milliseconds:\r\n\r\n* `sss`: Millisecond in second, padded (000-999)\r\n\r\nFor example:\r\n\r\n```\r\n{{1359689000081 | \'MM/dd/yy HH:mm:ss.sss Z\'}} => 02/01/13 09:23:20.081 -0600\r\n```', '8', null, null, 'mgrach', '2013-02-04T15:08:56Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1952', '37', '1950', 'fix($compile): rename $compileNote to compileNode', 'Directives was observing different instances of Attributes than the one that interpolation was registered with.\r\n \r\nCloses #1941', '5', null, null, 'iknite', '2013-02-04T21:33:24Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1953', '37', '1951', 'Closure annotations - STALE!', 'ready for review.. only minor polish remains\r\n---\r\nthis PR adds and corrects closure annotations and turns on compiler flags so that we get basic type checking during compilation of angular.js', '10', null, null, 'IgorMinar', '2013-02-05T06:13:52Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1954', '37', '1952', 'feat($http): allow overriding the XSRF header and cookie name', 'Add \'xsrfCookie\' and \'xsrfHeader\' property to $httpProvider.defaults and http\r\nconfig object, which give the name of the cookie the XSRF token is found in,\r\nand the name of the header it is sent in, respectively.\r\nThis allows interop with servers with built-in XSRF support that use different\r\nnames.\r\nThe defaults match the current hard-coded values of \'XSRF-TOKEN\' and\r\n\'X-XSRF-TOKEN\'.', '5', null, null, 'sam-mccall', '2013-02-05T12:51:36Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1955', '37', '1956', 'docs(module): fix code example', '- fix typo: replace the period with a semicolon\r\n- add a couple semicolons', '1', null, null, 'theotheo', '2013-02-06T02:41:33Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1956', '37', '1957', 'JQLite.ready() now checks if document already is ready when first called', 'If you call angular.element(document).ready(...) after the dom is ready, nothing happens. This patch will check the state of the document when ready() is called. \r\n\r\nThis solution is based on the jQuery.ready() function (https://github.com/jquery/jquery/blob/master/src/core.js#L775)', '10', null, null, 'jorgenfb', '2013-02-06T11:22:30Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1957', '37', '1958', 'feat(directive): ng:switch', 'Added the ability to handle multiple matches on ng:switch-when and ng:switch-default\r\n\r\nCloses #1074', '5', null, null, 'lgalfaso', '2013-02-06T13:15:32Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1958', '37', '1965', 'First stage for adding goog.provide/require style dependencies.', 'Add goog.provide / goog.require style dependencies and use\r\nclosurebuilder.py to concat the script together.\r\n\r\nThe goal for these commits is:\r\n- to have the smallest diff for the generated\r\n build/angular.js.\r\n- Have each commit be a fairly mechanical change for ease of\r\n reviewing.\r\n', '2', null, null, 'chirayuk', '2013-02-06T19:34:16Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1959', '37', '1966', 'In filters, use isArray instead of instanceof', 'Use the built-in isArray instead of \"instanceof Array\". \r\nIn the **node-webkit** framework, arrays may be created in the Node.js context, and for those arrays \"instanceof Array\" will return false, because the Array object of the browser context is a different reference. Using \"Array.isArray\" or the AngularJS function isArray fixes the problem.', '2', null, null, 'Ivshti', '2013-02-06T22:21:07Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1960', '37', '1967', 'tiny doc corrections', '', '2', null, null, 'matasaru', '2013-02-06T22:27:45Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1961', '37', '1980', 'fix(ngSwitch): Add a $scope to the ngSwitch\'s controller to fool the BC ...', '...module.', '6', null, null, 'jbdeboer', '2013-02-09T04:39:41Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1962', '37', '1982', 'fix(jqLite): IE8 no longer replaces link text content with mailto value', 'fixes #1949\r\n\r\nIE bug: http://webbugtrack.blogspot.com.es/2008/07/bug-140-changing-mailto-links-error-in.html\r\n\r\nOnly happens when the link has only text nodes. To prevent IE from replacing the text content, the text nodes must be detached before setting the href value and reattached afterwards.\r\n\r\nI tried to make a unit test, but I\'m not able to reproduce the bug inside the test. I tried something like:\r\n\r\n```javascript\r\nvar link = angular.element(\'<a href=\"\">text</a>\');\r\nlink.attr(\"href\", \"mailto:name@domain.com\");\r\nexpect(link.text()).toBe(\"text\");\r\n```\r\nbut with this the test doesn\'t fail before applying the change.\r\n', '5', null, null, 'gonzaloruizdevilla', '2013-02-10T12:58:08Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1963', '37', '1983', 'docs($resource): fix bad indentation producing a code block', 'Fix bad indentation producing a code block on the api/ngResource page: http://docs.angularjs.org/api/ngResource.$resource\r\n\r\nI signed the CLA (Cédric Soulas)', '1', null, null, 'cedricss', '2013-02-10T19:51:49Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1964', '37', '1984', 'docs($resource): fix missing punctuation', 'Fix missing punctuation on api/ngResource', '2', null, null, 'cedricss', '2013-02-10T19:55:30Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1965', '37', '1985', 'docs(concepts): fix typo', 'Little typo on guide/concepts: `s/an the model/on the model/`', '1', null, null, 'cedricss', '2013-02-10T19:58:09Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1966', '37', '1990', 'fix(numberFilter) Fixed trailing \".\" when passing \"0\" as fractionSize', 'When numberFilter cheks to add decimal and trailing 0s it checks trueness of\r\nfractionSize. \"0\" evaluating to true causes \"123\" to return \"123.\"', '6', null, null, 'kkruit', '2013-02-11T19:22:23Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1967', '37', '1992', 'fix(numberFilter): fix formatting when \"0\" passed as fractionSize', 'When checking to add decimal and trialing 0s number filter checks trueness of fractionSize. \"0\" evaluating to true causes \"123\" to return \"123.\"', '3', null, null, 'kkruit', '2013-02-11T21:24:57Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1968', '37', '1993', 'Fix a few typos in $q docs.', '', '4', null, null, 'vin', '2013-02-12T00:06:06Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1969', '37', '1994', 'Moved the description of the event listener function into the @description', 'In the documentation api for $on (http://docs.angularjs.org/api/ng.$rootScope.Scope#$on), the description for the event listener looks like it\'s part of the Returns section. This moves it up into the description section.', '1', null, null, 'ewen', '2013-02-12T00:19:48Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1970', '37', '1995', 'Fix typos in concepts/model,view', '', '2', null, null, 'jc00ke', '2013-02-12T02:32:14Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1971', '37', '1996', 'Resource q fix', 'if you see the following commits in this PR:\r\n\r\n* refactor(angular.copy): use slice(0) to clone arrays … 28273b7\r\n* refactor(angular.copy): use array.length=0 to empty arrays 6b19e7d\r\n* chore(docs): improve docs parser type \r\n\r\nskip them.. they are already in master but github hasn\'t noticed yet.', '1', null, null, 'IgorMinar', '2013-02-12T05:49:11Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1972', '37', '1997', 'chore(Rakefile): paralelize the build on Travis', 'now that the forking issue is solved we can run regular build there\r\n\r\nhttps://github.com/travis-ci/travis-ci/issues/845', '1', null, null, 'IgorMinar', '2013-02-12T06:47:10Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1973', '37', '2', 'JSLint fixes', 'all trivial JSLint fixes. There are 4 remaining, we should discuss those.', '1', null, null, 'IgorMinar', '2010-09-08T15:59:32Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1974', '37', '20', 'Small fixes', 'just JSDocs fixes', '0', null, null, 'IgorMinar', '2010-09-23T09:16:05Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1975', '37', '200', 'Issue 167 repeater inputs', 'Known issue:\r\n\r\nBindings *on* the element (that are not a descendent) are not matched by binding(). This is possible, but requires a bunch of jQuery work that would probably be a little slow. How important is that feature?', '4', null, null, 'esprehn', '2010-12-22T03:08:01Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1976', '37', '2001', 'fix($eval): simple assignments (without . or []) should overwrite closest definition...', '... in parent scope chain. If no such definition exists, \"declare\" the variable on the current scope.\r\n\r\nThis PR makes angular scope work more like expected (more like ruby / coffeescript). I\'ve taken care to check if scope is an isolate.\r\n\r\nIt feels a little wrong to put scope-specific functionality ($parent and $root) in parse.js, but when you think about it, parse has to have a concept of scope in order to provide $eval.\r\n\r\nOn a not unrelated note, as I try to wrap my head around angular, I\'ve been using this model of angular world: \r\n\r\n* A directive with an isolate is like a js library function defined in its own file. It\'s scope is lexically isolated. \r\n* Transclusions are like closures passed to a library function (directive): when called/wrapped inside the library function a closure is bound to its \"native\" scope. \r\n\r\nFeedback wanted, as always.\r\n', '5', null, null, 'dbrans', '2013-02-12T21:51:50Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1977', '37', '2003', 'Changes to the Rakefile to help new users', 'Hey, I made `rake` responsible for installing the npm dependencies, which allows the `test:unit` and `package` tasks to depend on it. This cuts down a little on the documentation and ensures that people who just skip the \"setting up your system\" document like I did will still be able to package angular and run the tests.', '1', null, null, 'trotter', '2013-02-13T03:26:53Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1978', '37', '2006', 'Basis for animations in angularjs', 'This is a pull request to merge the basic API hooks that provide animations for ngRepeat into AngularJS master.\r\n\r\nFor review only as of now.\r\n- No tests are complete yet.\r\n- No docs are complete yet.', '1', null, null, 'matsko', '2013-02-13T21:54:19Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1979', '37', '2008', 'persistent cookies / added expiration date to cookies', 'If you do not set the cookie\'s expiration, the cookie is created but it is not stored on the user\'s hard disk. Instead, the cookie is maintained as part of the user\'s session information. When the user closes the browser, the cookie is discarded. \r\n\r\nI added the optional expiration-date to the cookie creation.\r\n\r\nThis is my first pull request. \r\nI have not done any testing - but i hope i can make a start with this.', '1', null, null, 'ThomasDeutsch', '2013-02-14T00:08:01Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1980', '37', '201', 'Perf Suite + Native JSON parsing', '- simple perf suite\r\n- delegation to JSON.parse for $xhr when avaiblable', '1', null, null, 'IgorMinar', '2010-12-22T21:32:39Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1981', '37', '2011', 'Quick quote style fix in directive doc.', 'Using double quotes to maintain consistency with other HTML in the documentation.', '1', null, null, 'dylanpyle', '2013-02-14T21:01:32Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1982', '37', '2013', 'fix(a): workaround IE bug affecting mailto urls', 'Apparently there is a really weird bug in IE6-8 that causes anchor textContent\r\nto be reset with href content when both contain @ symbol.\r\n\r\nInserting a bogus comment node into all anchor elements in IE works around this\r\nbrowser bug.\r\n\r\nI\'m fixing the issue via directive because that way we\'ll fix it for jQuery as\r\nwell.\r\n\r\nCloses #1949', '1', null, null, 'IgorMinar', '2013-02-14T23:14:18Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1983', '37', '2017', 'feat(ngTap): add ngTap directive for fast clicks on touch devices', 'Add a new module ngMobile, with mobile/touch-specific directives.\r\nAdd ngTap, equivalent to ngClick but using touch events, which are much\r\nmore responsive on mobile.\r\n\r\nNote that this PR is incomplete. It lacks docs, and the tests aren\'t passing locally and haven\'t been tried on CI. The (pretty basic) tests for ngTap succeed on jqLite but fail on real jQuery, and I don\'t know why.', '16', null, null, 'shepheb', '2013-02-15T16:49:19Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1984', '37', '2018', 'FIx ng-class initialization problem', 'Fixes issue #2009', '2', null, null, 'petebacondarwin', '2013-02-15T21:46:10Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1985', '37', '2019', 'Whitespace memleak', 'See this discussion: https://groups.google.com/forum/?hl=en-US&fromgroups=#!topic/angular/E01ZrbonZkQ', '10', null, null, 'petebacondarwin', '2013-02-15T23:25:25Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1986', '37', '2020', 'fix(ngClass): keep track of old ngClass value manually', 'ngClassWatchAction, when called as a $watch function, gets the wrong old\r\nvalue after it has been invoked previously due to observation of the\r\ninterpolated class attribute. As a result it doesn\'t remove classes\r\nproperly. Keeping track of the old value manually seems to fix this.\r\n\r\nFixes #1637', '7', null, null, 'provegard', '2013-02-15T23:34:55Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1987', '37', '2026', 'support for input type date and time - #1650', 'Added support for the new html5 input types date and time. As this is my first contribution to angular.js, i basically copied and then modified the code for input type number instead of refactoring the input.js for a more generic handling of the different input types.\r\n\r\nrelated issues: #1650 #757', '3', null, null, 'felixebert', '2013-02-17T21:45:16Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1988', '37', '2032', 'Support for Retina displays', 'A port of the Javascript library http://retinajs.com/ for AngularJS with the possibility to use angular markups.\r\nElements containing ``<img ng-src=\"...\">`` now can handle high resolution images, if the browser runs on a high resolution (Retina) display. Otherwise, or, if the hires image can\'t be found, the default image is loaded.\r\nThis module is very useful for everybody optimizing their application for Retina display such as the newer iPhone\'s, iPad\'s and MacBookPro\'s.\r\n', '1', null, null, 'jrief', '2013-02-18T21:05:58Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1989', '37', '2036', 'chore(nodeserver): fix log message for 301 response', 'Trivial fix to a log message in lib/nodeserver/server.js\r\n\r\nHope I can make a more meaningful contribution sometime soon. \r\nSteven.', '1', null, null, 'damycra', '2013-02-19T18:43:21Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1990', '37', '2037', 'Href sanitizer', '', '0', null, null, 'IgorMinar', '2013-02-20T01:34:40Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1991', '37', '204', 'remove eager-published + lazy polling', '', '2', null, null, 'IgorMinar', '2011-01-04T17:35:42Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1992', '37', '2040', 'feat(select,ng-options): New expression (identify by) in ng-options', 'Add a new expression (identify by) in ng-options.\r\nThis can be used when working with objects. Instead of objects comparing by reference\r\nit will compare by ex. a property.\r\n\r\nSo you can write:\r\n```javascript\r\nng-options=\"obj identify by obj.id as obj.name for obj in objects\"\r\n```\r\nThe identify part will be used when checking for equality of objects.\r\n\r\nExample:\r\nIf you get an json object from server with nested objects and a collection of those nested\r\nobjects you can use this to select correct object.\r\n```javascript\r\n<select\r\n ng-model=\"user.building\"\r\n ng-options=\"building identify by building.id as building.name \r\n for building in buildings\"\r\n >\r\n</select>\r\n\r\n//scope.user comes as json from server\r\n//scope.buildings comes as jsonarray from server\r\nscope: {\r\n user: { \r\n name: \'Test user\', \r\n building: { id: 1, name: \'Office 1\', address: \'Bla bla 12\', rooms: 4 } \r\n }\r\n buildings: [\r\n { id: 1, name: \'Office 1\', address: \'Bla bla 12\', rooms: 4 }, \r\n { id: 2, name: \'Office 2\', address: \'Bla bla 13\', rooms: 5 },\r\n ... \r\n ]\r\n}\r\n```\r\nThis will correctly select building with id 1 in the select and when select is changed\r\nit will populate the user with the building object selected.\r\n\r\n', '16', null, null, 'quazzie', '2013-02-20T16:10:13Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1993', '37', '2042', 'Basis for animations in angularjs', '', '3', null, null, 'matsko', '2013-02-20T19:46:27Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1994', '37', '2043', 'feat(ngAttribute): add directive attribute parameter ngAttrWhen', 'Allows for an additional boolean expression when using ngSrc/ngHref\r\n(ngAttribute) directives to control when to set the element attribute. If the\r\nattributes are set before all elements are populated and valid, the browser\r\ncould trigger a request for invalid image resource. Previously, the entire\r\nvalue was checked before setting the attribute and this accommodates\r\ngluing together the value in the ngAttribute parameter and deferring when\r\nit gets set.', '3', null, null, 'bholmberg', '2013-02-20T23:23:45Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1995', '37', '2045', 'Allow directives to modify interpolated attributes', 'In some case, we want a directive to be able do change the value of an interpolated attribute. It wasn\'t possible because the interpolate function was computed once before the compile time. I fixed this by computing again the interpolate function at link time.', '10', null, null, 'tleruitte', '2013-02-21T09:59:04Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1996', '37', '2050', 'Making element() selectors jQuery compatible', 'Changing $document.find to angular.element permits more complex selectors when using jQuery. Otherwise you\'re limited to selecting only by ID\'s and element tags which is very restricting in the real life testing scenarios.\r\n\r\nThe fact that the current state of this library leaves users at mercy of selecting only by jQueryLite standards makes me think that: \r\na) no real e2e tests have been done\r\nb) people manually code id\'s where they shouldn\'t just to test\r\nc) people use something else for e2e tests.', '1', null, null, 'stsvilik', '2013-02-21T19:08:04Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1997', '37', '2052', 'feat(bootstrap): allow deferring bootstrap to load extra modules', 'If the URL hash ends with _WAITFORMODULES, Angular will pause while\r\nbootstrapping to allow more modules to be loaded. The bootstrap\r\nmay then be resumed using angular.resumeBootstrapWithExtraModules. This is\r\nprimarily introduced to allow end to end tests to mock out modules.', '13', null, null, 'juliemr', '2013-02-21T20:17:59Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1998', '37', '2054', 'Being able to override url in resource actions', 'A pull request already existed (https://github.com/angular/angular.js/pull/1890)\r\nbut i found out that the url set up in the action would not have their params replaced.\r\n\r\nThis is what I intent to do here:\r\n```javascript\r\n var TypeItem = $resource(\'\', {type: \'Order\'}, {\r\n get: {\r\n method: \'GET\',\r\n params: {type: \'Customer\'},\r\n url: \'/:type/:typeId\'\r\n }\r\n });\r\n var item = TypeItem.get({typeId: 123});\r\n```\r\nwill call `/Customer/123`', '8', null, null, 'nolazybits', '2013-02-22T03:03:34Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('1999', '37', '2055', 'feat(retina): Directive ng-src supports Retina displays', 'A port of the Javascript library http://retinajs.com/ for AngularJS with the possibility to use angular markups.\r\nElements containing ``<img ng-src=\"...\">`` now can handle high resolution images, if the browser runs on a high resolution (Retina) display. Otherwise, or, if the hires image can\'t be found, the default image is loaded.\r\nThis module is very useful for everybody optimizing their application for Retina display such as the newer iPhone\'s, iPad\'s and MacBookPro\'s.\r\n\r\nThis is a rebased version of #2032\r\n', '7', null, null, 'jrief', '2013-02-22T11:54:18Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2000', '37', '2056', 'fix(httpBackend): use of reponseText is redundant and buggy', 'fixes #1922\r\nhttp://www.w3.org/TR/XMLHttpRequest/#dom-xmlhttprequest-responsetext\r\nin some cases `responseText` may throw an error, but if it correctly returns a value so does `response`, which will also correctly handle other kind of response types', '4', null, null, 'gonzaloruizdevilla', '2013-02-22T18:08:29Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2001', '37', '2058', 'feat($q): $q.all() now accepts hash', 'When waiting for several promises at once, it is often desirable to\r\nhave them by name, not just by index in array.\r\n\r\nExample of this kind of interface already implemented would be a\r\n```$routeProvider.when(url, {resolve: <hash of promises>})```, where\r\nresources/promises are given by names, and then results accessed\r\nby names in controller.\r\n\r\nThe CLA is signed.', '9', null, null, 'ashtuchkin', '2013-02-23T15:09:20Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2002', '37', '2059', 'feat(routing): Allow matching for case insensitive routes', 'In response to: https://github.com/angular/angular.js/issues/1383\r\n\r\nI added a function to the RouteProvider called caseSensitive to take a boolean value that can be taken into consideration when matching routes - the matching will either be case sensitive or not case sensitive, and defaults to case sensitive.\r\n\r\nI understand, from chad-configit@, if this is not the direction the AngularJS team would like to approach this.', '5', null, null, 'davidchang', '2013-02-23T21:54:46Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2003', '37', '2060', 'feat($resource): expose $promise and $response in promise-based api', 'This is a WIP to show a possible $resource promise-based api discussed in https://github.com/angular/angular.js/commit/dba6bc73e802fdae685a9f351d3e23c7efa8568a\r\n\r\nMain changes:\r\n * ```$promise``` and ```$response``` (http response) are exposed on resource instance object in addition to ```$then``` and ```$resolved```.\r\n * on success, the promise resolves to the same resource instance object filled with data. This is as expected to enable using it in resolve section of ```$route.when()```.\r\n\r\nArguably, ```$then``` and ```$response.resource``` are not needed anymore, what do you think?\r\n', '25', null, null, 'ashtuchkin', '2013-02-24T10:05:37Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2004', '37', '2061', 'feat($compile): Allow late binding attributes', 'Sometimes is not desirable to use interpolation on attributes because the user agent parses them before the interpolation takes place. I.e:\r\n\r\n```html\r\n<svg>\r\n <circle cx=\"{{cx}}\" cy=\"{{cy}}\" r=\"{{r}}\"></circle>\r\n</svg>\r\n```\r\n\r\nThe snippet throws three browser errors, one for each attribute.\r\n\r\nFor some attributes, AngularJS fixes that behaviour introducing special directives like ng-href or ng-src.\r\n\r\nThis commit is a more general solution that allows prefixing any attribute with \"ng-attr-\", \"ng:attr:\" or \"ng_attr_\" so it will be set only when the binding is done. The prefix is then removed.\r\n\r\nI.e:\r\n```html\r\n<svg>\r\n <circle ng-attr-cx=\"{{cx}}\" data-ng-attr-cy=\"{{cy}}\" ng:Attr:r=\"{{r}}\"></circle>\r\n</svg>\r\n```\r\nCloses #1050 \r\nCloses #1925', '16', null, null, 'lrlopez', '2013-02-24T12:46:30Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2005', '37', '2067', 'Allow to use a RegExp that comes trough a JSON-Object.', 'Allow to use a RegExp that comes trough a JSON-Object.\r\n\r\nExample:\r\n\r\n var json = { regexp: \"/.*/\" };\r\n\r\n <input type=\"text\" ng-pattern=\"json.regexp\">', '6', null, null, 'ghost', '2013-02-25T19:23:04Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2006', '37', '2068', 'docs(dateFilter): properly specify range for the Z format modifier', 'Closes #1533', '2', null, null, 'pkozlowski-opensource', '2013-02-25T20:25:19Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2007', '37', '2071', 'fix(angular.encodeUriQuery): fix encoding of string \"null\" to \'+\'', 'Fixes issue in encodeUriQuery that treats null as a string and replaces\r\nthe characters \"null\" with \"+\".\r\n\r\nThis is a fix for issue: https://github.com/angular/angular.js/issues/1978', '6', null, null, 'Andrew-McLeod', '2013-02-26T05:29:58Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2008', '37', '2073', 'Fix use of Mocha as test framework around ngMock', 'Issue #1467 describes a real problem when trying to use the Mocha support that was introduced in 1.1.1 as pull request #1253. It seems the code actually merged for #1253 differed from the original author\'s proposal in one key regard.\r\n\r\nThis pull request fixes #1467, and, I believe, that\'s also the reason for issue #1589 and why #1253 kept attracting comments after it was closed.\r\n\r\nWhile I was there, I fixed a couple comments.', '1', null, null, 'metamatt', '2013-02-26T07:39:00Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2009', '37', '2083', 'feat($resource): Added \'suffix\' parameter to $resource routes', '-- Works with query (/resources.json)\r\n-- works with get (/resources/1.json)\r\n-- works with querystring parameters (/resources?color-blue)\r\n\r\nLet me know what I need to improve or if this is still wanted. Pretty sure it addresses [this pull request/issue as well](https://github.com/angular/angular.js/pull/1211) \r\n\r\nNot sure if it\'s the best approach, but it works....', '35', null, null, 'ruprict', '2013-02-28T01:26:08Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2010', '37', '2084', 'feat(http): set custom default cache in $http.defaults.cache', 'When we need more control over http caching, we may want to provide\r\na custom cache to be used in all http requests by default.\r\n\r\nTo skip default cache, set {cache: false} in request configuration.\r\nTo use other cache, set {cache: cache} as before.\r\n\r\nSee #2079', '12', null, null, 'ashtuchkin', '2013-02-28T05:47:19Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2011', '37', '2085', 'Treat range inputs the same as number inputs', 'I\'ve simply added range as to the list of input types that can be treated as a number type. It has the same properties (min, max) and should be capable of behaving exactly the same way.\r\n\r\nI\'m not too comfortable with the docs/examples yet so I may have done something wrong. Please let me know if I need to fix anything.\r\n\r\n This fixes issue #1189', '20', null, null, 'chrisnicola', '2013-02-28T06:20:07Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2012', '37', '2089', 'feat(ngRepeat): add count option to repeater expression', '`ngRepeat` expressions can now accept an optional count varaiable:\r\n\r\n count for item in array\r\n count for (key, value) in object\r\n\r\nThe count is a user-defined expression assigned to the `ngRepeat`\'s\r\nparent scope. An example of intended use:\r\n\r\n <input type=\"text\" ng-model=\"search\">\r\n <div>Showing {{itemCount}} of {{items.length}}</div>\r\n <ul>\r\n <li ng-repeat=\"itemCount for item in items | filter:search\">\r\n {{item.name}}\r\n </li>\r\n </ul>', '23', null, null, 'satchmorun', '2013-02-28T22:49:44Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2013', '37', '2094', 'feat(Grunt) Switch from Rake to Grunt', 'This is the updated Grunt PR rebased onto the last few months of Angular progress. It also reflects the progress made to the Rake build during that time. See the initial PR #1544 for more details, discussion, improvements, etc. The build/tests/etc verified now works on Windows.', '30', null, null, 'geddski', '2013-03-03T08:14:14Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2014', '37', '2096', 'feat(directive): ng:switch-always', 'New directive to show elements inside a switch statement regardless if there\r\nwas a case match or the match was to a default\r\nElements marked as ng-switch-always show up in the position that they were\r\ndeclared inside the ng-switch\r\n\r\nCloses #1074', '11', null, null, 'lgalfaso', '2013-03-04T01:39:37Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2015', '37', '2099', 'Better docs to remember user to install ngResource', '![Screen Shot 2013-03-05 at 12 01 39 AM](https://f.cloud.github.com/assets/469908/219748/678d691a-8541-11e2-8cd2-de5af95c8e1c.png)\r\n\r\nAfter look the issue #1438 I just added the \"Installation section\" to give better docs for us. I\'ll also keep working in this issue.\r\nLet me know what you think about that.\r\n\r\nCheers.', '2', null, null, 'cironunes', '2013-03-05T03:09:11Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2016', '37', '21', 'Cookie Service fixes', 'refactoring for 3rd party', '0', null, null, 'IgorMinar', '2010-09-23T09:16:46Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2017', '37', '2101', 'feat(directive): ng:keypress New directives for binding to keypress eve...', 'Original PR included on keyup/down. A number of comments suggested need for keypress.https://github.com/angular/angular.js/issues/1035#issuecomment-13647392', '3', null, null, 'marknadig', '2013-03-05T19:54:54Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2018', '37', '2103', 'chore(Grunt): switch from Rake to Grunt', 'Migrates the Angular project from Rake to Grunt.\r\nBenefits:\r\n- Drops Ruby dependency\r\n- Lowers barrier to entry for contributions from JavaScript ninjas\r\n- Simplifies the Angular project setup and build process\r\n- Adopts industry-standard tools specific to JavaScript projects\r\n\r\nBREAKING CHANGE: Rake is completely replaced by Grunt. Below are the deprecated Rake tasks and their Grunt equivalents:\r\n\r\nrake --> grunt\r\nrake package --> grunt package\r\nrake init --> N/A\r\nrake clean --> grunt clean\r\nrake concat_scenario --> grunt build:scenario\r\nrake concat --> grunt build\r\nrake concat_scenario --> grunt build:scenario\r\nrake minify --> grunt minify\r\nrake version --> grunt write:version\r\nrake docs --> grunt docs\r\nrake webserver --> grunt webserver\r\nrake test --> grunt test\r\nrake test:unit --> grunt test:unit\r\nrake test:<jqlite|jquery|modules|e2e> --> grunt test:<jqlite|jquery|modules|end2end|e2e>\r\nrake test[Firefox+Safari] --> grunt test --in=[Firefox,Safari]\r\nrake test[Safari] --> grunt test --in=[Safari]\r\nrake autotest --> grunt autotest\r\n\r\nNOTES:\r\n* For convenience grunt test:e2e starts a webserver for you, while grunt test:end2end doesn\'t.\r\n Use grunt test:end2end if you already have the webserver running.\r\n* Removes duplicate entry for Describe.js in the angularScenario section of angularFiles.js\r\n* Updates docs/src/gen-docs.js to use #done intead of the deprecated #end\r\n* Uses grunt-contrib-connect instead of lib/nodeserver (removed)\r\n* Removes nodeserver.sh, travis now uses grunt webserver\r\n* Built and minified files are identical to Rake\'s output, with the exception of one less\r\n character for git revisions (using --short) and a couple minor whitespace differences\r\n\r\nCloses #199', '0', null, null, 'IgorMinar', '2013-03-06T03:49:56Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2019', '37', '2105', 'fix($http): ensure case-insens. header overriding', 'If user send content-type header, both content-type and default\r\nContent-Type headers were sent. Now default header overriding is\r\ncase-insensitive.\r\n\r\nAs per [RFC 2616](http://www.ietf.org/rfc/rfc2616.txt), \"[header] Field \r\nnames are case-insensitive\".\r\n\r\nBefore this fix, the following test would fail:\r\n\r\n``` javascript\r\nit(\'should override default headers with custom in a case insensitive manner\', function() {\r\n $httpBackend.expect(\'POST\', \'/url\', \'messageBody\', function(headers) {\r\n return headers[\'accept\'] == \'Rewritten\' &&\r\n headers[\'content-type\'] == \'Rewritten\' &&\r\n headers[\'Accept\'] === undefined &&\r\n headers[\'Content-Type\'] === undefined;\r\n }).respond(\'\');\r\n\r\n $http({url: \'/url\', method: \'POST\', data: \'messageBody\', headers: {\r\n \'accept\': \'Rewritten\',\r\n \'content-type\': \'Rewritten\'\r\n }});\r\n $httpBackend.flush();\r\n});\r\n```', '15', null, null, 'caiotoon', '2013-03-06T14:43:59Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2020', '37', '2108', 'docs(Grunt) note about running command line as Administrator on Windows', 'Will soon look into doing a copy instead of symlink for Windows. ', '1', null, null, 'geddski', '2013-03-06T19:06:39Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2021', '37', '211', 'Docs', '', '1', null, null, 'mhevery', '2011-01-05T23:46:03Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2022', '37', '2110', 'docs(directive): minor typo fix', 'Minor typo in the developer guide for directives: Changed \"obeject\" to \"object\"', '2', null, null, 'nieldlr', '2013-03-07T03:44:31Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2023', '37', '2114', 'fix($location): parse FirefoxOS packaged app urls', 'FirefoxOS uses special URLs like\r\napp://{d0419af1-8b42-41c5-96f4-ef4179e52315}/index.html for packaged Apps.\r\n\r\nCloses #2112', '3', null, null, 'Schibum', '2013-03-07T12:45:00Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2024', '37', '2116', 'fix ($orderBy): fix orderBy filter to sort Date objects correctly', 'Re-order the conditional statements in compare method to compare Date objects\r\ncorrectly. Since Date object does not equal Date object even the dates are the\r\nsame, so it can be safely assumed than one is not less than nor greater than\r\nthe other, it is the same as the other.\r\n\r\ntest\r\nhttp://jsfiddle.net/lvo811/hkbY3/', '3', null, null, 'lancevo', '2013-03-07T15:14:24Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2025', '37', '2117', 'URI component check. Closes #2115', 'Avoids AngularJS apps crashing when a malformed GET parameter is\r\nadded to the URL.', '8', null, null, 'escalant3', '2013-03-07T16:06:06Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2026', '37', '2119', 'Remove extranneous \'the\' from injector docs', 'Just a small grammar change.', '2', null, null, 'jasonm', '2013-03-07T22:27:29Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2027', '37', '2121', 'fix($location): correctly rewrite search params when html5 mode is enabled and not supported by browser', 'The conversion from html5 url to hashbang url failed to take into account search params if the path wasn\'t modified. I used the same test that the one used in the conversion of a hashbang url to an html5 url (https://github.com/tleruitte/angular.js/blob/master/src/ng/location.js#L67).', '3', null, null, 'tleruitte', '2013-03-08T14:03:06Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2028', '37', '2122', 'docs(ngCloak) - Update the CSS rule with data-ng-cloak', 'In our project we had to add `[data-ng-cloak]` in order for it to work.\r\nIn this PR I also included other properties from the Angular.js source that should have a `display: none`.', '2', null, null, 'christianvuerings', '2013-03-08T17:54:35Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2029', '37', '2126', 'feat ($filter): add a boolean filter', 'Add a filter which converts raw data values into valid boolean values.', '5', null, null, 'mbarzeev', '2013-03-08T21:08:35Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2030', '37', '2127', 'chore($ngLocale): Generate ngLocale files from the Closure code.', '', '1', null, null, 'chirayuk', '2013-03-08T23:48:44Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2031', '37', '2128', 'chore($ngLocale): Refactor i18n closure slurper logic.', '', '4', null, null, 'chirayuk', '2013-03-08T23:48:46Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2032', '37', '2129', 'feat(input): Allow custom events and timeouts to trigger model updates', 'By default, any change on the content will trigger an immediate model update and form validation. With this PR you can override this behavior using the `ng-update-model-on` attribute to bind only to a comma-delimited list of events.\r\n\r\nI.e. `ng-update-model-on=\"blur\"` will update and validate only after the control loses focus.\r\n\r\nIf you want to keep the default behavior and just add new events that may trigger the model update and validation, add \"default\" as one of the specified events.\r\n\r\nI.e. `ng-update-model-on=\"default,submit\"`\r\n\r\nAlso, a `ng-update-model-debounce` attribute will allow defering the actual model update after the last triggered event. This feature is not available in radio buttons.\r\n\r\nI.e. `ng-update-model-debounce=\"500\"` for 500ms\r\n\r\nCustom timeouts for each event can be set for each event if you use an object in `ng-update-model-on`. I.e. `ng-update-model-on=\"{default: 500, blur: 0}\"`\r\n\r\nYou can specify both attributes in any tag so they became the default settings for any child control, although they can be overriden.\r\n\r\nCloses #1285', '303', null, null, 'lrlopez', '2013-03-08T23:53:59Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2033', '37', '213', 'Jasmine', '', '1', null, null, 'mhevery', '2011-01-06T20:25:48Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2034', '37', '2130', 'Pr1701', '', '16', null, null, 'mhevery', '2013-03-09T06:36:57Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2035', '37', '2132', 'feat($filter): new date formats(timestamp, week in year, day in year)', 'Added new date formats to be used with date filter:\r\n- \'u\': Unix timestamp in milliseconds as used in javascript\r\n- \'U\': Unix timestamp (in seconds)\r\n- \'W\': Week in year\r\n- \'D\': Day in year', '13', null, null, 'florianorben', '2013-03-09T18:25:59Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2036', '37', '2134', 'fix(jqLite): mouseenter/-leave should not trigger on child elements', 'Mouseenter and mouseleave events were triggered on children of the\r\nelement they were bound to.\r\nChange this to the expected behaviour, to only be triggered when\r\nleaving/entering the actual element, not its children.\r\n\r\nCloses #2131', '8', null, null, 'florianorben', '2013-03-10T13:09:26Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2037', '37', '214', 'Issue keypress', '', '1', null, null, 'mhevery', '2011-01-07T03:42:25Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2038', '37', '2141', 'fix(*): do not rely on an object\'s hasOwnProperty ', 'As noted by #1944, AngularJS currently relies in several places on an object\'s own `.hasOwnProperty()` method. This will break when said object does not inherit from `Object.prototype`, or when this key is redefined.\r\n\r\nThis patch is inspired by jQuery\'s approach to the problem.\r\n\r\n### Caveats\r\n\r\n* No tests for `Object.create(null)` were included, as they would break on old versions of IE; however, their practical effect is the same as redefining `hasOwnProperty` to `undefined`.\r\n* I only included tests for the main functions, as I felt that writing a test for every single instance where `hasOwnProperty` might be called would needlessly dilute the tests.', '13', null, null, 'mernen', '2013-03-12T04:02:46Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2039', '37', '2143', 'docs($injector): correct misuse of $inject', '`$inject` was used where `$injector` was appropriate; confusing and misleading.', '1', null, null, 'kivikakk', '2013-03-12T05:31:58Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2040', '37', '2147', 'Fixes for PR 2017', '', '6', null, null, 'IgorMinar', '2013-03-13T05:53:14Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2041', '37', '2148', 'Fixing timeZoneGetter to fix for IST', 'When using the Angular date filter for Indian Standard Time the output received was +5.530 rather than the expect +0530. This is because on Line 217 the hour part of the paddedZone definition is a decimal number (5.5) rather than an integer for most timezones. Fixed this by applying floor/ceiling based on whether the zone is positive or negative.', '4', null, null, 'sujeetpillai', '2013-03-13T06:56:52Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2042', '37', '2155', '$compile + ngRepeat + replace templates (fix #2151)', 'Closes #2151', '5', null, null, 'IgorMinar', '2013-03-13T23:31:52Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2043', '37', '2157', 'add src attr for img', 'no. so of course it was not necessary to do.', '1', null, null, 'De-Luxis', '2013-03-14T08:04:34Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2044', '37', '2158', 'Uri regexp add ./ path', 'Add support relative path. \r\n\"./path/to/image.png\"', '0', null, null, 'De-Luxis', '2013-03-14T08:38:07Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2045', '37', '2161', 'Fix failing test in IE 10', 'formSpec test\r\n- should prevent the default when the form is destroyed by a submission via a click event\r\n\r\nwas failing in IE10. \r\n\r\nThis was because of a check that was checking only for IE9, which has now been changed to include IE10, which behaves the same way.', '0', null, null, 'shyamseshadri', '2013-03-14T16:44:18Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2046', '37', '2162', 'ngChildWindow directive', 'ngChildWindow allows a separate browser window to share the same scope as the parent window. \r\n\r\nhttps://groups.google.com/forum/?hl=en#!topic/angular/2szardRjAJg', '9', null, null, 'ineedfat', '2013-03-15T05:47:07Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2047', '37', '2163', 'enables AngularJS to use any jQuery, implementing issue #608', 'Enables AngularJS to use any jQuery library by using the `window.angularjsUseJquery` variable, that can have the following values:\r\n * `undefined` / `null` / `false` - the default behavior (try to use window.jQuery, if not, use internal)\r\n * `\"internal\"` - use the internal jQuery lite, no matter which other jQuery is present in the page\r\n * reference to any variable containing a jQuery instance\r\n\r\nAlso updated the documentation (manual bootstrapping guide) to include details about this feature.', '45', null, null, 'MihaiValentin', '2013-03-15T09:12:30Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2048', '37', '2164', '$routeChangeSuccess documentation', 'I hope this helps someone, I ran into some issues when following the API as described - handlers of this event receive 3 arguments, not 2.\r\n\r\nAlthough this is mentioned [elsewhere](http://docs.angularjs.org/api/ng.$rootScope.Scope#$on) it\'s not clear when viewing the docs for this behaviour in isolation. \r\n\r\nThe first argument is an Event Object, not the current route. The previous route argument can also be omitted on occasions.\r\n\r\nThanks.', '1', null, null, 'JamieMason', '2013-03-15T09:25:17Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2049', '37', '2165', 'fix(select): placeholder (empty option) is lost in IE9', 'Fixes a check inside render for select elements with ngOptions, which compares the selected property of an element with it\'s desired state.\r\nIn instances where no element should be selected, this resulted in the first option in the select element having it\'s selected attribute set from undefined to false.\r\nIn most browsers, this has the effect of displaying the first item in the list. In IE9 however, this causes the select to display nothing.\r\nIn other browsers this would still cause unnecessary changes in selected state, but no visible issue would manifest.\r\n\r\nCloses #2150, #1826', '5', null, null, 'henrikhulgaard', '2013-03-15T10:20:03Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2050', '37', '2168', 'feat(docs): Add Improve this doc link in each doc page, which links to t...', 'Added a \"Improve this doc\" button to each page in the generated documentation. The button links to Github for the file containing the doc, in Edit mode.\r\n\r\nAlso had to remove a done() call from gen-docs.js, because it wasn\'t working. Not sure if this was broken or something specific to my machine.\r\n\r\nPlease try this out before merging it in.', '2', null, null, 'shyamseshadri', '2013-03-15T16:48:48Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2051', '37', '2169', 'feat(ngSwipe): Add ngSwipeRight/Left directives to ngMobile', 'These directives fire an event handler on a touch-and-drag or\r\nclick-and-drag to the left or right. Includes unit tests and docs\r\nupdate.', '10', null, null, 'shepheb', '2013-03-15T18:21:24Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2052', '37', '2170', 'created new ngRepeat directive handling code', '', '1', null, null, 'matsko', '2013-03-15T19:43:19Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2053', '37', '2172', 'feat($parse):resolve promises returned from functions', 'change parser to resolve promises returned from functions on a scope.\r\n\r\nCloses #990\r\n\r\nafter reading the discussion on https://github.com/angular/angular.js/pull/1676 i\'m not sure how folks will feel about this, but the existing behavior was not what i expected and the change is nearly identical to how property level promises are resolved so figure i\'ll give it a shot.', '3', null, null, 'pdswan', '2013-03-16T07:25:32Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2054', '37', '2176', 'ngAnimate CSS3 + JS Animations', '', '2', null, null, 'matsko', '2013-03-18T01:05:29Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2055', '37', '2178', 'testacular upgrade (wf fails build on node >= 0.8)', 'testacular 0.5.9 depends on socket.io 0.9.0 which is about a year old and depends on socket.io-client which itself depends on wf 0.4.0 and this last guy wants node-waf to build when node-gyp replaces it in nodejs since 0.8.', '1', null, null, 'millette', '2013-03-18T08:06:47Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2056', '37', '2179', 'chore(select): Fix ngOptions regexp capture comment.', 'Off-by-one error.', '1', null, null, 'kivikakk', '2013-03-18T08:29:07Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2057', '37', '2180', 'docs(filter): Using indefinite article', 'This doc was using both definite article and indefinite article at the same time.', '1', null, null, 'brunocoelho', '2013-03-18T14:42:59Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2058', '37', '2181', 'chore(Angular): remove superfluous fromCharCode function', 'Remove fromCharCode function as it was used only in two inner\r\nfunctions in the code, and its functionality is achieved in several\r\nother places by using String.fromCharCode\r\n\r\nBreaks fromCharCode closure function, String.fromCharCode should be\r\nused instead', '3', null, null, 'jmendiara', '2013-03-18T18:30:33Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2059', '37', '2182', 'chore($ngLocale): Generate ngLocale files from the Closure code.', '- Addresses issue #2152\r\n- Generates new locale files that include date symbols present in [datetimesymbolsext.js](https://code.google.com/p/closure-library/source/browse/closure/goog/i18n/datetimesymbolsext.js)\r\n- Compare differences in `src/ngLocale/angular-locale_sr-latn-rs.js` to get a feel for the changes.\r\n- Uses code from branch [i18n_closure_logic](https://github.com/chirayuk/angular.js/tree/i18n_closure_logic) (a different pull request.)\r\n', '2', null, null, 'chirayuk', '2013-03-18T23:21:34Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2060', '37', '2183', 'docs(directive): Fix entity confusion in example.', '', '1', null, null, 'kivikakk', '2013-03-19T04:02:26Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2061', '37', '2187', 'Very small refactor in ngRepeat', 'arrayLength variable wasn\'t being used very well, so I renamed it to\r\narrayBound and made a tiny improvement. No increased functionality and no modified tests.', '5', null, null, 'mchapman', '2013-03-19T15:10:50Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2062', '37', '2188', 'fix(select): placeholder (empty option) is lost in IE9', 'Fixes a check inside render for select elements with ngOptions, which compares the selected property of an element with it\'s desired state.\r\nEnsured the placeholder, if available, is explicitly selected if the model value can not be found in the option list.\r\nWithout these fixes it\'s up to the browser implementation to decide which option to choose.\r\nIn most browsers, this has the effect of displaying the first item in the list. In IE9 however, this causes the select to display nothing.\r\n\r\nCloses #2150, #1826', '8', null, null, 'henrikhulgaard', '2013-03-19T16:10:58Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2063', '37', '2189', 'fix(ngMobile) arrange angularFiles so as to not skip modules tests', '707c65d5a228b added \'build/angular-scenario.js\' to the jstdModules list, which caused all the `grunt test:modules` to skip. Moving that file to the bottom fixes the issue. ', '7', null, null, 'geddski', '2013-03-20T00:04:35Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2064', '37', '2198', 'fix(ngMobile): Fix minified version', 'Added aliases for minification', '1', null, null, 'jasonals', '2013-03-20T20:42:39Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2065', '37', '2199', '\'Testacular\' renamed the project to \'Karma\'', 'Updated Testacular links to Karma', '5', null, null, 'yang-qu', '2013-03-21T01:49:17Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2066', '37', '22', 'please approve this', 'This just removes two obsolete files', '1', null, null, 'bolu', '2010-09-23T10:20:08Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2067', '37', '2200', 'Upgrade to the brand new test runner', '', '0', null, null, 'vojtajina', '2013-03-21T02:11:35Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2068', '37', '2202', 'Fixed typos (doc+src)', '', '2', null, null, 'pborreli', '2013-03-21T19:11:26Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2069', '37', '2203', 'fix(ngModel): use paste/cut events in IE to support context menu', 'In IE the model is not updated when the input value is modified using the context\r\nmenu, e.g. pasting from the clipboard, or cutting all or part of the current value.\r\nTo capture these changes, we bind to the proprietary \'paste\' and \'cut\' events.\r\n\r\nCloses #1462', '10', null, null, 'markdalgleish', '2013-03-21T20:10:41Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2070', '37', '2204', 'fix($location): fix back-button not triggering $locationChangeStart', '$locationChangeStart does not get broadcasted when pressing the back-button.\r\n\r\nbug example : http://plnkr.co/edit/NycOKi?p=preview\r\n\r\nCloses #2109', '3', null, null, 'quazzie', '2013-03-22T09:42:20Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2071', '37', '2205', 'Update controller.js', 'Improved $controller function doc readability.', '1', null, null, 'MattMcComb', '2013-03-22T09:45:42Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2072', '37', '2206', 'fix($location): back-button not triggering $locationChangeStart', '$locationChangeStart does not get broadcasted when pressing the back-button.\r\n\r\nbug example : http://plnkr.co/edit/NycOKi?p=preview\r\n\r\nCloses #2109', '9', null, null, 'quazzie', '2013-03-22T10:15:30Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2073', '37', '2208', 'Fixed typo from \'ofter\' to \'after\'', '', '2', null, null, 'skusunam', '2013-03-22T19:26:28Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2074', '37', '2212', 'docs(mocks): fix typos', 'PS I signed the CLA today', '1', null, null, 'eval', '2013-03-23T18:32:17Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2075', '37', '2215', 'feat(scope): add $watchProps method to scope.', 'The new method allows to shallow watch collections (Arrays/Maps).', '1', null, null, 'matsko', '2013-03-23T21:38:25Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2076', '37', '2216', 'feat(ngRepeat): add support for hash for item in items', 'BREAKING CHANGE:\r\n\r\nDefault behavior for hg-repeat is to associate the\r\nDOM elements by position rather then by identity.\r\n(Previously it was associate by object identity)\r\n\r\nIt is considered an error to have two items produce\r\nthe same hash key. (This was tolerated before.)\r\n\r\nTo get the old behavior one can simply add the\r\n$hash call to the hg-repeat expressions:\r\nitem in items => $hash(item) for item in items', '2', null, null, 'matsko', '2013-03-23T21:41:23Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2077', '37', '2217', 'Add back missed $ sign in adding controller example', '', '4', null, null, 'houqp', '2013-03-24T02:53:53Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2078', '37', '222', 'Rename foreach to make the api consistent', '', '1', null, null, 'IgorMinar', '2011-01-08T06:06:48Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2079', '37', '2223', 'feat($q): added support to promise notification', 'It is now possible to notify a promise through deferred.notify() method. Notifications are useful to provide a way to send progress information to promise holders.\r\n\r\nAs there is many heavy async operation, I also see a increasingly need of reporting progress so user receive feedback. Currently, one of the best ways to cover this necessity is using callbacks. As AngularJS is based on Kris Kowal promise model, I propose the implementation of [Kris Kowal\'s Progress Notification feature](https://github.com/kriskowal/q#progress-notification).\r\n\r\nI\'ve tried to follow both Kris Kowal and Angular $q philosophies. I know there is the necessity to update the DOCs, but I\'d like to first discuss the implementation. As we get it done, I\'ll them update the docs and include in this PR.\r\n\r\nFirst of, although it\'s a big DIFF, most of the added lines are test cases. I\'d like to know from core team if the test cases covers all necessities for such a feature. Also, explaining lightly, I added the method `.notify()` to the deferred, based on Kris Kowal\'s. This method is pretty simple and do pretty much the same thing as the original: **[call all callbacks in the nextTick](https://github.com/caiotoon/angular.js/blob/5192e973be316dcc66d3330fcbe2e9a1c054afe3/src/ng/q.js#L210-L224)**. \r\n\r\nSome of the points, tough, I had to make a decision regarding the behavior, and these are the points I\'d like to discuss. The main one are:\r\n\r\n1. As `reject`, `notify` [does not defer the progress when receiving a promise](https://github.com/caiotoon/angular.js/blob/5192e973be316dcc66d3330fcbe2e9a1c054afe3/test/ng/qSpec.js#L423-L430) as argument, it simple notify the promise it received as is.\r\n2. [As Kris Kowal\'s test case](https://github.com/kriskowal/q/blob/master/spec/q-spec.js#L346-L369), we [do not save and re-emit progress notifications](https://github.com/caiotoon/angular.js/blob/5192e973be316dcc66d3330fcbe2e9a1c054afe3/test/ng/qSpec.js#L454-L465).\r\n3. [As Kris Kowal\'s](https://github.com/kriskowal/q/blob/master/spec/q-spec.js#L314-L344), we [do not notify after fulfillment or rejection](https://github.com/caiotoon/angular.js/blob/5192e973be316dcc66d3330fcbe2e9a1c054afe3/test/ng/qSpec.js#L386-L420).\r\n4. In case of error while notifying, [we stop notification in derived promises](https://github.com/caiotoon/angular.js/blob/5192e973be316dcc66d3330fcbe2e9a1c054afe3/test/ng/qSpec.js#L637-L646), although we still [call all parallel callbacks in the order they were registered with the original value](https://github.com/caiotoon/angular.js/blob/5192e973be316dcc66d3330fcbe2e9a1c054afe3/test/ng/qSpec.js#L573-L582).\r\n5. When using `$q.when()`, the listeners [are attached only on the nextTick](https://github.com/caiotoon/angular.js/blob/5192e973be316dcc66d3330fcbe2e9a1c054afe3/src/ng/q.js#L379-L391). This means that if the notification goes synchronous, we\'ll lose it, as we don\'t re-emit notification. Is this correct? Should we change promise behavior someway without braking any test?\r\n6. When using `$q.all()`, we do not await for all promises to notify, instead, [we defer the notification to `nextTick` and notify all notifications received](https://github.com/caiotoon/angular.js/blob/5192e973be316dcc66d3330fcbe2e9a1c054afe3/src/ng/q.js#L438-L448), passing [null if there was no notification for a specific promise](https://github.com/caiotoon/angular.js/blob/5192e973be316dcc66d3330fcbe2e9a1c054afe3/test/ng/qSpec.js#L978-L989), or [omitting the property in case of hashes](https://github.com/caiotoon/angular.js/blob/5192e973be316dcc66d3330fcbe2e9a1c054afe3/test/ng/qSpec.js#L1065-L1083). Is this behavior correct?\r\n\r\nThe reason why these are my main concerns, is because this defines the feature itself, and fixing in future might not offer backwards compatibility.\r\n\r\nPlease, tell me what you think. I tried to blend in as much as possible, also trying to add the minimum amount of new code as possible. And of course, feel free to deny this feature. I would just like to know the reason, in this case.', '20', null, null, 'caiotoon', '2013-03-25T12:06:35Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2080', '37', '2227', 'docs(guide): Fixed typo in DI. angualar -> angular', 'Fixed typo in developer guide for dependency injection. \r\n\r\nangualar -> angular', '1', null, null, 'FelipeLahti', '2013-03-26T03:44:19Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2081', '37', '2229', 'fix a typo', '', '1', null, null, 'kamagatos', '2013-03-26T15:47:48Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2082', '37', '2231', 'Provide validation broadcasting', 'Necessary to control the models make it easy to organize a valid and invalid models', '0', null, null, 'Tuch', '2013-03-26T18:30:45Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2083', '37', '2234', 'fix missing closing bracket', '', '1', null, null, 'kamagatos', '2013-03-26T23:30:38Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2084', '37', '2236', 'docs(guide): Added missing closing div tag. ', 'Added missing close div tag to example', '1', null, null, 'FelipeLahti', '2013-03-27T03:57:59Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2085', '37', '2237', 'chore(Grunt) update grunt-contrib-copy', 'grunt-contrib-copy@0.4.1 has the cleaner summary output by default.', '1', null, null, 'geddski', '2013-03-27T05:36:46Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2086', '37', '2238', 'Add Angular license to package.json', 'NPM spec allows for Angular\'s license in the package.json, so for completeness, I added it in :)\r\n\r\nhttps://npmjs.org/doc/json.html', '1', null, null, 'theoreticaLee', '2013-03-27T07:14:05Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2087', '37', '2241', 'Update details on $locationProvider configuration', 'Default hashPrefix setting is not `\'!\'`, it\'s actually `null` at the moment.', '4', null, null, 'scomma', '2013-03-27T18:19:11Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2088', '37', '2242', 'Warning in a case $routeParams may be unpopulated', '~~I don\'t think this ought to happen. It was very surprising when I learned about it the hard way, so perhaps the warning should be here.~~\r\n\r\nPlease disregard this, it was just my misunderstanding.', '0', null, null, 'scomma', '2013-03-27T18:58:07Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2089', '37', '2245', 'remove controller', 'There is no controller function in the js. and module name is not correct as well, but I can\'t fix it from here', '1', null, null, 'maxisam', '2013-03-27T22:10:31Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2090', '37', '225', 'Issue #159: fix date filter', 'date.filter was not able to parse format ending with non-replaced strings, like `\'dd/mm/non-replaced\'`\r\n\r\nSo now:\r\n {{1280526317792 | date: \'MM/dd/YY\'}}\r\n -->> 07/30/YY\r\n \r\n {{1280526317792 | date: \'MM/dd/yy\'}}\r\n -->> 07/30/10\r\n', '1', null, null, 'vojtajina', '2011-01-09T13:46:51Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2091', '37', '2251', 'Grammar corrections', '`Hello wold` to `Hello world` and removal of an unnecessary word', '1', null, null, 'heath', '2013-03-29T01:02:07Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2092', '37', '2252', 'feat(ngAnimate): add support for animation', '', '3', null, null, 'matsko', '2013-03-29T01:45:58Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2093', '37', '2253', 'feat(ngdocs): added functionality to import external files inside docs comment code', '', '1', null, null, 'matsko', '2013-03-29T02:37:22Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2094', '37', '2254', 'fixed couple typos in api reference', '', '1', null, null, 'aost', '2013-03-29T06:52:36Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2095', '37', '2255', 'fix(copy) $resource throws TypeError when json has both properties & arrays', 'Closes #1044', '7', null, null, 'joelwreed', '2013-03-29T19:33:05Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2096', '37', '2257', 'feat(docs): add functionality to import and extract tagged contents from external files into docs comment code', '', '1', null, null, 'matsko', '2013-03-29T22:10:09Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2097', '37', '2259', 'http.js doc editing', 'spelling, grammar, capitalization, etc.', '1', null, null, 'aost', '2013-03-29T23:36:42Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2098', '37', '226', 'Issue 224 dom content loaded', '- switches to DOMContentLoaded\r\n- several isolated fixes for IE and jqLite', '1', null, null, 'IgorMinar', '2011-01-10T08:20:25Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2099', '37', '2260', 'New repeat fixes', '', '2', null, null, 'mhevery', '2013-03-30T04:35:08Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2100', '37', '2261', 'Update dev_guide.unit-testing.ngdoc', 'missing \'a\' before \'global variable\'', '1', null, null, 'urenmj', '2013-03-30T12:53:30Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2101', '37', '2265', 'Ng animate', '', '6', null, null, 'mhevery', '2013-03-31T05:00:43Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2102', '37', '2270', 'fix($browser): $watch() & url() breaks on async location.href updates', 'On at least IE8 & IE9, location.href is updated asynchronously.\r\n$watch() for $browser.url updates will loop until it breaks.', '0', null, null, 'alexlamsl', '2013-04-01T11:27:37Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2103', '37', '2271', 'fix($browser): $watch() & url() breaks on async location.href updates', 'On at least IE8 & IE9, location.href is updated asynchronously.\r\n$watch() for $browser.url updates will loop until it breaks.', '11', null, null, 'alexlamsl', '2013-04-01T12:07:37Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2104', '37', '2273', 'feat(controller): support as instance syntax', 'Support `ng-controller=\"MyController as my\"` syntax\r\nwhich publishes the controller instance to the\r\ncurrent scope.\r\n\r\nAlso supports exporting a controller defined with route:\r\n````javascript\r\nangular.module(\'routes\', [], function($routeProvider) {\r\n $routeProvider.when(\'/home\', {controller: \'Ctrl as home\', templateUrl: \'...\'});\r\n});\r\n````\r\n\r\n\r\n## I think we should change the docs to recommend only single way of doing this. ', '8', null, null, 'vojtajina', '2013-04-01T19:57:08Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2105', '37', '2277', '[bug fix] Date formatting for ISODate string fails on Android 2.1 stock browser, #2275', 'if \"offset\" is not specified, it messes up the calculations that follow. Apparently, it does not default to 0 in arithmetic context on some older browsers. ', '9', null, null, 'thiloplanz', '2013-04-02T13:50:12Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2106', '37', '2279', 'Some minor docstring corrections', '', '1', null, null, 'davesque', '2013-04-02T21:39:43Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2107', '37', '2280', 'fix(date): date filter now correctly formats high precision date-times', 'Fix the date filter so fractional seconds are processed correctly. For example ``{{2003-09-10T13:02:03.987654Z | date: yyyy-mm-dd ss}}`` is now formatted as ``2003-09-10 03``. Prior to this fix it was formatted as ``2003-09-10 30`` because the code treated ``.987654`` as 987.654s / 60s = 16 minutes 27.654 seconds so 27 seconds were added to the second component of the date.\r\n\r\nThe fractional seconds are rounded to the nearest millisecond.\r\n\r\nI\'ve also fixed a couple of tests so they work correctly when they are run in any time zone. I tested them in UTC+1300.\r\n\r\nSee:\r\n* https://github.com/angular/angular.js/pull/989.\r\n* https://github.com/steinjak/angular.js/commit/2df31b5e4c1e23461b62ecf9789645bcfc3451c5', '4', null, null, 'kevin-wells-iq4bis', '2013-04-02T22:21:28Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2108', '37', '2281', 'feat(ngdocs): added functionality to import and extract contents of external files inside docs comment code', '', '1', null, null, 'matsko', '2013-04-02T22:21:38Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2109', '37', '2283', 'feat(ndgocs) add animations into API directive examples', '', '2', null, null, 'matsko', '2013-04-02T23:44:44Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2110', '37', '2284', 'docs(jqLite): clarified that children/parent do not support selectors', 'I was trapped by this. Especially since the documentation points to the jquery documentation it can be the source for bad headaches.', '3', null, null, 'cburgdorf', '2013-04-03T08:30:28Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2111', '37', '2286', 'Docs animations', 'replaces #2283', '0', null, null, 'IgorMinar', '2013-04-03T09:17:09Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2112', '37', '2288', 'ngResource: fix cannot read property \'charAt\' of null', 'Fixes issue when setting a default param as `null` error `TypeError: Cannot read property \'charAt\' of null`', '20', null, null, 'jrschumacher', '2013-04-03T16:00:52Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2113', '37', '229', 'Offline docs', '', '1', null, null, 'IgorMinar', '2011-01-11T05:06:45Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2114', '37', '2290', 'Update index.ngdoc', 'The javascript testing library formerly known as Testacular, is now called Karma. I updated the documentation to reflect this change.', '1', null, null, 'ben-carson', '2013-04-03T21:45:50Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2115', '37', '2292', 'fix(ngAnimator): correct polyfillSetup activation and memento generation', 'polyfillSetup never runs; memento always returning undefined\r\n\r\nThe order of the functions should be switched for the proper return value\r\n\r\nline 243 of /src/ng/animator.js', '1', null, null, 'wbyoko', '2013-04-04T00:39:27Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2116', '37', '2293', 'fix($sniffer): fix $sniffer.supportsTransitions to support non-vendor CSS transition style properties', '', '2', null, null, 'matsko', '2013-04-04T03:38:48Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2117', '37', '2294', 'fix(ngPattern): allow modifiers on inline ng-pattern', 'Add support for regex modifiers on inline ng-pattern. `ng-pattern=\"/abc/i\"`\r\n\r\nCloses #1437', '4', null, null, 'austingreco', '2013-04-04T05:14:45Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2118', '37', '2298', 'Update animator.js', 'fixed typo', '1', null, null, 'wzr1337', '2013-04-04T10:44:41Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2119', '37', '2305', 'Forgot to update the copy-pasted version number?', '', '1', null, null, 'ejain', '2013-04-04T22:09:56Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2120', '37', '2306', 'Update ngClick.js documentation', 'replace ngClick with ng-click', '1', null, null, 'hlobil', '2013-04-05T04:04:45Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2121', '37', '2307', 'Fixed incomplete merge', '', '1', null, null, 'tmatsuo', '2013-04-05T05:03:05Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2122', '37', '231', 'Issue input select object: corrected the ng:format with select widgets', '', '0', null, null, 'mhevery', '2011-01-13T18:41:33Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2123', '37', '2311', 'wording changes', 'wording, a couple typos in http://code.angularjs.org/1.1.4/docs/api/ng.directive:ngAnimate', '1', null, null, 'winkler1', '2013-04-05T18:41:52Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2124', '37', '2312', 'feat(ngRemove): directive to remove a portion of the DOM tree (similar to ngHide)', 'I added a directive called `ngRemove` that I think could be useful. This works similar to `ngHide` except instead of setting the `display: none` css it will remove the element from the DOM.\r\n\r\nThere is already a comment in the code about refactoring `ngHide` *\"//TODO(misko): refactor to remove element from the DOM\"*. It seems to me `ngShow/ngHide` imply setting visibility rather than removing an element.\r\n\r\n##### Some example cases when `ngRemove` is helpful:\r\n\r\nWhen using bootstrap in the situation shown in the HTML snippet below the bootstrap css uses selectors like `.btn-group > .btn:first-child` and `.btn-group > .btn:last-child` to properly format a series of buttons. In this example if you just hide the last button `#btnCategories` using `display: none` the previous button `#btnUpload` won\'t be styled correctly -- the `#btnCategories` button needs to be removed from the DOM to trigger the `:last-child` selector on the `#btnUpload` button.\r\n\r\n <div class=\"btn-group\">\r\n <button id=\"btnHome\" class=\"btn btn-primary\"><i class=\"icon-home icon-white\"></i> Home</button>\r\n <button id=\"btnUpload\" class=\"btn btn-primary\"><i class=\"icon-upload icon-white\"></i> Upload Document</button>\r\n <button id=\"btnCategories\" class=\"btn btn-primary\"><i class=\"icon-edit icon-white\"></i> Manage Categories</button>\r\n </div>\r\n\r\nWhen using alternate inputs in a form (depending on application settings) it seems cleaner to remove the unused alternates instead of hiding them (in some cases they may share the same `name` or `id` attributes). As an example, the code below will use `radio` inputs if the application is set to only allow a single selection and `checkbox` inputs if multiple selections are allowed.\r\n\r\n <div id=\"answer-options\" class=\"controls\" ng-init=\"answerData={}\">\r\n <label class=\"{{slideData.answers.selectone && \'radio\' || \'checkbox\'}}\" ng-repeat=\"answerOption in slideData.answers.options\">\r\n <input ng-remove=\"!slideData.answers.selectone\" type=\"radio\" ng-model=\"answerData.radio\" value=\"{{$index}}\" />\r\n <input ng-remove=\"slideData.answers.selectone\" type=\"checkbox\" ng-model=\"answerData[$index]\" />\r\n {{answerOption.text}}\r\n </label>\r\n </div>\r\n <button type=\"button\" ng-click=\"submitQuestion(answerData)\" class=\"btn\">{{slideData.submittext || \"Submit\"}}</button>\r\n', '29', null, null, 'OrenAvissar', '2013-04-06T05:28:45Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2125', '37', '2313', 'testacular renamed in karma', 'do \'npm install -g karma\' instead of \'npm install -g testacular\' as testacular is karma now.', '1', null, null, 'lazybean', '2013-04-06T13:11:46Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2126', '37', '2315', 'Fixed injector.js comment sentence.', 'The following ways are all valid **ways** of annotating **a** function with injection arguments and are equivalent.', '1', null, null, 'brent-morrow', '2013-04-06T21:24:52Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2127', '37', '2316', 'Fixed Angular.js typo', 'Use this directive to auto-bootstrap **an** application.', '2', null, null, 'brent-morrow', '2013-04-06T21:29:30Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2128', '37', '2317', 'concepts.ngdoc typo', 'An event is a user **interaction**, timer event, or network event (response from a server).', '1', null, null, 'brent-morrow', '2013-04-07T07:17:36Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2129', '37', '2320', 'set ng-app as personalLog', 'without set ng-app as personalLog, this example can not work.', '3', null, null, 'zetay', '2013-04-07T12:10:57Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2130', '37', '2323', 'concepts.ngdoc wording change', '... or when working with --> a <-- third-party library callbacks.\r\n... or when working with third-party library callbacks.', '1', null, null, 'brent-morrow', '2013-04-07T18:59:08Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2131', '37', '2324', 'concepts.ngdoc wording change', '', '1', null, null, 'brent-morrow', '2013-04-07T19:23:47Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2132', '37', '2325', 'expression.ngdoc wording changes', '', '1', null, null, 'brent-morrow', '2013-04-07T20:08:16Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2133', '37', '2326', 'injector.js wording change', '', '1', null, null, 'brent-morrow', '2013-04-07T20:15:28Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2134', '37', '2327', 'Testacular renamed to Karma', '', '0', null, null, 'EmilienCo', '2013-04-07T21:08:23Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2135', '37', '233', 'Fixes for 0.9.9', '', '2', null, null, 'IgorMinar', '2011-01-13T23:31:40Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2136', '37', '2331', 'fix($animator): skip animation for initial show/hide', 'ngShow/ngHide directivies started animation just after rendering causing\r\nunexpected behaviour of showing animation of elements that should be already\r\nshown. This fix allows specifing \"instant\" parameter for $animator.show and\r\n$animator.hide functions to skip actual animation.\r\n\r\nMore information is at https://github.com/angular/angular.js/issues/2309', '4', null, null, 'olostan', '2013-04-08T10:40:07Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2137', '37', '2337', 'Update dev_guide.templates.filters.using_filters.ngdoc', 'Add example of using a filter with that accepts multiple arguments.', '1', null, null, 'colinkahn', '2013-04-08T23:04:35Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2138', '37', '2338', 'Give more details about directive declaration', 'I had a hard time understanding the different ways of declaring a directive, so I added some text to clarify the different return values of the factory function.', '1', null, null, 'mrlucmorin', '2013-04-08T23:52:19Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2139', '37', '2342', 'angular-mocks.js wording', '', '1', null, null, 'brent-morrow', '2013-04-09T05:26:03Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2140', '37', '2345', 'feat($animator): allow to globally disable and enable animations', '', '1', null, null, 'matsko', '2013-04-09T16:15:19Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2141', '37', '2353', 'Updated the testacular links to Karma links.', 'I have changed the testacular links to karma links.', '1', null, null, 'tojochacko', '2013-04-10T11:01:13Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2142', '37', '2354', 'docs($http): fix range notation', 'range was using parentheses instead of brackets', '1', null, null, 'brunocoelho', '2013-04-10T13:47:57Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2143', '37', '2357', 'Update index.ngdoc, testacular renamed to karma', 'Testacular is deprecated, just updating the doc here for you all', '2', null, null, 'kowskis', '2013-04-10T19:21:30Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2144', '37', '2358', 'docs(guide): updates for legacy IE7 support', '- note re: id=\"ng-app\" to bootstrap/IE partials\r\n- added doctype/xmlns to markup\r\n- add cond comment re: json2/3 to markup', '1', null, null, 'uberspeck', '2013-04-11T01:43:51Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2145', '37', '2359', 'Add support for all mobile devices', 'Adds support for windows 8 devices (IE 10 pointer events as well as the [W3C Version](http://www.w3.org/TR/pointerevents/)) and provides a factory for extending the input abstraction\r\n\r\nSee the following fiddle as an example of extending the mobile events for implementing draggable elements (which in turn can be extended to create sliders etc)\r\nhttp://jsfiddle.net/Z6tN3/1/ (Try using multiple fingers on any mobile device)\r\n\r\nAll existing mobile test pass.\r\n\r\nContributes to angular/angular.js#1502 and builds on angular/angular.js#2017\r\n', '13', null, null, 'stakach', '2013-04-11T03:40:39Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2146', '37', '2362', 'fix for #2361', 'removed merge conflict comment in angular-mocks.js', '1', null, null, 'patrickkettner', '2013-04-11T05:16:30Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2147', '37', '2363', 'fix(ngdocs): improve the animations used in the docs menu', '', '1', null, null, 'matsko', '2013-04-11T08:00:47Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2148', '37', '2374', 'Fix typo', '', '2', null, null, 'whit537', '2013-04-11T15:36:44Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2149', '37', '2376', 'docs($http): fix range notation', 'range was using brackets instead of parantheses', '2', null, null, 'brunocoelho', '2013-04-11T18:42:28Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2150', '37', '2378', 'Doc type hinting with colors', '', '0', null, null, 'matsko', '2013-04-11T20:23:22Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2151', '37', '2379', 'fix(a): allow jqLite triggerHandler(\'click\') on anchors', 'Previously, anchor elements could not be used with triggerHandler because\r\ntriggerHandler passes null as the event, and any anchor element with an empty\r\nhref automatically calls event.preventDefault(). Add a check that event\r\nexists before calling preventDefault.', '2', null, null, 'juliemr', '2013-04-11T20:28:00Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2152', '37', '2380', 'Fix small typos in docs', '', '1', null, null, 'iffy', '2013-04-11T21:16:00Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2153', '37', '2381', 'fix:(animation): Animator does not correctly parse transition durations with multiple values', 'This fixes #2373\r\n\r\nUnfortunately I don\'t really know how to write tests for that. Any idea would be welcome.', '30', null, null, 'cburgdorf', '2013-04-11T23:17:35Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2154', '37', '2382', 'fix(Angular): Angular.copy shouldn\'t copy $$hashKey or $$* properties', 'Fix for this issue: https://github.com/angular/angular.js/issues/1875\r\n\r\nI copied the code from shallowCopy in to copy so that both should be consistent. Though that issue mentioned Angular.extend also copies $$hashkey, I though that would be appropriate, somewhat expected behavior.', '3', null, null, 'davidchang', '2013-04-12T05:39:40Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2155', '37', '2383', 'fix(jqLite): change implementation of mouseenter/mouseleave event', 'Implement mouseenter/mouseleave event refering to http://www.quirksmode.org/js/events_mouse.html#link8 and jQuery source code (not dependent on jQuery).\r\nThe old implementation is wrong. When moving mouse from a parent element into a child element, it would trigger mouseleave event, which should not.\r\nAnd the old test about mouseenter/mouseleave is wrong too. It just triggers mouseover and mouseout events, cannot describe the process of mouse moving from one element to nother element, which is important for mouseenter/mouseleave.\r\n\r\nCloses #2131, #1811', '11', null, null, 'gockxml', '2013-04-12T12:14:55Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2156', '37', '2384', 'refactor($injector): Improved readability for injector.instantiate method', 'This code part is not so self-explanatory.\r\nRefactored a few lines for easier understanding what happens at this function.\r\n', '2', null, null, 'robinboehm', '2013-04-12T13:25:42Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2157', '37', '2385', 'Update faq.ngdoc', '- added note to FAQ re: legacy IE support', '1', null, null, 'uberspeck', '2013-04-12T17:00:13Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2158', '37', '2386', 'Update overview.ngdoc', '- added link to angular demo slides to overview', '1', null, null, 'uberspeck', '2013-04-12T17:02:34Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2159', '37', '2389', 'feat(ngTap): Add a CSS class while the element is held down.', 'This was a feature requested by @cburgdorf on the original ngTap PR, and it sounded like a good idea. I also updated the docs a bit; they predated the move to overriding ngClick.', '4', null, null, 'shepheb', '2013-04-12T18:32:40Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2160', '37', '2393', 'fixed docs link to api/ng.$route', 'anchor href to \"api/ng.$route\" was displaying incorrectly', '1', null, null, 'brandonjp', '2013-04-12T23:41:22Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2161', '37', '2394', 'fix(Scenario): correct bootstrap issue on IE', 'we need to set the deferred bootstrap flag via window.name after the iframe\'s\r\nsrc has been set, otherwise IE will reset it to empty string\r\n\r\nthis change was sufficient to get the angular-seed tests to pass for angular 1.0.6', '2', null, null, 'IgorMinar', '2013-04-13T06:42:51Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2162', '37', '2395', 'typo', '\'or\' should be changed to \'of\'', '1', null, null, 'yeonsh', '2013-04-13T07:15:47Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2163', '37', '2396', 'Update animator.js', 'Added support for transition-delay property.', '10', null, null, 'romiem', '2013-04-13T13:44:49Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2164', '37', '2397', 'Fixed a few typos in Angulars.js and rootScope.js documentation', 'Fixed a few typos in Angulars.js and rootScope.js.', '1', null, null, 'laurent22', '2013-04-13T17:30:20Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2165', '37', '2398', 'feat($location): Location change notifications can now be skipped', 'This adds a new `notify` method to `$location` that allows updating the location without triggering `$locationChangeStart`/`$locationChangeSuccess` events.\r\n\r\nThe method is chainable and must be called with a boolean parameter. Any falsy value will disable the notification procedure and will block any route update that may apply.\r\n\r\nThe skip flag will be reset after any digest cycle, so it must be set again on any subsequent change if needed.\r\n\r\nExample: `$location.path(\'/client/2\').replace().notify(false);`\r\n\r\nCloses #1699', '9', null, null, 'lrlopez', '2013-04-13T17:54:07Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2166', '37', '2399', 'Update tutorial docs to use Karma instead of Testacular.', 'Replaced instances of \'Testacular\' with \'Karma\' to reflect name change of test runner.\r\nReplaced instances of \'testacular\' with \'karma\' to reflect name change of test runner.\r\n\r\nReplaced instances of \'http://vojtajina.github.com/testacular\' with \'http://karma-runner.github.io/\' to reflect dedicated page for Karma Test Runner.\r\n\r\nAdded location of config file needed to start the Karma server in step 2. This is still labeled \'testacular.conf.js\' and needs file name to be updated in the phone example repo.', '5', null, null, 'Rosseyn', '2013-04-14T06:29:48Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2167', '37', '24', 'more important cookie service fixes', '- preserve existing cookies\r\n- correctly handle cases when browser doesn\'t set cookies', '3', null, null, 'IgorMinar', '2010-09-27T06:50:12Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2168', '37', '240', 'Doc fixes', '', '1', null, null, 'IgorMinar', '2011-01-18T22:18:03Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2169', '37', '2405', 'Don\'t call $window.getComputedStyle on non-element', 'This throws an exception at least in some versions of FF, and is declared\r\nas taking only an Element and not an arbitrary Node in the W3C spec.\r\n\r\nOne place where this can happen easily is with ng-view if the template\r\ncontains more than just a single top-level node (even just a trailing\r\nnewline can trigger the problem).\r\n\r\nAlso short-circuit the case where getComputedStyle doesn\'t return anything.', '9', null, null, 'ksperling', '2013-04-15T05:27:33Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2170', '37', '2406', 'Fix wrong @returns documentation', '', '1', null, null, 'frosas', '2013-04-15T15:28:15Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2171', '37', '2408', 'fix(jqLite): pass in a dummy event with triggerHandler', 'Previously, anchor elements could not be used with triggerHandler because\r\ntriggerHandler passes null as the event, and any anchor element with an empty\r\nhref automatically calls event.preventDefault(). Instead, pass a dummy event\r\nwhen using triggerHandler, similar to what full jQuery does. Modified from\r\nPR #2379.', '9', null, null, 'juliemr', '2013-04-15T22:59:10Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2172', '37', '2412', 'fix(Grunt): also remove \\r chars when joining files', '', '0', null, null, 'petebacondarwin', '2013-04-16T11:31:52Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2173', '37', '2413', 'fix(ngClass): should remove class when object is the same but property has changed', 'If you wire up ngClass directly to an object on the scope, e.g. `ng-class=\"myClasses\"`,\r\nwhere `scope.myClasses = { \'classA\': true, \'classB\': false }`,\r\nthere was a bug that changing `scope.myClasses.classA = false`, was not being picked\r\nup and classA was not being removed from the element\'s CSS classes.\r\n\r\nThis fix uses `angular.equals` for the comparison and ensures that oldVal is a copy of\r\n(rather than a reference to) the newVal.', '1', null, null, 'petebacondarwin', '2013-04-16T11:40:50Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2174', '37', '2414', 'Grammar', 'grammar', '1', null, null, 'TimothyAhong', '2013-04-16T15:21:21Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2175', '37', '2415', 'fix($animator): remove dependency on window.setTimeout.', '', '7', null, null, 'mhevery', '2013-04-16T16:55:32Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2176', '37', '2418', 'Escape all characters above \\u007f at the i18n directory', 'Modify the script that writes the locales so all characters above \\u007f are escaped\r\nRun the modified script and update the locales\r\n\r\nCloses #2417', '4', null, null, 'lgalfaso', '2013-04-16T22:27:59Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2177', '37', '2419', 'Fix typo in Injector call inlining example', 'the actual invoke call in the documentation was referring to the non-existent `tempFn` instead of `tmpFn`', '1', null, null, 'fbiville', '2013-04-16T23:36:39Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2178', '37', '2420', 'Fix typo in compile/link separation paragraph', 'The code snippet shows `{{action.description}}`, the explanation referred to it as `{{action.descriptions}}`.', '1', null, null, 'fbiville', '2013-04-16T23:54:50Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2179', '37', '2422', 'docs(ngClassEven): make consistent with ngClassOdd', '', '1', null, null, 'es128', '2013-04-17T00:24:30Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2180', '37', '2423', 'fix(angular): do not copy $$hashKey in copy/extend functions.', 'Copying the $$hashKey as part of copy/extend operations makes little\r\nsense since hashkey is used primarily as an object id, especially in\r\nthe context of the ngRepeat directive. This change maintains the\r\nexisting $$hashKey of an object that is being copied into (likewise for\r\nextend).\r\nIt is not uncommon to take an item in a collection, copy it,\r\nand then append it to the collection. By copying the $$hashKey, this\r\nleads to duplicate object errors with the current ngRepeat.\r\n\r\nCloses #1875', '8', null, null, 'spamdaemon', '2013-04-17T00:26:00Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2181', '37', '2424', 'Adding `always` method to `$q` service.', 'The current implementation of `$q` doesn\'t support the [always()](http://api.jquery.com/deferred.always/) method. This is a very useful method since it can avoid creating duplicate code when you do not care about the outcome of a promise. Here\'s some sample code:\r\n\r\n // Cover the app with an overlay to disable user input. We\r\n // want to remove it whether the initialization was successful\r\n // or not.\r\n LoadingOverlay.start();\r\n Auth.initialize().then(function() {\r\n LoadingOverlay.stop();\r\n }, function() {\r\n LoadingOverlay.stop(); // duplicate code!!\r\n });\r\n \r\nWith an `always` method it could be simplified to just this:\r\n\r\n LoadingOverlay.start();\r\n Auth.initialize().always(function() {\r\n LoadingOverlay.stop();\r\n });\r\n\r\nThe proposed implementation is to add an `always()` method to the `promise` object. This method simply re-uses the existing `then()` method, which means it won\'t bloat the `$q` implementation.\r\n\r\nIf there\'s any interest in this implementation, I\'d be glad to add the tests for it.', '10', null, null, 'laurent22', '2013-04-17T06:30:59Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2182', '37', '2426', 'fix(ngModel): handle interpolated names for ngModel', 'Fix that controls with interpolated names don\'t publish\r\nthemselves to the form, cause the name isn\'t known at\r\npublishing time.\r\n\r\nRefers #1404', '1', null, null, 'yaroslav-ulanovych', '2013-04-17T13:09:32Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2183', '37', '2428', 'docs(directive): add <a name=\"Definition\">', 'This makes the \"Directive Definition Object\" heading bookmarkable. It\'s such a handy reference and deserves an id.', '2', null, null, 'chirayuk', '2013-04-17T20:55:56Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2184', '37', '2429', 'Spelling correction.', '', '1', null, null, 'iammerrick', '2013-04-17T21:24:38Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2185', '37', '2430', 'The sample input only turns red when blank', 'Update the bullet point to reflect this fact. Tested in FF 20 and Chrome 26.', '1', null, null, 'jaredbeck', '2013-04-17T21:28:00Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2186', '37', '2432', 'docs(guide:e2e) :improve e2e testing guide', 'Create working examples for testing select fields, input fields etc\r\nin e2e testing.\r\n- line Item count example\r\n- line item val example\r\n- line item change example\r\n\r\nWill add more shortly.\r\n', '13', null, null, 'alnutile', '2013-04-17T22:57:18Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2187', '37', '2433', 'Replace:false in directive doesn\'t \"append\" as documented', 'According to the [documentation](http://docs.angularjs.org/guide/directive):\r\n\r\n> `replace` - if set to `true` then the template will replace the current element, rather than append the template to the element.\r\n\r\nAs identified by #2235, the documented behaviour does not match the actual current behaviour.', '2', null, null, 'jshado1', '2013-04-17T23:28:40Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2188', '37', '2435', 'fix(ngLocation): check for javascript: in URL', 'Fixes #2434', '2', null, null, 'christianvuerings', '2013-04-18T02:22:44Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2189', '37', '2439', 'fix($resource): return result from prototype methods', '\r\n1. ```Resource[name]``` returns ```value``` that contains ```$then``` and other useful things. [#L476](https://github.com/angular/angular.js/blob/master/src/ngResource/resource.js#L476)\r\n2. ```Resource.prototype[\'$\' + name]``` invokes ```Resource[name]``` at the end but returns nothing. [#L502](https://github.com/angular/angular.js/blob/master/src/ngResource/resource.js#L502)\r\n\r\n__Possible fix:__ add ```return``` state to the end of the ```Resource.prototype[\'$\' + name]``` definition.', '8', null, null, 'gorkunov', '2013-04-18T09:08:39Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2190', '37', '244', 'ng:view', '', '2', null, null, 'IgorMinar', '2011-01-19T22:49:58Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2191', '37', '2440', 'Typo fix', '', '1', null, null, 'reichertm', '2013-04-18T09:43:09Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2192', '37', '2443', '[doc] fix typo in input doc', '', '1', null, null, 'leesei', '2013-04-18T16:20:58Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2193', '37', '2445', 'test(modules): fix module tests which got disabled by ngMobile', 'When ngMobile was merged in, we accidentaly included angular-scenario.js\r\nin the test file set for modules. Loading this file overrode jasmine\'s\r\n`it` and `describe` global functions which essentially disabled all of\r\n~200 unit tests for wrapped modules.\r\n\r\nThis change refactors the code to run the wrapped module tests.\r\n\r\nI had to extract browserTrigger from scenario runner in order to achieve\r\nthis without code duplication.', '3', null, null, 'IgorMinar', '2013-04-18T19:54:42Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2194', '37', '2446', '(doc) Fix select documentation', 'Select documentation was still referring to binding to name, when it should be ng-model instead. Fixed it.', '1', null, null, 'shyamseshadri', '2013-04-19T06:44:43Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2195', '37', '2449', 'feat(docs): Docs Localization', 'Localization of the Angular docs for non-english people\r\n\r\nHow to Build:\r\n- Add options docs task in Gruntfile see below\r\n\r\ndocs : {\r\n options: {\r\n locale: \"ko\"\r\n },\r\n process: [\'build/docs/*.html\', \'build/docs/.htaccess\']\r\n}\r\n\r\n- create content folder for translation using following pattern\r\n\r\nex) content-ko, content-pl, content-cz\r\nlatest commit 8f20ef029d\r\n\r\nBy this, local community can do transliteration of angular docs into their language', '0', null, null, 'jeado', '2013-04-19T14:57:38Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2196', '37', '245', 'Docs', '', '2', null, null, 'mhevery', '2011-01-19T23:44:33Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2197', '37', '2450', 'Fixing a typo with IE warning', 'It just doesn\'t make sense with a \"w\".', '1', null, null, 'fidian', '2013-04-19T15:28:25Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2198', '37', '2452', 'feat($q): Add optional canceler and promise.cancel method', 'Add an optional argument to $q.defer to provide a canceling function.\r\nThis exposes a promise.cancel method that can be used to call the\r\ncanceling function and reject the promise.\r\n\r\nSee existing implementations in [Dojo Toolkit](http://dojotoolkit.org/api/dojo/Deferred) and [Promised-IO](http://github.com/kriszyp/promised-io) library\r\nfor reference.\r\n\r\nThis will make it easier to implement things like #1159.', '8', null, null, 'dbinit', '2013-04-19T16:23:13Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2199', '37', '2453', 'Adding an example unit test for directives', 'Adding an example unit test for directives', '6', null, null, 'TimothyAhong', '2013-04-19T22:10:21Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2200', '37', '2454', 'feat (ng-pluralize): add alternative mapping using attributes', 'When using ngPluralize, I found myself having to escape the characters \" and \'.\r\nThis PR adds an alternative way to define the mapping using attributes to the <ng-pluralize> element like this\r\n\r\n```html\r\n<ng:pluralize count=\'viewCount\' offset=\'1\'\r\n _0=\'Nobody is viewing.\'\r\n _1=\'{{p1}} is viewing.\'\r\n one=\'{{p1}} and one other person are viewing.\'\r\n other=\'{{p1}} and {} other people are viewing.\'>\r\n</ng:pluralize>\r\n```\r\n', '41', null, null, 'lgalfaso', '2013-04-20T03:36:56Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2201', '37', '2455', 'feat(Future): add ready function to Future object', 'The ready function allows you to execute a callback function after the Future has been fulfilled. This facilitates deeply nested e2e tests. The ready function takes one argument, either the value of the fulfilled future or an error\r\n\r\nExample:\r\n\r\n element(\'#myButton\').click().ready(function() {\r\n expect(element(\'#someElement\').html()).toContain(\'expected value\');\r\n });\r\n\r\nThis will help with an issue like #882\r\n\r\nBefore(doesn\'t work):\r\n\r\n expect(element(\'#NavList\').text()).toContain(activeLink.text());\r\n\r\nAfter(works):\r\n\r\n activeLink.text().ready(function(value) {\r\n expect(element(\'#NavList\').text()).toContain(value);\r\n });', '5', null, null, 'dereksantos', '2013-04-20T04:14:42Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2202', '37', '2457', 'refactor(core): use native String.prototype.trim if available', '', '11', null, null, 'SebastianM', '2013-04-20T17:35:36Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2203', '37', '2458', 'feat($locale): add a `set` method to change the locale', 'Currently it is not possible to have two angular applications on the same page that use different locales, at least not without some hackery like the one present on the angular home page\r\n\r\n```javascript\r\n $script(\'http://code.angularjs.org/1.0.6/i18n/angular-locale_sk.js\', function() {\r\n angular.module(\'ngLocal.sk\', [])._invokeQueue.push(angular.module(\'ngLocale\')._invokeQueue[0]);\r\n bootstrap();\r\n });\r\n $script(\'http://code.angularjs.org/1.0.6/i18n/angular-locale_en-us.js\', function() {\r\n angular.module(\'ngLocal.us\', [])._invokeQueue.push(angular.module(\'ngLocale\')._invokeQueue[0]);\r\n bootstrap();\r\n });\r\n```\r\n\r\nThis patch add to $locale a `set` method that will make it change to a new locale\r\nAlso change the i18n conversion so arrays are not converted to plain\r\nobjects, this is not consistent with the built-in implementation\r\nnor with the existing tests', '27', null, null, 'lgalfaso', '2013-04-20T19:45:37Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2204', '37', '2459', 'Setting cookie attributes in $cookieStore', 'As a response to issues: #1786,#950,#1918,#1320\r\nThis PR enables setting a cookie\'s path and expires attributes using the $cookieStore service. \r\n$cookies was not changed, since it\'s API is too strict, I could find no way to implement it without causing breaking changes, or using some terrible hacks.\r\nI would suggest adding a new service to the module to support more advanced features (such as Json $watch expression, which should be more useful then binding the $cookies object directly), but this would probably require a bit of research regarding use cases.\r\n\r\nSome things to note regarding the implementation:\r\n* urlroot (karma property) was added to all unit tests - to facilitate testing of different cookie path\r\n* Backward incompatible change (bad fixing a bad behaviour):\r\n delete cookie now deletes cookies set with a path other then / (or baseHref)\r\n that is before the fix, if you had a cookie set on path /karma (if it was added by the server for instance), \r\n you would be able to see it, but deleting it will fail silently (and will not delete)\r\n delete cookie now deletes duplicate cookies with the same name (if they have different paths)\r\n* Due to the fact that no browser allows inspecting the Path and Expiration date of a cookie, I chose to add a private _setCookie function inside the $browser module\r\n which I override in unit tests. Not the most elegent solution, but the only other way to check Expiration is to mock the document object and change how document.cookie works, and that would have taken me too long for very little benefit.\r\n\r\nDesign decisions:\r\n* to change the path and/or expiration date of a cookie, you can pass an options object as the third argument to cookies(name,value)\r\n the options object can override Path and Expires when adding a value, all other options variables are ignored (but are allowed, I.E. no validation is made).\r\n You can pass either path, expires,none or both.\r\n* the path option is checked to be a string and be partial to window.location, otherwise, the default path is used. (warning is logged)\r\n* the expires option is checked to be a Date and in the future, otherwise no expiration is set. (warning is logged)\r\n* at the moment no support for non-Date expires is supported (for instance such as maxAge, or a number to indicate number of millesconds for cookie to last)\r\n* you can now delete a cookie on a specific path by calling cookie(name,undefined,options), with options containing path\r\n* only the $cookieStore service will support putting cookies with different path/expiration (as well as deleting certain paths.\r\n this is to support backward compatability with $cookies.\r\n\r\nNotes:\r\n if the value passed to browser.cookies is not a String, it fails silently.\r\n\r\n\r\nThis is my first time contributing here (and on a Major open source project), I hope this can be incorporated.\r\nI\'m more than happy to make changes if something is wrong, so please let me know.\r\n', '80', null, null, 'Illniyar', '2013-04-20T21:01:56Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2205', '37', '246', 'Issue 244', '', '1', null, null, 'mhevery', '2011-01-20T00:14:35Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2206', '37', '2461', 'Change opening to be more specific and clear.', '', '1', null, null, 'n1cholasv', '2013-04-21T02:46:15Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2207', '37', '2465', 'Fix Bug in Dragable example', '**Tested in Tested in latest Chrome 26.0.1410.65 for OS X**\r\nIn the example with draggable, the mouseDown handler needs to start with an `event.preventDefault()`. Otherwise the following bug occurs:\r\n\r\n1) Select the text of the draggable span by clicking outside the span and dragging the mouse to the left or right through the span. Release the mouse button.\r\n2) Now click on the span\'s inner text, and start to Drag it. The browser\'s default functionality that drags highlighted text so that it can be pasted into something else (say a document in a text editor) is invoked.\r\n3) Release the mouse button. Now suddenly, you\'ll be dragging the span. But you won\'t be able to place it down on the page. It\'ll just follow the mouse around until the page is refreshed.\r\n\r\nThe added line fixes this. ', '1', null, null, 'mleveck', '2013-04-21T09:31:59Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2208', '37', '2466', 'Minor grammatical change', '', '1', null, null, 'demoive', '2013-04-21T12:01:47Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2209', '37', '2468', 'Fix incorrect variable scope in draggable example', '', '2', null, null, 'keir', '2013-04-21T23:38:00Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2210', '37', '2469', 'Formatting fixes to form documentation examples', '', '1', null, null, 'keir', '2013-04-21T23:58:50Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2211', '37', '2470', 'Update forms.ngdoc', 'typo \"is in instance\" => \"is an instance\"', '1', null, null, 'ryang-sfdc', '2013-04-22T02:31:25Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2212', '37', '2472', 'Patch 1', '', '2', null, null, 'tamtakoe', '2013-04-22T04:41:58Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2213', '37', '2474', 'More jQuery-like jqlite.triggerHandler', 'Old version did not work with AngularUI\'s ui-event, since instead of\r\nan event name it passes object `{type: \'event-name\'}`. jQuery itself\r\ntries to get `type` and then falls back to whole object (which, it\r\nseems, can be a string). So this change matches jQuery behavior.', '13', null, null, 'piranha', '2013-04-22T12:21:41Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2214', '37', '2476', 'тест', '', '0', null, null, 'tamtakoe', '2013-04-22T13:46:27Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2215', '37', '2477', 'Patch 4', '', '0', null, null, 'tamtakoe', '2013-04-22T15:04:50Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2216', '37', '2482', 'feat($parse): add support for ternary operators to parser', 'Add \'?\' token to lexer, add ternary rule to parser at\r\n(hopefully) proper precedence and associativity (based\r\non https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Operators/Operator_Precedence).\r\nSince (exp1 && exp2 || exp3) is supported by the parser,\r\nand (exp1 ? exp2 : exp3) works the same way, it seems\r\nreasonable to add this minor form of control to templates\r\n(see #719).', '14', null, null, 'zachsnow', '2013-04-23T01:02:22Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2217', '37', '2485', 'fix(location): correctly rewrite Html5 urls', 'This commit to master - https://github.com/angular/angular.js/commit/58ef32308f45141c8f7f7cc32a6156cd328ba692 - introduced a regression where deep link Html5 urls were being rewritten with the part after the appBase being removing.\r\nFor example:\r\n\r\n```\r\nhttp://localhost:8000/build/docs/api/ng.directive:input.number\r\n```\r\n\r\nwas always being rewritten to\r\n\r\n```\r\nhttp://localhost:8000/build/docs/\r\n```\r\n\r\nThis was evident when trying to run the documentation on a local machine. These commits fix that.', '7', null, null, 'petebacondarwin', '2013-04-23T10:23:41Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2218', '37', '2486', 'feat(ngInclude): $includeContentRequested event', 'Adding a $includeContentRequested event allow us to keep track of how many includes are sent and compare it with how many have finished.', '4', null, null, 'mlarcher', '2013-04-23T11:08:34Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2219', '37', '2488', 'feat($animator): support CSS3 transition-delay property detection', '$animator doesn\'t pay attention to the CSS3 Transition Delay `transition-delay` property which is good for pushing an animation to start later. This fix provides that functionality.', '4', null, null, 'matsko', '2013-04-23T17:37:21Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2220', '37', '2489', 'feat($animator): add support for CSS3 animation property detection', '', '6', null, null, 'matsko', '2013-04-23T18:15:50Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2221', '37', '249', 'Scope fixes', 'bunch of fixes for issues that I came across last week', '2', null, null, 'IgorMinar', '2011-01-24T21:33:42Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2222', '37', '2492', 'test(ngAnimate): also provide W3C transition property to work on IE10', '', '2', null, null, 'petebacondarwin', '2013-04-23T20:17:07Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2223', '37', '2493', 'feat(directive) ng-repeat-inner', 'Add a new directive ng-repeat-inner to fix #1891', '8', null, null, 'lgalfaso', '2013-04-23T22:42:15Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2224', '37', '2494', 'test(browser/compile): fix calls to Jasmine fail()', 'The Jasmine fail() calls in `browserSpec.js` and `compileSpec.js` are causing `ReferenceError: Can\'t find variable: fail`. In both cases the call to `fail()` should be `this.fail(Error())`.\r\n\r\nThis was discussed in [jasmine-node issue #81](https://github.com/mhevery/jasmine-node/issues/81)\r\n\r\nThe `browserSpec.js` case was triggered for me because PhantomJS wasn\'t dropping cookies over 4kb.\r\n', '4', null, null, 'OrenAvissar', '2013-04-24T00:11:48Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2225', '37', '2495', 'docs(di): fix typos and grammar', 'Fixes some grammar, typos, and minor formatting issues in the **Guide: Dependency Injection** documentation page.', '2', null, null, 'pattern', '2013-04-24T03:52:06Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2226', '37', '2499', 'fix($locale): Polish negative number format', 'Polish negative number format should be: \"-42\" and not \"(42)\". Repairing a mistake made in 96b13bbee17819fb28c9a4e1e22e426b1b07a554. This issue affected currency filter, making it display negative values wrong while using locales pl and pl-pl.', '2', null, null, 'A-Gochnio', '2013-04-24T15:25:52Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2227', '37', '25', 'Location flags', 'fix for feedback', '1', null, null, 'IgorMinar', '2010-09-27T23:02:57Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2228', '37', '250', 'Sitemap', '', '1', null, null, 'mhevery', '2011-01-24T21:46:32Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2229', '37', '2503', 'feat($httpBackend): add timeout support for JSONP requests', 'Documentation implies that timeout works for all requests, though it only works with XHR. Change $httpBackend to set a timeout for JSONP requests which will immediately resolve the request when fired. Completed requests will cancel the timeout.', '9', null, null, 'dbinit', '2013-04-24T18:33:47Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2230', '37', '2504', 'Slightly clearer structure for usage in templates', 'Perhaps my suggestion belongs in the general documentation for templates because the `filter_name` here is assumed to be required since we\'re explicitly talking about filters. Nevertheless, this is how I wrote it when I needed to explain it to someone and it seems clearer.', '1', null, null, 'demoive', '2013-04-24T20:22:37Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2231', '37', '2505', 'Allow duplicate objects in ngRepeat.', 'Currently, ngRepeat doesn\'t allow modification of a list that contains\r\nduplicates. For example, while ng-repeat=\'i in [1,1,1]\' is allowed, it\r\nis not possible to add a 1 to the list after it has been iterated at\r\nleast once. This patch addresses this issue.\r\nJust by observing a change from [1,1,1] to [1,1,1,1] it is not possible\r\nto know the position where the additional 1 was inserted (vice versa for\r\nremoval of 1). For the purposes of this patch, we assume that the item\r\nwas inserted after all other duplicates (or is the last duplicate to be\r\nremoved).\r\nThis patch does have a visible effect when using animations. Consider\r\nthe following list [a,b,a] and inserting a in position 0 to yield\r\n[a,a,b,a]. Since we\'re assuming that a was added, we need to apply a\r\nseries of moves to yield the desired list:\r\n* a in position 0 does not change\r\n* a moves from position 2 to position 1\r\n* b moves from position 1 to position 2\r\n* a new a is added in position 3\r\nIt is probably possible to minimize the number of moves necessary, but that\r\nwould come at some cost.\r\nThis patch assumes that no two objects that are not occupying the same\r\nmemory location will have the same $$hashKey (which is the same\r\nassumption of the previous implementation but it was not stated!)', '16', null, null, 'spamdaemon', '2013-04-25T02:49:41Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2232', '37', '2509', 'Fixes an issue with parse/eval', 'Now, when doing\n\nfoo().bar()\n\n::foo is called twice, the first time to get the context and the second one for ::bar to get the underlying object. Then the call to ::bar is called using the second instance as self\n\nThis is, in the example above, it would be just as doing\n\n```javascript\nvar instance1 = foo();\nvar instance2 = foo();\n\ninstance2.bar.apply(instance1);\n```\n\nThis patch fixes this issue\n\n', '1', null, null, 'lgalfaso', '2013-04-25T16:28:07Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2233', '37', '251', 'Published service fix', '- fix last remains of published services proliferation\r\n- add $exceptionHandler and $log mocks', '3', null, null, 'IgorMinar', '2011-01-26T04:55:44Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2234', '37', '2510', 'not rewriting duplicate params in url', 'The urls are currently rewritten if duplicate params are added. \r\n\r\nparseKeyValue and toKeyValue have been altered slightly to allow for duplicate fields that are in the url as strings. ', '4', null, null, 'joshkurz', '2013-04-25T20:40:52Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2235', '37', '2511', 'feat(ngdocs): add variable type hinting with colors', '', '6', null, null, 'matsko', '2013-04-25T21:43:12Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2236', '37', '2515', 'docs(route): fix typo in route documentation', '', '1', null, null, 'pelme', '2013-04-26T11:20:53Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2237', '37', '2517', 'Fixing a grammatical error.', '', '1', null, null, 'jamierytlewski', '2013-04-26T14:54:24Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2238', '37', '2519', 'add link to live sandbox environment on main readme.md', 'provide link to sandbox where people can play with angularjs examples preloaded in a live sandbox', '3', null, null, 'jkingyens', '2013-04-26T20:08:40Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2239', '37', '252', 'Docs', '', '2', null, null, 'mhevery', '2011-01-27T04:15:45Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2240', '37', '2520', 'docs(contribute): add Java as dependency', 'Current build process leverages closure jar for javascript minification.\r\nIf Java is not installed and included in the PATH the build will fail.', '1', null, null, 'savcha', '2013-04-26T20:32:53Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2241', '37', '2522', 'feature(urlKeyValue): not rewriting duplicate params in url', 'parseKeyValue and toKeyValue can work with duplicates:\r\n 1) parseKeyValue looks for presence of obj[key]\r\n 2) detects and replaces obj[key] with [obj[key],val]\r\n 3) then pushes more duplicates if neccessary\r\n 4) toKeyValue decodes array correctly\r\n 5)(not changed) $location.search({param: \'key\'}) still replaces if neccessary\r\n 6)(not changed) $location.search({param: [\'key\',\'key2\']}) sets the url with duplicates\r\n\r\n**BREAKING CHANGE**: the url parameter duplicates are not rewritten anymore.\r\n This will only effect deeplinks. Deeplinks in current apps that depend on\r\n rewriting the duplicates will break. The deeplinks should\r\n be changes to appear how they should look after angular strips the duplicates.', '29', null, null, 'joshkurz', '2013-04-26T21:45:25Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2242', '37', '2523', 'feat($http): add promise.cancel support', 'Implement the canceler option of `$q.defer` to allow interrupting requests.\r\n\r\nCloses #1159\r\n\r\nDepends on #2452 and #2503', '0', null, null, 'dbinit', '2013-04-26T23:09:39Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2243', '37', '2529', 'feat($http): add support for timeout promises', 'If the timeout argument is a promise, abort the request when it is resolved.\r\nImplemented by adding support to $httpBackend service and $httpBackend mock service.\r\n\r\nThis is yet another approach to the $http cancel issue (see #2452 and #2523). Obviously there is still a lack of consensus on how to handle it (see https://github.com/kriskowal/q/issues/64), so I propose this as an alternative.\r\n\r\nCloses #1159', '10', null, null, 'dbinit', '2013-04-27T18:31:46Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2244', '37', '253', 'Route notfound', 'Closes #217', '4', null, null, 'IgorMinar', '2011-01-31T00:58:43Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2245', '37', '2531', 'Transclude type multi-element, use this for ng-repeat', 'The patch adds a new transclude type multi-element to be able to handle transclusions that include more elements that the one with the directive. The transclusion type multi-element works in the following way.\r\n\r\nWhen a directive is defined of the type multi-element, then Angular looks for matching attributes named \"<directive name>-start\" and <directive name>-end\" and transcludes the entire block. If element where the directive is present does not contain the attribute \"<directive name>-start\" then the transclusion works just as the transclusion type \"element\"\r\n\r\nE.g\r\n\r\nThe directive ng-repeat is of type multi-element when compiling the template below, the compiler will look for the attribute ng-repeat-start. Given that this is present, it will look for a matching hg-repeat-end attribute. When found the entire block will be used for the linking function\r\n\r\n```html\r\n<ul>\r\n <li ng-repeat-start ng-repeat=\"item in items\">{{item.name}};</li>\r\n <li>{{item.number}};</li>\r\n <li ng-repeat-end>{{item.color}};</li>\r\n</ul>\r\n```', '40', null, null, 'lgalfaso', '2013-04-27T20:56:25Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2246', '37', '2534', 'Cloned nodes store ref to original on originalNode, inheritedData checks...', '... if element isClone and if so checks data on originalNode\r\n\r\nFor issue #2533', '10', null, null, 'colinkahn', '2013-04-28T01:39:37Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2247', '37', '2535', 'feat(ngClass): improve performance through bitwise operations', 'minimal change to improve the performance.\r\n\r\nChange modulo % 2 operations to bitwise & 1\r\n\r\nRead at Nicholas C. Zakas book \"High Performance JavaScript\"(ISBN: 978-0-596-80279-0)\r\nUse the Fast Parts --> Bitwise Operators --> Page 156++\r\n\r\nProven at http://jsperf.com/modulo-vs-bitwise/11', '3', null, null, 'robinboehm', '2013-04-28T18:10:44Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2248', '37', '2540', '[Documentation] Close beforeEach parentheses in example', 'I believe this follows http://docs.angularjs.org/misc/contribute please let me know if something\'s wrong.\r\n\r\nBest,\r\nEugene', '1', null, null, 'yegeniy', '2013-04-29T17:35:57Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2249', '37', '2541', 'docs($provide): close beforeEach parentheses in example', '', '1', null, null, 'yegeniy', '2013-04-29T17:44:11Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2250', '37', '2542', 'feat(ngdocs): support for HTML table generation from docs code', '', '1', null, null, 'matsko', '2013-04-29T19:30:43Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2251', '37', '2543', 'style($injector): add a comment to explain the distinction with isArray', 'Add a hint that isArray is used to check if Type is annotated or not and choose the correct parameter. :)\r\n\r\n@petebacondarwin', '1', null, null, 'robinboehm', '2013-04-29T22:06:04Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2252', '37', '2544', 'feat(ngdocs): More details around directive controller usage', 'Specifically how to use the injectables and avoid minification errors.', '1', null, null, 'chrisnicola', '2013-04-29T23:03:30Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2253', '37', '2545', 'feat(ngMobile): provide mobile gesture detection capabilities', 'A basis for gesture detection where multiple gesture types can be applied to an element without events clashing.\r\nMultiple gestures can also be active at the same time on different elements, allowing for complex, potentially multi-user interfaces or hilarious easter eggs.\r\n\r\nSupports the following gestures: hold, click (tap), double click (double tap), swipe (up, down, left and right)\r\n\r\nEasily extended to allow for additional gestures and custom directives.', '13', null, null, 'stakach', '2013-04-30T03:11:52Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2254', '37', '2547', 'fix(jqLite): correctly monkey-patch core jQuery methods', 'Angular\'s current way of monkey-patching jQuery core methods expects the `$.fn.html` method to always act as a setter whereas a common usage is to get elements contents via `elem.html()` and currently Angular monkey-patches it to act in the same way as `elem.html(\'\')` which breaks a lot of simple code...\r\nhttp://api.jquery.com/html/\r\n\r\nAnother issue is that the `$.fn.remove` function accepts a selector as an optional parameter and removes only the elements matching it whereas Angular thinks this method always removes everything.\r\n\r\nThis patch solves both those issues and adds unit tests for that cases. All current unit tests are passed by Chrome, Chrome Canary, Firefox & Opera and tests written by me are broken on current master.\r\n\r\nI\'d be grateful to merge it rather quickly. :)', '12', null, null, 'mzgol', '2013-04-30T09:41:57Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2255', '37', '2550', 'Fix controller as to allow dots', 'Should we also add other characters like `_`, `-`, ...?', '5', null, null, 'vojtajina', '2013-04-30T18:51:17Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2256', '37', '2551', 'Fixing typo on injector.js decorator method documentation from \'instanciated\' -> \'instantiated\'', '', '1', null, null, 'siddii', '2013-04-30T20:44:27Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2257', '37', '2553', 'fix(input): detect changes in array when its values are changed', 'When model value is an array, its values must be stored in a new array\r\nto allow a comparison between old and new values when checking\r\nif a value is out of sync with the model.\r\n\r\nCloses #1751', '10', null, null, 'gonzaloruizdevilla', '2013-04-30T22:25:27Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2258', '37', '2554', 'fix(ngRepeat): correctly iterate over array-like objects', 'Check if the object is array-like to iterate over it like it\'s done with arrays.\r\n\r\nCloses #2546', '4', null, null, 'gonzaloruizdevilla', '2013-04-30T23:20:48Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2259', '37', '2555', 'Fix 592/1699 prevent route change start', 'Hi, this is my first PR ever so please let me know if did not do things the *right way*. I signed the CLA.\r\n\r\n\r\nIt\'s my attempt at fixing: angular#1699 and angular#592\r\n\r\nThis change adds support to calling `preventDefault()` on `$route`\'s `$routeChangeStart` event in order to cancel a change of route while leaving the browser\'s Url to its new location.\r\n\r\nThis is different from calling `event.preventDefault()` on `$location`\'s `$locationChangeStart` because that reverts the browser\'s Url to its last Url.\r\n\r\nBasic usage\r\n----------------\r\n\r\n```javascript\r\n$rootScope.$on(\'$routeChangeStart\', function(event, next, current) {\r\n event.preventDefault();\r\n});\r\n```\r\n\r\nExample: Blocking a specific route change\r\n----------------\r\n\r\n**Setup routes:**\r\n\r\n```javascript\r\n$routeProvider.when(\'/Book/new\', { path: \'/Book/new\', templateUrl: \'partials/book.html\', controller: \'BookControler\'});\r\n$routeProvider.when(\'/Book/:d\', { path: \'/Book/:d\', templateUrl: \'partials/book.html\', controller: \'BookControler\'});\r\n```\r\nAs you can see, I added a `path` attribute to my routes in order to compare them when `$routeChangeStart` will be fired. You could instead give a `name` such as \"New Book\" and \"Existing Book\" to your routes and compare using names.\r\n\r\n**Cancel route:**\r\nIn a controller, cancel route change when going from /Book/new to /Book/:d:\r\n\r\n```javascript\r\n$rootScope.$on(\'$routeChangeStart\', function(event, next, current) {\r\n if (current && current.path === \"/Book/new\" && next && next.path === \"/Book/:d\"){\r\n event.preventDefault();\r\n }\r\n});\r\n```\r\n\r\n-------\r\n\r\nWhat do you think about this solution? Do you see any potential conflicts with other parts? Can you think of additional test cases I should write? \r\n\r\n', '2', null, null, 'sylvain-hamel', '2013-05-01T02:26:34Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2260', '37', '2559', 'Remove call to trim when processing attribute values for directives', 'The line modified by this pull request calls trim() on attribute values when processing a directive. This means that if your directive expects an attribute value with whitespace it will get removed by angular. For example, when using ng-list, both these instances behave in the same way:\r\n\r\n <input type=\"text\" ng-model=\"mymodel\" ng-list=\"or\">\r\n\r\n <input type=\"text\" ng-model=\"mymodel\" ng-list=\" or \">\r\n\r\nWhich means that when using the separator \" or \", an input of \"House or Door or Chair\" gets incorrectly split into the array [\"House\",\"Do\",\"\",\"Chair\"].\r\n\r\nThe change in the request removes the call to trim and includes a test that verifies the above use case works as expected. However, this is potentially a breaking change for applications that rely on whitespace being trimmed.', '3', null, null, 'alexspurling', '2013-05-01T12:33:06Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2261', '37', '256', 'Redirection interpolation', 'still need to add docs, but you can review the code', '1', null, null, 'IgorMinar', '2011-02-02T04:17:21Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2262', '37', '2560', 'feat(ngInclude): $includeContentRequested event', 'Adding a $includeContentRequested event in order to better keep track of\r\nhow many includes are sent and be able to compare it with how many have\r\nfinished.', '3', null, null, 'mlarcher', '2013-05-01T13:44:05Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2263', '37', '2561', 'fix(ngList) Fix model to view rendering when using a custom separator', 'This change adds a new ng-list-joined-by attribute to the ngList directive.\r\nThis allows you to specify a custom string to join elements of the model\r\narray together which is useful when you are also using a custom separator.\r\n\r\nExample:\r\n\r\n <input type=\"text\" ng-model=\"model.values\" ng-list=\"|\", ng-list-joined-by=\" | \">\r\n\r\nThis will split an input string such as \"Cat | Mouse | Dog\" into the array\r\n[\"Cat\", \"Mouse\", \"Dog\"] and vice versa.', '25', null, null, 'alexspurling', '2013-05-01T16:06:02Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2264', '37', '2562', 'fix(ngView): accidentally compiling leaving content', 'closes: #2304', '3', null, null, 'mhevery', '2013-05-02T00:04:32Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2265', '37', '2564', 'Update overview.ngdoc', 'Seems more understandable this way.', '2', null, null, 'jeserkin', '2013-05-02T13:02:07Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2266', '37', '2567', 'feat(ngInclude): $includeContentRequested event', 'Adding a $includeContentRequested event in order to better keep track of\r\nhow many includes are sent and be able to compare it with how many have\r\nfinished.', '3', null, null, 'mlarcher', '2013-05-02T19:14:48Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2267', '37', '2569', 'feat($swipe): Refactor swipe logic from ngSwipe to $swipe service.', 'This new service is used by the ngSwipeLeft/Right directives, and by the\r\nseparate ngCarousel and swipe-to-delete directives which are under\r\ndevelopment.', '3', null, null, 'shepheb', '2013-05-03T00:35:28Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2268', '37', '257', 'Issue option value', '', '2', null, null, 'mhevery', '2011-02-03T20:29:32Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2269', '37', '2571', 'Added hook for alternative route matching.', 'This patch enables the user to replace the route matching logic (i.e. switchMatchRouter() ) with custom logic via a callback function.\r\n\r\nIt strikes me that no routing scheme will ever keep everyone happy. A pragmatic solution to this is to allow plugable routing logic. This is a fairly straightforward way to do this.\r\n\r\nAny feedback will be appreciated. ', '7', null, null, 'richardcrichardc', '2013-05-03T03:36:07Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2270', '37', '2574', 'Extending ng-model to hidden fields', 'Hidden fields need to be able to set ng-model too. A good use case would be a hybrid solution such as MVC.net where forms are still submitted to the server (instead of pure AJAX post)', '40', null, null, 'stsvilik', '2013-05-03T11:48:34Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2271', '37', '2580', 'docs(ngAnimate): update to include ngIf as a directive that supports animation', 'Included `ngIf` in the list of built in directives that support animation. Also fixed a few typos.', '1', null, null, 'OrenAvissar', '2013-05-04T03:26:32Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2272', '37', '2582', 'Update dev_guide.mvc.understanding_model.ngdoc', 'docs(guide): type fix on model name\r\n\r\nOne type fixed:\r\n- foos to foo', '1', null, null, 'alnutile', '2013-05-04T09:43:27Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2273', '37', '2584', 'fix(i18n): Do not transform arrays into objects', 'Do not trasnform arrays into objects when generating the locale objects\r\nAdd unit test for this check\r\n\r\nThis was split from #2458 as this part of the patch should be handled as a different PR', '4', null, null, 'lgalfaso', '2013-05-05T00:48:48Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2274', '37', '2587', 'docs(Angular.js) Set forEach docs right before function definition', '', '1', null, null, 'alexpods', '2013-05-06T07:43:48Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2275', '37', '2588', 'feat(scenario): adds mousedown and mouseup event triggers to scenario', 'Added mousedown and mouseup event triggers to scenadio dsl \'element\' expression.\r\nAdded mousedown and mouseup to the custom jquery trigger method to generate real events.\r\n\r\nFixes issue #2585', '7', null, null, 'andimarek', '2013-05-06T08:23:26Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2276', '37', '2590', 'do not insert the undefined item if the attribute size greater than one', 'No need to add a empty option in the select if it has the attribute of size, and it is greater than 1.', '5', null, null, 'web36m', '2013-05-06T13:07:36Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2277', '37', '2593', 'fix($compile) empty href should pass sanitation check', 'The htmlAnchorDirective sets an empty href attribute on <a> tags.\r\nThis should pass sanitation check in $compile.\r\n\r\nCloses #2219', '9', null, null, 'andershessellund', '2013-05-06T20:40:57Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2278', '37', '2595', 'doc(ng.directive:input): fix small typo in code example', 'Noticed a small typo in the code example, and it\'s also mentioned in a Disqus comment on the same page: http://docs.angularjs.org/api/ng.directive:input', '1', null, null, 'hamstu', '2013-05-07T00:57:41Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2279', '37', '2596', 'feat(jqLite): switch bind/unbind to more recent jQuery on/off', 'jQuery switched to a completely new event binding implementation as of\r\n1.7.0, centering around on/off methods instead of previous bind/unbind.\r\nThis patch makes jqLite match this implementation while still supporting\r\nprevious bind/unbind methods.', '16', null, null, 'mzgol', '2013-05-07T11:47:45Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2280', '37', '2597', 'fix(ngPluralize): Handle the empty string as a valid override', 'Fix the check for overrides so it is able to handle the empty string\r\n\r\nCloses #2575', '2', null, null, 'lgalfaso', '2013-05-07T12:17:55Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2281', '37', '2598', 'chore(ngAnimate): Remove -setup suffix and rename -start class suffix to -active', '', '0', null, null, 'matsko', '2013-05-07T14:12:18Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2282', '37', '2599', 'feat(ngAnimate): Add support for CSS3 Animations with working delays and multiple durations', '', '3', null, null, 'matsko', '2013-05-07T14:21:09Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2283', '37', '2600', 'feat(ngAnimate): Add support for CSS3 Animations with working delays and multiple durations', '', '0', null, null, 'matsko', '2013-05-07T14:34:24Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2284', '37', '2601', 'feat(directive): ng:srcset', 'New directive to support `{{}}` expressions on the new HTML5 `srcset` attribute.', '7', null, null, 'samaxes', '2013-05-07T16:54:26Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2285', '37', '2603', 'chore(ngIf): Add animation code to ngIf example and docs text to ngAnimate docs', '', '0', null, null, 'matsko', '2013-05-07T19:21:27Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2286', '37', '2605', 'feat(ngAnimate): CSS Animations, Multi duration/delay detection and CSS suffix renaming', '', '0', null, null, 'matsko', '2013-05-07T21:21:54Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2287', '37', '2606', 'feat(ngMobile): add ngSensor services to detect e.g. shake events', 'Add services for sensor events used by mobile devices.\r\n\r\nListener-Services for following services are created: \r\n* Orientation\r\n* Motion\r\n* Humidity\r\n* Light\r\n* Noise\r\n* Pressure\r\n* Proximity\r\n* Temperature\r\n\r\nBased on https://dvcs.w3.org/hg/dap/raw-file/tip/sensor-api/Overview.html#datatypes\r\n\r\nImplement shake-direktive as example...\r\n\r\n```html\r\n<div ng-init=\"shake=0\" ng-shake=\"shake=shake+1\">\r\n <h1 ng-bind=\"shake\">Test</h1>\r\n</div>\r\n```\r\nCould be used like ngClick and other EventDirectives.\r\n\r\nCould be used for e.g.\r\n* new random 9gag image\r\n* change radio station\r\n* ...\r\n\r\nThis is just a first proposal, there are still many open tasks:\r\n* tests\r\n* multiple device tests\r\n* doc\r\n\r\nBut first I want to discuss this feature.\r\nIve test it with an iOS6 Device and worked fine.\r\n\r\nfeedback & support are welcome :)', '17', null, null, 'robinboehm', '2013-05-08T01:10:27Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2288', '37', '2607', '$resource with promises', 'This is just finishing https://github.com/angular/angular.js/pull/2060.\r\n\r\nMy changes, that will get squashed into the first commit:\r\n\r\n- change `.$resolved` to be boolean (true/false), rather than undefined/true\r\n- keep the original promise (do not update `.$promise` after subsequent instance calls)\r\n- success callbacks gets response (with value as `.resource`), instead of direct value (this is just reverting to the original behavior of $resource)\r\n- docs: reflect these changes\r\n- some style/formatting (reverting trailing white spaces, etc.)\r\n\r\n**Passsing whole response into the promise:**\r\nI did this, because I think it is very helpful to have access to the http response. More than that, people might be already relying on it.\r\nThe reason for passing just the value (resource instance) was to simplify $route resolve, but I think it\'s not that worse (unless I\'m missing something):\r\n\r\n````javascript\r\n// passing whole response\r\nMyController.resolve = function(MyResource) {\r\n return MyResource.get(...).promise.then(function(response) {\r\n return response.resource;\r\n });\r\n};\r\n\r\n// passing direct resource instace\r\nMyController.resolve = function(MyResource) {\r\n return MyResource.get(...).promise;\r\n};\r\n````\r\n\r\nBefore merging:\r\n\r\n- [ ] squash\r\n- [ ] add BREAKING CHANGE message', '16', null, null, 'vojtajina', '2013-05-08T03:26:47Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2289', '37', '261', 'Small fixes', '* added two missing semi-colons\r\n* mock $log: fixed bug and added some tests\r\n\r\nAfter that, I realised that MockBrowser uses slightly different structure - instead of factory function it defines classic constructor function which is called with new...\r\nLet me know, if you prefer this way, I can rewrite MockLogFactory using the same approach to keep it consistent...', '1', null, null, 'vojtajina', '2011-02-04T01:54:19Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2290', '37', '2611', 'fix(docs:dom.js): fix bag with non-latin heading', 'When heading is translated with non-latin characters, this is broken design of api pages, because all classes become \"-----\"', '6', null, null, 'tamtakoe', '2013-05-09T09:55:10Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2291', '37', '2612', 'Some minor clean up', 'Remove redudant var', '4', null, null, 'shikolay', '2013-05-09T10:44:08Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2292', '37', '2617', 'fix(compile): Collecting directives from tags that will be replaced', 'Fix the collecting of element directives from tags that will get replaced\r\nby another directive on an attribute. If the element has an attribute\r\nor class directive that will replace the entire element, then do not\r\ncollect the element directive on the tag\r\n\r\nCloses #2573\r\n\r\nBREAKING CHANGE:\r\n* Will break directives that made the assumption that any element directive\r\non the replaced tag would get collected\r\n* Will break element directives that expect to be collected twice when they\r\nwere replaced by another directive', '5', null, null, 'lgalfaso', '2013-05-09T14:49:05Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2293', '37', '262', 'Nestable ngview', 'made ng:view nestable in ng:include and fixed 2 other issues along the way.', '3', null, null, 'IgorMinar', '2011-02-04T21:36:08Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2294', '37', '2620', 'fix(ngAnimate): finish previous incomplete animations when new animations take place', '', '1', null, null, 'matsko', '2013-05-09T16:23:51Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2295', '37', '2623', 'feat(ngdocs): external links to github, plunkr and jsfiddle available for code examples', '', '8', null, null, 'matsko', '2013-05-09T20:34:31Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2296', '37', '2625', 'feat(ngdocs): Add FullText search to replace Google search in docs', '', '3', null, null, 'matsko', '2013-05-10T03:02:57Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2297', '37', '2629', 'Fix a typo in scope.ngdoc', '', '1', null, null, 'veselinn', '2013-05-10T11:44:25Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2298', '37', '2631', 'Clarify documentation for $broadcast', '', '1', null, null, 'willtj', '2013-05-10T20:02:45Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2299', '37', '2636', 'fix($browser): should use first value for a cookie.', 'With this change, $browser.cookies()[\"foo\"] will behave like\r\ndocCookies.getItem(\"foo\") where docCookies is defined at\r\nhttps://developer.mozilla.org/en-US/docs/DOM/document.cookie\r\n\r\nRef: https://github.com/angular/angular.js/issues/2635\r\n\r\nThis fixes the issue where, if there\'s a value for the XSRF-TOKEN cookie\r\nvalue with the path /, then that value is used for all applications in\r\nthe domain even if they set path specific values for XSRF-TOKEN.', '1', null, null, 'chirayuk', '2013-05-11T04:24:26Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2300', '37', '2638', 'feat(ngDocs): add links to source for API', 'Added links to source for the docs API section', '30', null, null, 'revolunet', '2013-05-11T11:05:40Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2301', '37', '2639', 'Delay $anchorScroll() to handle `autoscroll` for nested ng-includes. ', 'This resolves an issue where the contents of an `ng-include` also contain an ng-include with autoscroll, like this `<div ng-repeat=\"..\" ng-include=\"..\" autoscroll=\"\">`. \r\n\r\nIn issue #2637 the element to scroll to by using `#some-anchor-name` in the url, e.g. `<a name=\"some-anchor-name\"></a>`, is not present in the dom by the time `$anchorScroll()` is called from the ngIncludeDirective.', '11', null, null, 'torgeir', '2013-05-11T14:14:36Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2302', '37', '264', 'Getting Started page - Take 1', 'This first pull request from the XS tech writers is mostly about the following:\r\n\r\n* FIguring out github\r\n* Learning to use Markdown\r\n* The initial test case for improving the docs, including:\r\n * A little reorganizing\r\n * A little editing\r\n * A little formatting\r\n\r\nWait, hang on, Robin van Persie just scored *again* for Arsenal. I have to check on my fantasy English Premier League standings.\r\n\r\nLater,\r\n\r\n-kc\r\n', '2', null, null, 'krculp', '2011-02-05T17:58:05Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2303', '37', '2642', 'Small fixes in docs for animation directives', '', '1', null, null, 'matsko', '2013-05-11T17:58:42Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2304', '37', '2643', 'Give PATCH requests the same default headers as PUT and POST', 'Is there any reason why PATCH requests shouldn\'t be sent with a content-type of application/json as well as PUT and POST?\r\n\r\nIt caused me some problems I wasn\'t expecting when working with a rails 4 application (PATCH is the new preferred verb for update operations).', '5', null, null, 'danielstockton', '2013-05-11T21:33:19Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2305', '37', '2646', 'fix(rootScope): mitigate chrome gc leak, closes #2624 (to the extent tha...', '...t it can be without a patch to v8)', '12', null, null, 'ashaffer', '2013-05-13T21:11:39Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2306', '37', '2647', 'feat($animator): provide support for custom animation events', '', '1', null, null, 'matsko', '2013-05-13T21:42:51Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2307', '37', '2648', 'chore($sniffer): replace remaining supportsTransitions/supportsAnimations flags inside tests', '', '1', null, null, 'matsko', '2013-05-13T22:15:36Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2308', '37', '265', 'Last missing reference docs', '', '2', null, null, 'IgorMinar', '2011-02-07T06:48:26Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2309', '37', '2650', 'feat(ngdocs): provide support for inline popover, foldouts and foldover annotations', '', '2', null, null, 'matsko', '2013-05-14T02:47:22Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2310', '37', '2651', 'feat(ngRepeat): Add \"watch with\" option to track added, moved, and remov...', 'Added a `watch with` option to `ngRepeat`. This makes it easier to perform operations, such as animation, on the entire set of elements instead of watching them individually. The watcher function is called at the end of ngRepeat and is passed an array of all the added, moved, and removed elements each time the bound data is modified.\r\n\r\nThe tag usage is:\r\n\r\n```html\r\n<ul>\r\n <li ng-repeat=\"thing in awesomeThings watch with myRepeatWatcher\">\r\n {{thing}}\r\n </li>\r\n</ul>\r\n```\r\n\r\nThis would correspond to a method defined in the scope:\r\n\r\n```javascript\r\n$scope.myRepeatWatcher = function (addedElements, movedElements, removedElements, done) {\r\n\r\n // Do stuff\r\n\r\n done();\r\n}\r\n\r\n```\r\n\r\nI created a demo to show some of the ways this can be used.\r\n\r\n[View Demo on Plnkr](http://plnkr.co/5vKvpqgK6GVPhlsjKHl1)\r\n\r\nAny advise and feedback is welcome!\r\n\r\nI\'m still not sure if it\'s better to pass the added, moved and removed arrays as separate parameters or if a single object with properties should be passed in. I think separate parameters is simple and clear but an object would allow additional information to be passed back in the future without changing the interface.\r\n\r\nI still need to add docs and tests.\r\n', '20', null, null, 'OrenAvissar', '2013-05-14T04:54:03Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2311', '37', '2652', 'Respect PORT from URL without escaping', 'Allows to write a URL normally.\r\n\r\nEscaping the port does not comply with the [URL syntax](http://en.wikipedia.org/wiki/Uniform_resource_locator#Syntax)\r\n\r\nRegular Expression and it\'s position in the if clause are meant to short-circuit ASAP.', '13', null, null, 'ostera', '2013-05-14T06:01:46Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2312', '37', '2654', 'feat($http): accept function as headers value', '', '2', null, null, 'bolasblack', '2013-05-14T09:22:44Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2313', '37', '2657', 'fix(ngValue): made ngValue to write value attribute to element', 'Previously ngValue did not write value attribute to element. This made it impossible to use ngValue for input with type submit.', '4', null, null, 'kirstein', '2013-05-14T17:33:53Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2314', '37', '266', 'Compiler refactor', 'this still does not have your compile multiple roots, but it is prerequisite ', '1', null, null, 'mhevery', '2011-02-08T19:30:10Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2315', '37', '2660', 'Minor $timeout doc cleanup', 'Minor cleanups on $timeout documentation\r\n\r\n* Added a comma separator in the statement\r\nThe return value of registering a timeout function is a promise`,` which will be resolved when the timeout is reached and the timeout function is executed.\r\n\r\n* Removed the word `the` from the statement \r\nTo cancel a the timeout request, call $timeout.cancel(promise).\r\n\r\n* Used `whose` instead of `who\'s` in the following statement\r\nfn {function()} A function, who\'s execution should be delayed.\r\n\r\n* Italicized `false` in the statement\r\ninvokeApply(optional=true) {boolean=} If set to false skips model dirty checking, otherwise will invoke fn within the $apply block.\r\n\r\n* Used a comma separator in the statement\r\nCancels a task associated with the promise. As a result of this`,` the promise will be resolved with a rejection.\r\n\r\n\r\n', '1', null, null, 'siddii', '2013-05-14T18:43:46Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2316', '37', '2665', 'feat($http): add xhr statusText to completeRequest callback', 'Makes xhr status text accessible is $http success/error callback.\r\nSee www.w3.org/TR/XMLHttpRequest/#dom-xmlhttprequest-statustext\r\n\r\nCloses #2335', '21', null, null, 'jimlyndon', '2013-05-15T13:58:53Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2317', '37', '2667', 'Update dev_guide.mvc.understanding_controller.ngdoc', 'Removed outdated info related to this API change\r\nhttps://github.com/angular/angular.js/blob/master/src/ng/rootScope.js#L166', '1', null, null, 'jamesBrennan', '2013-05-15T18:11:38Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2318', '37', '2670', 'recursive directive templates', 'Here\'s a pull request to introduce a new directive, ngRecursive.\r\n\r\nI spoke with @jbdeboer and @mhevery at last night\'s meetup at Google SF about it and chatting with several others validated the usefulness of such a thing. I\'ve been using something similar in my project for about six months.\r\n\r\nAt this point it is still very early. I have not written tests yet because I would like feedback on the approach. mhevery suggested that perhaps there\'s a root problem that should be fixed instead: templates might notice recursive inclusions and \"do the right thing\". On the other hand, the approach here doesn\'t dictate that a recursive bit of template be in its own file, so perhaps that\'s nice.\r\n\r\nHere\'s an example: http://plnkr.co/edit/WdnOMZ7IwbeBCFcfu7Fh\r\n\r\nThis is incredibly convenient for creating tree views of all kinds and similar recursive page structures.\r\n\r\nOne issue right now is that intervening directives cause the transclusion to break. For instance, if an ng-class is added to the ordered list element in the example above then everything breaks. I can dive into compile.js and figure out if there\'s a good way to address this, but again, I wanted some early feedback before I went too deep.', '13', null, null, 'tilgovi', '2013-05-15T23:50:06Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2319', '37', '2671', 'test($animator): ensure invalid $sniffer.transitions and $sniffer.animations flags are caught in animation spec code', '', '1', null, null, 'matsko', '2013-05-16T03:11:23Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2320', '37', '2672', 'test(ngdocs): provide test code for syntax links in docs', '', '8', null, null, 'matsko', '2013-05-16T03:43:45Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2321', '37', '2673', 'docs(ngCsp): Added more informative details', 'Transferred from https://github.com/angular/angular.js/wiki/Using-AngularJS-in-a-Chrome-Extension-environment\r\n\r\nI don\'t know the proper way to format the HTML example though', '1', null, null, 'ProLoser', '2013-05-16T06:18:17Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2322', '37', '2677', 'Add link to angular-seed in testing docs', 'The testing docs are insufficient to actually test code. The examples provided in angular-seed are great, however, and should be referenced in the docs.', '2', null, null, 'iffy', '2013-05-16T15:18:15Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2323', '37', '2680', 'chore(ngdocs): move angular-bootstrap.js to be generated only inside the docs and remove from the build process', '', '4', null, null, 'matsko', '2013-05-16T19:29:05Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2324', '37', '2681', 'Extend function fix', 'Extend function of Angular blindly overwrites destination values even if source value is undefined. This fix allows \"default\" values to remain intact if new value is undefined.', '7', null, null, 'stsvilik', '2013-05-16T21:02:25Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2325', '37', '2687', 'Update dev_guide.services.$location.ngdoc', 'Updating the last example for watching the $location.path(), has to be wrapped in a function since if you pass a string to $scope.$watch it is evaluated against the $scope, which $location is not attached to and won\'t correctly $watch.', '1', null, null, 'gnomeontherun', '2013-05-17T14:58:24Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2326', '37', '2691', 'docs(tutorial): Updated Karma config file name', '* Removed Testacular reference', '1', null, null, 'andrewvida', '2013-05-17T19:56:30Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2327', '37', '2692', 'docs(guide): added API documentation for ngScenario matchers', 'Matchers are briefly mentioned in the e2e test guide, but there is no\r\ndocumentation for the available matchers.', '3', null, null, 'bripkens', '2013-05-17T21:18:35Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2328', '37', '2695', 'chore(angular.module): improve the \'No module\' error message', 'Whether or not the \'requires\' parameter of \'angular.module\' is optional\r\ndepends on the state of the application. The thrown error message is\r\nnot very descriptive and can be improved. For instance, the error\r\ncould contain a hint that the parameter is required for initial\r\nmodule creation.\r\n\r\nThe improvement is based on comments under the angular.module documentation.', '5', null, null, 'bripkens', '2013-05-18T07:00:03Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2329', '37', '2697', 'Fixed $setViewValue documentation', 'parsers are called, not formatters (see line 1037)', '1', null, null, 'joakimbl', '2013-05-18T13:48:17Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2330', '37', '2698', 'Update angular-mocks.js', 'Updated the `$log.*` descriptions to clean up the ngMock `$log` information. Currently each `$log.[error|warn|log...]` has the same description and is confusing in the docs.', '2', null, null, 'tebriel', '2013-05-18T15:23:40Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2331', '37', '2699', 'Switched package.json Dependencies to be devDependencies', 'None of the dependencies are necessary for using the library, so they should all be devDependencies.\r\n\r\nThis allows the Angular library to be fetched with npm (e.g., `npm install --save https://github.com/angular/angular.js.git#v1.0.x`).\r\n\r\nYou can also apply this patch to HEAD, and just fix the version number, or I can submit a new pull request.', '5', null, null, 'dankohn', '2013-05-18T15:48:02Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2332', '37', '270', 'Doc fix', '', '1', null, null, 'mhevery', '2011-02-10T04:13:01Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2333', '37', '2701', 'feat($location): add queryString method', 'Added new queyString method to locationProvider to allow for custom query string parsers. The method expects an object with a stringify function for encoding and a parse function for decoding.\r\n\r\nFor example you could use node-querystring:\r\n```javascript\r\nvar qs = require(\'qs\');\r\n$locationProvider.queryString(qs);\r\n```\r\nor JSON:\r\n```javascript\r\n$locationProvider.queryString(JSON);\r\n```', '21', null, null, 'joshrtay', '2013-05-18T19:06:44Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2334', '37', '2704', 'Send the X-XSRF-TOKEN header as string', 'See: http://stackoverflow.com/q/16610363/247243', '1', null, null, 'moroshko', '2013-05-19T11:09:36Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2335', '37', '2705', 'Update compiler.ngdoc', '\"The compilation process happens into two phases.\" should be \"The compilation process happens in two phases.\"', '1', null, null, 'david-geo-holmes', '2013-05-19T17:51:03Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2336', '37', '2707', 'Remove char', '', '1', null, null, 'moroshko', '2013-05-19T23:24:05Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2337', '37', '2710', 'docs(filters): minor typographical error', 'fix a typographical error \"it\'s\" -> \"its\" in the dateFilter\r\ndocumentation', '1', null, null, 'jogloran', '2013-05-20T12:40:47Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2338', '37', '2712', 'Doc: Remove empty \"Type\" page in guide', 'This fixes #1316.', '1', null, null, 'JensRantil', '2013-05-20T16:52:55Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2339', '37', '2713', 'Doc: Compile function returns post-link function', 'Judging from source code[1], if a compile function (within a directive)\r\nreturns a function, it is a post-link function.\r\n\r\n[1] https://github.com/angular/angular.js/blob/master/src/ng/compile.js#L709', '2', null, null, 'JensRantil', '2013-05-20T16:53:09Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2340', '37', '2714', 'Documentation of directive priorities', 'This fixes issue #2644.', '7', null, null, 'JensRantil', '2013-05-20T17:10:55Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2341', '37', '2715', 'fix(angular.equals): regular expressions are never considered equal', 'Regular expression objects are never considered to be equal when using\r\n\'angular.equals\'. Dirty checking therefore fails to recognize a\r\nproperty modification.\r\n\r\nCloses #2685', '5', null, null, 'bripkens', '2013-05-20T17:12:28Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2342', '37', '2716', 'docs(ngScenario): provide examples for element(...).query(fn)', 'element(selector, label).query(fn) is a very useful function, yet barely\r\nexplained. The developer guide should show how this function can be used\r\nto conditionally execute behavior and assertions.', '1', null, null, 'bripkens', '2013-05-20T18:39:54Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2343', '37', '2718', 'fix(ngdocs): fix gen_docs.sh', '', '1', null, null, 'matsko', '2013-05-20T21:02:47Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2344', '37', '2719', 'fix(tutorial): fix the float issue with the improve docs button', 'Fix this:\r\nhttps://s3.amazonaws.com/angularjs-dev/pr-images/float-1.png\r\n\r\nTo this:\r\nhttps://s3.amazonaws.com/angularjs-dev/pr-images/float-2.png', '2', null, null, 'matsko', '2013-05-20T21:19:48Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2345', '37', '2721', 'Update overview.ngdoc', 'I took a stab at cleaning up the punctuation and grammar as well as whittling down bits that didnt add any clarity to the document. I can go further if this is helpful.', '3', null, null, 'adamshaylor', '2013-05-20T22:20:10Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2346', '37', '2722', 'feat(ngdocs): provide support for inline variable hinting', 'https://s3.amazonaws.com/angularjs-dev/pr-images/type-hinting.png', '6', null, null, 'matsko', '2013-05-21T01:08:18Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2347', '37', '2723', 'chore(ngdocs): replace local lunr.js with the lunr npm module', '', '2', null, null, 'matsko', '2013-05-21T01:13:06Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2348', '37', '2725', 'feat($http) Add support for custom event hooks (progress, etc)', 'In response to https://github.com/angular/angular.js/issues/1934\r\nThis is far from complete, I just wanted to open a preliminary implementation so we can discuss implementation details.\r\nI\'m neither an expert at Angular, nor in the HTTP protocol itself.\r\n\r\nThe current implementation of `$http` doesn\'t allow us to attach event handlers for anything except success and failure. There are a large number of well supported (and maybe non standard) events for XHR that are very useful, the most popular being the progress events.\r\n\r\nThis PR implements the feature by extending the `config` object passed to `$http` to add a `hooks` keyword, which maps events to event handler.\r\nExample:\r\n```javascript\r\nvar configObject = {\r\n method: \'GET\',\r\n url: \'/specs.html\',\r\n cache: $templateCache,\r\n hooks: {\r\n progress: function(data) {\r\n return $scope.progress = data;\r\n }\r\n }\r\n};\r\n$http(configObject).success(successHandler);\r\n```\r\n\r\nTo add event handlers for upload events, nest the key mapping under a `upload` key:\r\n```javascript\r\nhooks: {\r\n upload: {\r\n progress: uploadProgressHandler;\r\n }\r\n}\r\n```\r\n\r\nPlease suggest/discuss improvements to the syntax and/or implementation errors.\r\nI believe the code in the PR currently works, but I haven\'t thoroughly tested it.', '8', null, null, 'prajwalkman', '2013-05-21T07:33:02Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2349', '37', '2728', 'docs(angular.extend): Added missing @returns', '', '1', null, null, 'joakimbl', '2013-05-21T17:33:31Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2350', '37', '2729', 'feat(angular.isRegExp): check object type for regular expressions', 'In order to fix #2685, we need to differentiate between regular\r\nexpression objects and other types. Angular could expose a public\r\nfunction \'angular.isRegExp\' through which this could be done.\r\n\r\nThis serves as a preparation for a follow-up pull request for a change to `angular.equals` (which will fix #2685).', '6', null, null, 'bripkens', '2013-05-21T17:44:33Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2351', '37', '273', 'Resource encoding fix', 'fix for feedback', '0', null, null, 'IgorMinar', '2011-02-11T02:29:24Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2352', '37', '2731', 'fix(noConflict): replaced direct reference to $window.angular', 'Simple change. Tests passed before and after. I didn\'t add a test since the proper way to test this is probably to run the entire test suite with `noConflict` to catch any reference bugs like this and that would be a much larger pull request.', '5', null, null, 'mbrevoort', '2013-05-21T20:43:20Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2353', '37', '2734', 'Formats snippets of code in Dev guide > Understanding controller.', 'Formats snippets of code in Dev guide > Understanding controller.', '2', null, null, 'thewarpaint', '2013-05-21T21:41:59Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2354', '37', '2735', 'Updating ng-submit doc', 'I think it is worth explicitly mentioning that the \"action\" attribute must not be present on a form in order for the default action prevention to work.', '3', null, null, 'dkvasnicka', '2013-05-21T21:52:22Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2355', '37', '2736', 'style (guide) add in missing semicolons', 'Add semicolons where they were missing in the docs section per Google\r\ncode styling guide.', '1', null, null, 'eddiemonge', '2013-05-21T21:57:35Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2356', '37', '2737', 'docs (index) there should be no autofocus when docs are read', 'The search box should not receive autofocus when browsing the docs as the primary purpose of the docs it to convey information, not search.', '13', null, null, 'eddiemonge', '2013-05-21T22:13:43Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2357', '37', '2738', 'fix(compile): directive controller order fix', 'When there are two nested directives that the parent directive defines a controller, has `transclude: true`, has a templateUrl, the template has on the top level element the directive `ng-transclude` then the directive `ng-transclude` is applied before the parent directive. Now, if there is a nested child directive that also defines a controller and this controller needs to reference the parent controller, then given that `ng-transclude` was applied before the parent directive controller, the child directive is not able to reference the parent directive controller.\r\n\r\nThis patch changes this so the directives on the top level element of the template are applied after the directives on the original node', '7', null, null, 'lgalfaso', '2013-05-21T22:52:49Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2358', '37', '2739', 'docs(guide): format snippets of code in plain text', 'Format some code snippets that were plain text before.', '1', null, null, 'thewarpaint', '2013-05-21T23:48:14Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2359', '37', '2740', 'feat(ngdocs): provide support for user to jump between different versions of the angularjs documentation', 'Screenshots:\r\nhttps://s3.amazonaws.com/angularjs-dev/pr-images/versions-1.png\r\nhttps://s3.amazonaws.com/angularjs-dev/pr-images/versions-2.png', '2', null, null, 'matsko', '2013-05-22T01:29:54Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2360', '37', '2741', 'Update input.js', 'Providing explanation of how ngModel will add the property to the scope if it doesn\'t already exist.', '1', null, null, 'mrlucmorin', '2013-05-22T04:37:13Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2361', '37', '2742', 'feat ($compile) optimize bi-directional bind', 'Uses property getter and setter to eliminate the $watch in bi-directional bind.\r\n\r\nThe getter setter approach has two advantages:\r\n* scopes are always in sync\r\n* reduces number of $watches\r\n\r\nCan\'t think of any disadvantages.', '4', null, null, 'joshrtay', '2013-05-22T07:19:43Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2362', '37', '2745', 'Fixing index page documentation\'s Develop drop down menu links', 'In the local build documentation page, Develop drop down menu links (Tutorial, Developer Guide & API reference) was pointing to the production url (docs.angularjs.org). \r\nThis fixes the hardcoded links & pointing to the appropriate urls in the localhost build doc. \r\n\r\nHopefully, it works fine in the production url as well. If not, we might need to do some location.hostname prefixing using javascript.', '1', null, null, 'siddii', '2013-05-22T14:40:13Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2363', '37', '2746', 'test(commit-msg-format): Script for Travis CI', 'This pull request introduces a Travis CI test that makes sure that commit messages are formatted according to [the commit guidelines](https://docs.google.com/document/d/1QrDFcIiPjSLDn3EL15IJygNPiHORgU1_OOAqWjiDU5Y). The idea came from [this comment](https://github.com/angular/angular.js/pull/2713#issuecomment-18205283). If Travis CI immediately could have told me I broke the build, that would have been nice I thought. I also noticed that there are a fair amount of pending pull requests. Sampling them, they hold a bunch of commits that do not adhere to the commit message guidelines.\r\n\r\nThe script first extracts a range of commits based on heuristics mostly from Travis CI-exposed environment variables. If a pull request, it checks all commits in the PR, otherwise it simply checks the HEAD commit of the checked branch. This means that commits can be missed if Travis CI batches up multiple commits. Initially I checked the last 20 commits, but immediately discovered that there were some commits that did not adhere to the commit message guidelines.\r\n\r\nI have (obviously) tested this locally, but also through Travis CI [here](https://travis-ci.org/JensRantil/angular.js).\r\n\r\nA couple of questions:\r\n * Is this something that you are interested in?\r\n * The script is in Bash/AWK. I\'ve noticed `changelog.js` is in JavaScript. Are most scripts expected to be written in JavaScript?', '6', null, null, 'JensRantil', '2013-05-22T14:53:26Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2364', '37', '2748', 'Improved developer guide unit testing documentation on directives', '* Updated the directives unit testing documentation sample code with expression \r\n\r\n* Removed documentation block with nothing on it', '1', null, null, 'siddii', '2013-05-22T18:49:32Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2365', '37', '2749', 'feat(ngToggle): add directive to show and hide two DOM elements', 'This directive provide a complement for ng-show and ng-hide directives\r\nand change the visibility of two DOM elements depending on an expression.\r\nngToggle is a frequently used operation and can be implemented like the\r\nfollowing example:\r\n\r\nExample:\r\n\r\n <ng:toggle on=\"exp\">\r\n <div id=\"A\"></div>\r\n <div id=\"B\"></div>\r\n </ng:toggle>\r\n\r\nIf exp is evaluated to true then only #A is set to visible, otherwise\r\nonly #B is set to visible.\r\n\r\nCloses [#228](https://github.com/angular/angular.js/issues/228)', '3', null, null, 'mjeanroy', '2013-05-22T20:31:10Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2366', '37', '275', 'Docs spelling grammar fixes', 'A collection of small changes to the spelling and grammar for various bits of documentation.', '1', null, null, 'arantius', '2011-02-14T18:19:28Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2367', '37', '2757', 'docs(input): add missing ngChange directive for email type', 'All other input types already have it.', '1', null, null, 'dbinit', '2013-05-23T04:30:14Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2368', '37', '2758', 'docs($animator): Rectify animator.animate documentation', '', '2', null, null, 'gsklee', '2013-05-23T06:08:26Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2369', '37', '2759', 'docs(validate-commit-msg): fix incorrect comment', 'If you `cd` into the repo, `validate-commit-msg.js` will be in the root\r\nof it.', '1', null, null, 'JensRantil', '2013-05-23T07:45:19Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2370', '37', '2760', 'Fixes some small grammatical issues', '', '2', null, null, 'alexyoung', '2013-05-23T11:11:21Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2371', '37', '2765', 'Exposed $event for use with ng-submit', 'Added support for accessing $event with ng-submit.\r\n\r\nExample:\r\n\r\n <div ng-controller=\"submitCtrl\">\r\n <form ng-submit=\"submitCallback($event)\">\r\n <input type=\"submit\">\r\n </form>\r\n </div>\r\n\r\n function submitCtrl($scope) {\r\n $scope.submitCallback = function(e) {\r\n console.log(e);\r\n };\r\n }', '8', null, null, 'wesleycho', '2013-05-23T15:19:31Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2372', '37', '2769', 'Update overview.ngdoc based on feedback from @petebacondarwin', 'My original revision can be seen in 7eb8ac811aaa394c553bd66f424d3224a460c27a', '1', null, null, 'adamshaylor', '2013-05-23T17:34:06Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2373', '37', '277', 'Service splitup', '', '0', null, null, 'IgorMinar', '2011-02-15T16:03:06Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2374', '37', '2770', 'Request interceptor headers', 'Currently it is possible to add a request interceptor and modify the config object for a http request before it is sent. I am able to add custom headers to the config object within an interceptor however these headers get ignored when the http request is constructed. I was able to fix this in my own fork by modifying the following line in the \"serverRequest\" function \r\nfrom:\r\n```\r\nvar reqData = transformData(config.data, headersGetter(headers), config.transformRequest);\r\n```\r\nto:\r\n```\r\nvar reqData = transformData(config.data, headersGetter(extend(headers,config.headers)), config.transformRequest);\r\n```', '5', null, null, 'jasadams', '2013-05-23T18:40:08Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2375', '37', '2771', 'Fixed some minor language errors.', '', '1', null, null, 'manuelkiessling', '2013-05-23T20:48:51Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2376', '37', '2772', 'fix(directive): Scope fields with \'=\' should check for object equality', 'Scope fields that are set to \'=\' should be checked with object equality and not with reference. Otherwise, if you\'re setting to that field an\r\n element with a filter and that filter always creates a new object based on input information, it\'ll throw $digest being called more than 10\r\ntimes error\r\n\r\nFixes #2750', '2', null, null, 'mgonto', '2013-05-23T20:58:59Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2377', '37', '2773', 'fix(ngMobile): touch event handling fix for when jQuery is present. ', 'originalEvent was not being handled properly.', '6', null, null, 'NathanWalker', '2013-05-23T22:12:17Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2378', '37', '2775', 'docs(header): replace logo.png with logo.svg', 'The current logo looks terrible on retina displays. SVG is a widely\r\nsupported format that looks great on all displays, present and future.\r\nFile size is still 3K.\r\n\r\nFixes #2752.', '1', null, null, 'appsforartists', '2013-05-24T05:51:30Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2379', '37', '2778', 'feat($resource): support an unescaped url', 'Added new regex to test the url parameters with:\r\n- if the parameter consists only of numbers, then it\'s a port\r\n\r\nAllows to write a URL normally.\r\n\r\nEscaping the port does not comply with the [URL syntax](http://en.wikipedia.org/wiki/Uniform_resource_locator#Syntax)\r\n\r\nRegular Expression and it\'s position in the if clause are meant to short-circuit ASAP.\r\n\r\nRefer to #2652', '7', null, null, 'ostera', '2013-05-24T08:10:49Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2380', '37', '2779', 'Added support for file inputs with input directive', 'Note: I am opening this PR for some discussion before finishing it off, since I have come upon a problem of testability of this feature.\r\n\r\nThis feature is for adding support for the input directive for inputs with type file. This is meant to address [#2568](https://github.com/angular/angular.js/issues/2568). As far as my hands-on testing with this has gone, what I have here works for updating ngModel with the file data, as well as adding support for ngChange callbacks. However, unit testing these features causes a problem since you cannot manually set the file property of an input with type file due to official specification.\r\n\r\nI would like some guidance on how to best approach this issue so this feature can get implemented.', '4', null, null, 'wesleycho', '2013-05-24T13:31:31Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2381', '37', '278', 'Issue 112', '', '4', null, null, 'mhevery', '2011-02-16T16:54:02Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2382', '37', '2782', 'Fix for\"10 $digest() iterations reached\" with IE9 and IE8', 'There was an issue with location.replace method isn\'t changing the location.href immediately.', '7', null, null, 'pvasek', '2013-05-24T16:30:01Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2383', '37', '2783', 'feat($compile): support directive virtual groups', 'By appending X-start and X-end to a directive it is now possible\r\nto have the directive act on a group of elements.\r\n\r\nIt is now possible to iterate over multiple elements like so:\r\n\r\n```\r\n<table>\r\n <tr ng-repeat-start=\"item in list\">I get repeated</tr>\r\n <tr ng-repeat-end>I also get repeated</tr>\r\n</table>\r\n```', '6', null, null, 'mhevery', '2013-05-24T19:42:48Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2384', '37', '2785', 'Small change: foo / bar consistency.', '', '1', null, null, 'dogweather', '2013-05-24T22:37:06Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2385', '37', '2786', 'Add \"comment\" as one of the options for triggering directives.', '', '1', null, null, 'gnashe', '2013-05-24T22:54:49Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2386', '37', '2788', 'feat(directive): support as instance syntax', 'Support controller: \'MyController as my\' syntax for directives which publishes\r\nthe controller instance to the directive scope.\r\n\r\nSupport controllerAs syntax to define an alias to the controller within the\r\ndirective scope.\r\n\r\nNote: The syntax `controller: \'MyController as my\'` was already working as a side-effect of the existing changes to support this syntax on a route', '5', null, null, 'lgalfaso', '2013-05-25T00:52:12Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2387', '37', '2789', 'chore(docs): add reference to the blog', 'Add a reference to the blog at the documentation.', '2', null, null, 'lgalfaso', '2013-05-25T01:45:01Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2388', '37', '279', 'Issue 143', '', '0', null, null, 'mhevery', '2011-02-16T17:00:55Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2389', '37', '2790', ' Removed call to $httpBackend.verifyNoOutstandingExpectation() in $httpBackend.flush()', 'Part of the use of flush() is that one can flush one or more expectations at a time.\r\nHaving a call to verifyNoOutstandingExpectation() does not facilitate this objective\r\nas if you don\'t flush all your expectations then your test will fail.\r\n\r\nIt my particular project I\'m writing an AJAX poller with $timeout.\r\n\r\nI think it should be at the end of the test where verifyNoOutstandingExpectation() is called (and in my afterEach I do just that).', '8', null, null, 'kierans', '2013-05-25T05:53:17Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2390', '37', '2793', 'feat($parse): Support getter/setter functions in parse expression.', 'Adds support for a syntax to define a property accessor in expressions, i.e.\r\na getter/setter pair. The straw man syntax is @foo supporting getFoo and\r\nsetFoo. Property accessors can be used in ng-model bindings, e.g.\r\n```<input ng-model=\"obj.@foo\">```\r\nBinding to obj.getFoo() and obj.setFoo(value) respectively.\r\n\r\nCloses #768', '5', null, null, 'mprobst', '2013-05-25T15:26:56Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2391', '37', '2796', 'Add build of angular for node.js server environment', 'I\'ve created a build that works in node with minimal changes. I\'ve been using a version of this for a while now and it is really nice to be able to share some of my modules between the client and the server without any special code to make that work.\r\n\r\nEDIT: I should add its essentially just the DI interface. It does not include any of the directives or scoping code. But just having the same DI interface can be very useful for sharing code nicely.', '3', null, null, 'ashaffer', '2013-05-25T22:16:53Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2392', '37', '2800', 'feat($formData): function to access the form controls (plus the filter) on ngModelController', 'Implements #2791\r\n\r\nUsage is:\r\n\r\n```js\r\n$scope.myForm.$formData() // return all controls on the current form\r\n$scope.myForm.$formData({\'$dirty\': true}) // return only dirty controls on the current form\r\n$scope.myForm.$formData({\'$pristine\': true}, \'$viewValue\') // return only pristine controls on the current form but instead, return their $viewValue\r\n```\r\n\r\nThis is mainly useful when dealing with directives that alter the $modelValue but not the $viewValue (like the ui-mask), submitting AJAX, fetching non-DOM representations of controllers, etc', '5', null, null, 'pocesar', '2013-05-26T05:52:32Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2393', '37', '2801', 'feat(ngInclude): $includeContentDeeploaded event', 'Add a $includeContentDeeploaded event that will be triggered once all the nested ngInclude of an included template have been loaded.', '10', null, null, 'mlarcher', '2013-05-26T12:22:34Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2394', '37', '2802', 'If you use html5mode on IE9, IE8 it fails with 10 $digest() iterations r...', 'There was an issue with location.replace method isn\'t changing the location.href immediately.\r\n\r\nThis pull-request is the same like this one https://github.com/angular/angular.js/pull/2782 but for 1.0.x branch.', '7', null, null, 'pvasek', '2013-05-27T06:55:47Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2395', '37', '2806', 'fix(ngRepeat): handle iteration over identical obj values', 'Modifies default trackByIdFn to factor both key and value into hashKey\r\nfor non-array primitive (i.e. index not provided) values\r\n\r\nCloses #2787', '3', null, null, 'worrel', '2013-05-27T18:05:23Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2396', '37', '2807', 'Clarifying the parameters to ngClass', '', '1', null, null, 'mrlucmorin', '2013-05-28T00:35:12Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2397', '37', '2808', 'Extending custom animations', 'adding more flexibility to custom animations, there are now two optional parameters in animator.animate which can be used to pass additional functions. Those two functions will be called before and after animator is executed respectively.', '4', null, null, 'mjaric', '2013-05-28T14:13:08Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2398', '37', '2811', 'Sce', '', '2', null, null, 'chirayuk', '2013-05-29T00:04:40Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2399', '37', '2812', 'fix tutorial markdown-rendering issue and broken buttons', 'The markdown wasn\'t being correctly processed for `index` or `the_end`. Also, the button .tutorial-page divs added in 5bc2836 were overlaying the \'improve this doc\' buttons, preventing them from being clickable. Lastly, the \'improve this doc\' button URLs were wrong, 404ing at github. (Most of this request essentially rolls back 5bc2836) ', '8', null, null, 'cgrayson', '2013-05-29T02:46:05Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2400', '37', '2814', 'feat(filter): add escapeHtml', 'Fixes issue #1703.', '3', null, null, 'happygiraffe', '2013-05-29T07:18:35Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2401', '37', '2818', 'fix(ngController): fix indentation bug which causes 2nd example code to mess up', '', '1', null, null, 'matsko', '2013-05-29T11:26:16Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2402', '37', '2819', 'Added @description for documentation.', 'Helping with the documentation. I didn\'t understand how this worked so I updated the docs so others wouldn\'t be confused as well.', '2', null, null, 'alanklement', '2013-05-29T13:45:43Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2403', '37', '282', 'Auto inject', '', '1', null, null, 'mhevery', '2011-02-17T04:48:27Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2404', '37', '2821', 'fix(jqLite): Added optional name arg in removeData', 'jQuery\'s API for removeData allows a second \'name\' argument to just remove the property by that name from an element\'s data. The absence of this argument was causing some features not to work correctly when combining multiple directives, such as ng-click, ng-show, and ng-animate.', '2', null, null, 'jeffbcross', '2013-05-29T16:07:10Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2405', '37', '2823', 'Misnamed method in the $httpBackend example', 'Should be fromJson().', '1', null, null, 'dogweather', '2013-05-30T01:28:01Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2406', '37', '2824', 'fix(ngdocs): Provide test code for lunr search in docs', '', '2', null, null, 'matsko', '2013-05-30T04:58:52Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2407', '37', '2825', 'fix($animator): ensure $animator calculates the highest duration + delay for and transitions and animations together', '', '1', null, null, 'matsko', '2013-05-30T04:59:32Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2408', '37', '2832', 'Fixing a documentation issue so PhpStorm/WebStorm quits complaining about a syntax error', 'When breaking a `{@link foo}` over multiple lines, PhpStorm/WebStorm complain that the file has broken syntax and highlights the file in your project explorer with a red.', '7', null, null, 'meenie', '2013-05-30T22:46:01Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2409', '37', '2834', 'Change router so route can be a callback function', 'Thinking about feedback from #2571 which I submitted a few weeks ago, here is another idea for making routing extensible. It has the benefit of allowing you to use the existing router for routes it is good at.\r\n\r\nThe premise is that no router is likely to meet everyone\'s requirements, so make it plugable. It turns out it already is. You can register another service with the name \'$router\'. However, I would argue that that is a lot of work when the current router almost does what you want. It turns out other routers exist, but I have not found one that meets my requirements.\r\n\r\nThis pull requests allows you to pass a callback function as a route. Below is an example. It is a simplification of what I need to do, in fact cat is a path like x/y/ or x/y/123 so more parsing is done. Excuse the coffescript:\r\n```coffeescript\r\ncategoryRoute = (params, search) ->\r\n if params.cat.match(/^\\d+$/)\r\n return { templateUrl: \'/t/item.html\', controller: ItemCtrl, resolve: ItemCtrl.resolve }\r\n else \r\n return { templateUrl: \'/t/category.html\', controller: CategoryCtrl, resolve: CategoryCtrl.resolve }\r\n\r\n...\r\n...\r\n\r\n$routeProvider.when \'/category/*cat\', categoryRoute \r\n```\r\nAnother feature not shown here is that params and search can be updated by the route function - though I have not tested this for search.\r\n\r\nAny feedback would be appreciated. Let me know if this is likely to be merged, then I can add documentation and do more thorough testing.\r\n\r\nIt would also be helpful to get some idea whether updating the router is a priority of the core developers of angular and if so what they see as key priorities.', '7', null, null, 'richardcrichardc', '2013-05-31T03:36:26Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2410', '37', '2835', 'Support for \'extending\' data', 'By adding \'extend:true\' to action params you can have the data returned from server extend (deeply) the client side object rather than overwrite it.\r\n\r\nThis is useful primarily for updates - e.g. when you save the object and get a returned object with some of the data changed and yet have client data which must be kept.\r\n\r\nOne possible flow:\r\nYou have an object on the client which has an array displayed by a carousel - thus each item has an \'isActive\' property on the client side.\r\nWhen saving the object you need to return the object for many reasons one of which ,ight be to get updated IDs when some items are new and must be created on server side - getting an ID.\r\nThis scenario would normally overwrite the entire client object making the carousel slide to the first slide - rather than maintaining the selected slide as needed.\r\nBy extending the client data with the server data you can avoid that.', '4', null, null, 'srfrnk', '2013-05-31T05:15:19Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2411', '37', '2836', 'Updating ngApp documentation to clarify use with multiple applications', '', '1', null, null, 'robbieferrero', '2013-05-31T05:43:34Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2412', '37', '284', 'Buzz resource fix', '', '1', null, null, 'IgorMinar', '2011-02-17T21:20:59Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2413', '37', '2843', 'Fix PasswordCtrl example', 'Unless I\'m misunderstanding things, `password` doesn\'t seem to be a function here.', '1', null, null, 'brutasse', '2013-05-31T14:43:28Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2414', '37', '2847', 'doc(ngTransclude): replace scope definition with modern one', 'I\'ve stumbled upon `scope: \'isolate\', locals: { title:\'bind\' }` notation in ngTransclude doc. Replace with `scope: {isolate: \'@\'}`', '1', null, null, 'marcin-wosinek', '2013-06-01T12:00:42Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2415', '37', '285', 'Deeagerize services', '', '1', null, null, 'IgorMinar', '2011-02-17T21:21:14Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2416', '37', '2850', 'Fixes broken build when building not from git repository', 'Otherwise, the builded .js files are going to be invalid if building not from git repo.', '1', null, null, 'darvin', '2013-06-01T17:59:38Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2417', '37', '2852', 'fix(equals): {} and [] should not be considered equivalent ', 'angular.equals was returning inconsistent values for the comparison between\r\n{} and []:\r\n\r\n angular.equals({}, []) // true\r\n angular.equals([], {}) // false\r\n\r\nSince these object are not of the same type, they should not be considered\r\nequivalent.\r\n\r\nFixes #2851\r\n', '11', null, null, 'appsforartists', '2013-06-02T06:40:31Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2418', '37', '2853', 'docs(CONTRIBUTING): Moved checklist over from wiki', 'Ideally would like to remove this page from the wiki: https://github.com/angular/angular.js/wiki/Contribution-Checklist', '2', null, null, 'ProLoser', '2013-06-02T18:19:03Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2419', '37', '2854', 'fix($parse) - Allow setterFn to bind correctly to promise results', 'When binding the result of a promise directly to an ng:model directive,\r\ngetterFn successfully extracts the data from the promise by traversing\r\nthe \'$$v\' attribute.\r\n\r\nHowever the setterFn was not successfully traversing to the $$v\r\nattribute, and instead writing model updates directly on the promise\r\nitself.\r\n\r\nThe subsequent apply/digest phase of Angular was then pulling the\r\noriginal value from the promise and applying it back into the viewState,\r\nthus simulating a read-only field.\r\n\r\nIn summary, setterFn was writing to the root of the promise, while\r\ngetterFn was reading from the \'$$v\' component.\r\n\r\nFixed by modifying setterFn to unwrap promises if found and read $$v.\r\n\r\nIf promises have not been resolved yet, bindings will function as they\r\npreviously did (act as a read-only field). This appears to be more of a\r\nside effect than intentional design in the existing codebase, however\r\nI kept this behaviour in this patch to minimize the chance of breaking\r\nexisting projects.\r\n\r\nCloses #1827\r\n\r\nThis issue affects the 1.0.x branch as well and would be worth backporting.\r\n(Cleanly cherry-picks against 1.0.7 with all tests passing).\r\n\r\nAlso see: http://stackoverflow.com/questions/16883239/angularjs-ngmodel-\r\nfield-is-readonly-when-bound-to-q-promise/16883387', '17', null, null, 'jimmydivvy', '2013-06-03T04:38:39Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2420', '37', '2856', 'fix(ngScenario): select(...).option(val) should select exact value match', 'This pull requests modifies ngScenario\'s `select(...).option(val)` such that it closes #2855.\r\n\r\nThis fix prefers exact matches when available, otherwise it reverts to the previous \'contains\' behaviour for backwards compatibility.\r\n\r\nThis pull request also updates the dslSpec tests to ensure proper behaviour going forward for both the exact text match and the :contains text match.', '4', null, null, 'Smerity', '2013-06-03T08:29:50Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2421', '37', '2858', 'feat(Grunt): Add source maps', 'Generate source map files when build step is ran:\r\n- Handles IE conditional compilation comment issues\r\n- Prevents caching issues by prefixing full version to map name\r\n- Upgraded closure compiler to handle v3 maps', '5', null, null, 'ryanseddon', '2013-06-03T11:20:48Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2422', '37', '2859', 'fix($compile): support text inside multi-element directive', 'Fixed problems with text inside multi-element directives which resulted in a TypeError: Object #<Text> has no method \'hasAttribute\'\r\n', '2', null, null, 'aleksabl', '2013-06-03T11:38:19Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2423', '37', '286', 'Gdocs', '', '1', null, null, 'mhevery', '2011-02-17T23:40:15Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2424', '37', '2862', 'adding a hint re: click 3 times', '', '1', null, null, 'jaredly', '2013-06-03T16:57:19Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2425', '37', '2863', 'typo fix', '', '1', null, null, 'jaredly', '2013-06-03T17:05:27Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2426', '37', '2867', 'enclosed all angularjs tags in <div class=\"ng-app:ADC\" id=\"ng-app\"> to ...', '...boot the angularjs in ie7+\r\n\r\nenclosed all AngularJS tags in <div class=\"ng-app:ADC\" id=\"ng-app\"> to boot the AngularJS in ie7+', '2', null, null, 'kashifw', '2013-06-03T20:29:44Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2427', '37', '2869', 'docs(directive/script): escape `</script>`', 'This is a possible solution so that the documentation won\'t jump out of the `<script>`\r\ntemplate on [1]. I currently don\'t have the possibility to execute the documentation generation. If anyone could verify if this works, that would be great.\r\n\r\nThis commit fixes (hopefully!) #2820.\r\n\r\n[1] http://docs.angularjs.org/api/ng.directive:script', '1', null, null, 'JensRantil', '2013-06-04T08:27:42Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2428', '37', '2871', 'I should be able to supply $scope.$watch a comparator function to check for equality', 'Currently, $watch either checks for equality by object reference, or by Angular\'s equals function, which iterates through the objects properties.\r\n\r\nWe should be able to supply $watch with an comparator function to have a more lean equality detection.', '5', null, null, 'roypeled', '2013-06-04T13:35:59Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2429', '37', '2872', 'Added a note to clarify it cannot be used in resolve methods of $routeProvider', '', '3', null, null, 'jmpicnic', '2013-06-04T17:10:18Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2430', '37', '2874', 'docs(header): replace logo.png with logo.svg', 'The current logo looks awful on high-density displays. SVG is a\r\nbetter choice because it can scale to any resolution without\r\nincreasing file size.\r\n\r\nAmending #2775 to add support for IE 8 by falling back to existing PNG\r\nwith img.onerror', '20', null, null, 'appsforartists', '2013-06-04T21:15:03Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2431', '37', '2875', 'fix(ngdoc): fix the node warnings that show up during build', '', '1', null, null, 'matsko', '2013-06-04T22:26:39Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2432', '37', '2876', 'chore(ngdocs): replace google closure library with a NPM module', '', '1', null, null, 'matsko', '2013-06-04T22:27:25Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2433', '37', '2878', 'fix(Angular.js): Improve logic powering isArrayLike()', 'Enable isArrayLike() to correctly identify one-off-arrays (aka\r\n\'subclasses\').\r\nThus array-like objects with enhanced prototypes can be used with\r\nng-repeat.\r\nPreviously, they would be misidentified as objects and not iterate\r\ncorrectly.', '8', null, null, 'anfurny', '2013-06-05T05:25:37Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2434', '37', '2882', 'chore(grunt): give closure-compiler 2g of memory', 'Every now and then Travis fails for the lack of memory when running the closure compiler. Force it to use 2g of memory so it never fails', '3', null, null, 'lgalfaso', '2013-06-05T16:32:44Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2435', '37', '2883', 'feat(ngdocs): setup karma-docs testing suite to test docs components', '', '0', null, null, 'matsko', '2013-06-05T18:44:26Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2436', '37', '2884', 'feat(ngdocs): setup karma-docs testing suite to test docs components', '', '0', null, null, 'matsko', '2013-06-05T18:45:51Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2437', '37', '2886', 'feat(ngdocs): provide support for user to jump between different versions of the angularjs documentation', '', '1', null, null, 'matsko', '2013-06-05T21:43:24Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2438', '37', '2887', 'feat(filterFilter): provide support for an array as values to pattern objects', 'Arrays are now supported for pattern object values of filterFilter. For\r\nexample: `ng-repeat=\"item in items | filter:{name:[\'alex\', \'john\',\r\n\'simon\']}\"`\r\n\r\nIn my example, I use this to filter by \"types\" from a list of checkboxes. Only the selected \"types\" are shown.', '4', null, null, 'alexdemers', '2013-06-05T21:56:26Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2439', '37', '2888', 'docs(directive): Clarified and cleaned up directive guide', '- corrected terminology about how directives use `require`\r\n- added more variations to the DirectiveDefinitionObject\r\n- removed some slightly superfluous text', '21', null, null, 'ProLoser', '2013-06-05T23:27:23Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2440', '37', '2889', 'refactor($route): pull $route and friends into angular-route.js', '$route, $routeParams and ngView have been pulled from core angular.js\r\nto angular-route.js/ngRoute module.\r\n\r\nThis is was done to in order keep the core focused on most commonly\r\nused functionality and allow community routers to be freely used\r\ninstead of $route service.\r\n\r\nThere is no need to panic, angular-route will keep on being supported\r\nby the angular team.\r\n\r\nBREAKING CHANGE: applications that use $route will now need to load\r\nangular-route.js file and define dependency on ngRoute module.\r\n\r\nBefore:\r\n\r\n...\r\n<script src=\"angular.js\"></script>\r\n...\r\nvar myApp = angular.module(\'myApp\', [\'someOtherModule\']);\r\n...\r\n\r\nAfter:\r\n\r\n...\r\n<script src=\"angular.js\"></script>\r\n<script src=\"angular-route.js\"></script>\r\n...\r\nvar myApp = angular.module(\'myApp\', [\'ngRoute\', \'someOtherModule\']);\r\n...\r\n\r\nCloses #2804', '0', null, null, 'IgorMinar', '2013-06-06T00:28:18Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2441', '37', '289', 'Onhashchange issue', '', '0', null, null, 'mhevery', '2011-02-20T04:14:51Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2442', '37', '2892', 'adding hint about bootstrapping', '', '4', null, null, 'jaredly', '2013-06-06T05:50:12Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2443', '37', '2893', 'fix(noConflict): resolve global JSONP conflicts and window.angular cannibalization', 'Eliminate `window.angular.callbacks` and use random callback handles on `window` to eliminate multiple angular version conflicts.\r\n\r\nAlso sure to start with an empty `window.angular` object rather than polluting existing `window.angular`. Prior, even though a reference to `window.angular` was kept in a local variable `_angular`, angular would load itself onto `window.angular` anyway polluting `_angular` in the process.\r\n\r\nThis is a follow-up to this rejected pull request: https://github.com/angular/angular.js/pull/2731 and this thread on the mailing list: https://groups.google.com/forum/?fromgroups#!searchin/angular/noConflict/angular/G8xPyD1F8d0/7m96EbK2l1oJ\r\n\r\nThanks!\r\nMike', '4', null, null, 'mbrevoort', '2013-06-06T05:59:42Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2444', '37', '2896', 'feat(ngdocs): provide documentation for the new ngRepeat repeater syntax', '', '1', null, null, 'matsko', '2013-06-07T01:39:58Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2445', '37', '2897', 'feat(ngValidityChange): create new directive ngValidityChange', 'ngValidityChange evaluates given expression when model validity changes.\r\n\r\nAt the moment form validation is mostly done binding the $viewValue via ngChange, checking the model, or binding some events (blur, change) on the DOM element. Those approaches might fail if the validity is set without changing the model, like by a custom directive that update asynchronously the validity.\r\n\r\nI made a demo to show how ngChange fail in this use case: http://plnkr.co/edit/8NilSQDuxCz1YvxT78Ip?p=preview\r\n\r\nngValidityChange directive makes form validation very easy allowing developers to be notified on the fly when something happens to the form values.', '5', null, null, 'Pasvaz', '2013-06-07T03:45:18Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2446', '37', '2902', 'fix($compile): mark urls unsafe in IE6 and IE7', 'IE6 and IE7 do not return absolute URLs when querying the href property.\r\nThe white list comparison requires a full URL so this tests for\r\nIE7 and below and adds the protocol and host back to the URL.\r\n\r\nCloses #2901', '8', null, null, 'leemicw', '2013-06-07T14:16:04Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2447', '37', '2904', 'Adding ngModel.', 'look at this pull Request it implements the event ngModel.$setContext to especify the context should expression will be evaluated, example:\r\n\r\n```javascript\r\nmod.directive(\'myFancyInput\', function() {\r\n return {\r\n require : \'ngModel\',\r\n scope : { ... hash ...},\r\n link : function(scope, element, attrs, ngModel) {\r\n ngModel.$setContext(scope.$parent);\r\n }\r\n }\r\n})\r\n````', '6', null, null, 'il-juggler', '2013-06-07T18:14:14Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2448', '37', '2907', 'feat(Grunt): add source maps to all min files', 'Generate source map files when build step is ran and adds source map\r\nheaders to all min files.\r\n\r\nSource map url must be appended to the min file otherwise the line\r\noffsets will be off.\r\n\r\nInspired by Ryan Seddon (PR #2858)\r\n\r\nCloses #1714', '6', null, null, 'IgorMinar', '2013-06-08T06:16:16Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2449', '37', '291', 'Deffer', '', '1', null, null, 'mhevery', '2011-02-25T19:24:20Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2450', '37', '2912', 'minor typo', 'or maybe should it be \"on a HTML element\" instead?', '2', null, null, 'Ore4444', '2013-06-09T06:36:13Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2451', '37', '2914', 'Added tie game message, and remove Next Player after finish', 'We (me, @dsaldric, @doomsday87) added a \'cats\' game tie message, and also removed the \'Next Player\' message. Added a commented out version of $scope.tiedGame which uses Underscore.js to make it one line of code, but also added a manual iteration version too.', '2', null, null, 'JogoShugh', '2013-06-09T19:26:21Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2452', '37', '2915', 'Fix for race condition bug in the \"traverse the scopes\" loop.', 'Calls to Scope.$watch returns a deregistration function for this listener.\r\n\r\nSometimes a listener may be removed by this function between the call `length = watchers.length;` on line 517 and `watch = watchers[length];` on line 520; in this case, `watch` will be undefined and the call to `watch.get` at line 523 will fail.\r\n\r\nThis is a real bug and I was bitten when writing a huge directive (using d3.js). The case must be obvious enough and the fix too small to bother creating a reproducible test case - reproducing race conditions is hard and testing for the existence of `watch` before calling `watch.get` will not hurt, anyway. \r\n\r\n\r\n', '9', null, null, 'scardine', '2013-06-10T02:37:21Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2453', '37', '2917', 'Update input.js', 'Added clarification and example to ngModel.$formatter line 819', '1', null, null, 'deanapeterson', '2013-06-10T13:43:42Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2454', '37', '2921', 'fix(angularFiles): ensure only karma-docs.js tests the component-spec files', '', '0', null, null, 'matsko', '2013-06-10T22:17:44Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2455', '37', '2922', 'chore(ngdocs): add angular-route.js to karma docs suite', '', '1', null, null, 'matsko', '2013-06-10T22:24:32Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2456', '37', '2925', 'docs(form): Added methods for FormController', '- Exposing FormController methods', '1', null, null, 'ProLoser', '2013-06-11T02:14:25Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2457', '37', '293', 'Compiler fixes', 'we can still discuss this change on monday if you want.', '0', null, null, 'IgorMinar', '2011-02-25T22:08:52Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2458', '37', '2932', 'Added example to $anchorScroll documentation.', 'Per a request made by Peter Bacon Darwin here: http://www.benlesh.com/2013/02/angular-js-scrolling-to-element-by-id.html?showComment=1370941217879#c8718313084813008967\r\n\r\nI\'ve added an example of basic usage. If more detail is desired, please let me know.', '15', null, null, 'blesh', '2013-06-11T18:36:44Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2459', '37', '2933', 'chore(docs/writer): fix Windows path incompatibilities', 'NodeJS on Windows uses back slashes for path separators. This\r\ndifference can be mitigated by use of the nodeJS path library.\r\nIn particular the `sep` property and the `dirname()`, `normalize()`\r\nand `join()` methods of this library. All path based arguments on\r\nexported functions need to be normalized and `join` and `sep` must\r\nbe used instead of string manipulation to work with paths.', '2', null, null, 'petebacondarwin', '2013-06-11T20:14:26Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2460', '37', '2934', 'Issue #2343 Fix', 'Added tests definitions for ngMock debugEnabled and debug methods', '1', null, null, 'jpalumbo', '2013-06-11T23:17:53Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2461', '37', '2935', 'Issue #2343 Fix', 'Added $logProvider.debugEnabled method to $logProvider Mock.\r\nAdded $log.debug method to Mock.', '7', null, null, 'jpalumbo', '2013-06-11T23:17:58Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2462', '37', '2937', 'Issue #2456 Fix -- number filter handles exponentially small numbers', 'When using the number filter with small exponentially small numbers (those in scientific notation), the filter was previously taking no action on the input. \r\n\r\nThis would result in output that is not actually filtered to a certain number of decimal places. Since the filter already detects when a number has an exponent, the simplest solution for this was to use toFixed() on the number. See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/toFixed\r\n\r\nIncluded in this pull request are the updated specs, and the fix to make them pass. Feedback greatly appreciated!\r\n\r\nCheers', '7', null, null, 'pmeskers', '2013-06-12T02:35:24Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2463', '37', '2940', 'Update step_05.ngdoc', 'Isn\'t this link much more appropriate?', '1', null, null, 'Ore4444', '2013-06-12T08:38:46Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2464', '37', '2941', 'style(ngRepeat): typos fix', 'just small typos fixed', '1', null, null, 'revolunet', '2013-06-12T10:16:19Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2465', '37', '2947', 'Fix verb tense', '', '1', null, null, 'jnaous', '2013-06-13T01:32:35Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2466', '37', '2949', 'fix(chore): Remove code duplication (Issue #2890 Fix)', 'Fixed issue #2890 by removing code duplication.\r\n\r\nThe stripWhitespace function, which is the exact same as the trim function, is not even used, so it was removed.', '6', null, null, 'ericsubach', '2013-06-13T01:35:58Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2467', '37', '295', 'Symlinking to bash in test.sh', 'As discussed in \r\n\r\nhttp://groups.google.com/group/angular/browse_thread/thread/235d69ffc609e1a9#\r\n\r\nThanks in advance.', '1', null, null, 'elfgoh', '2011-03-01T02:05:20Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2468', '37', '2950', 'fix($location): support IPv6 addresses', 'Fixes #2864', '9', null, null, 'chrisirhc', '2013-06-13T02:01:05Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2469', '37', '2951', 'Fix ngDisabled docs', '', '0', null, null, 'moroshko', '2013-06-13T07:53:18Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2470', '37', '2952', 'Update q.js', 'few minor changes', '1', null, null, 'Ore4444', '2013-06-13T08:18:32Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2471', '37', '2954', 'Fix ngOptions docs', '', '1', null, null, 'moroshko', '2013-06-13T08:54:06Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2472', '37', '2957', 'DI (Dev Guide) - fixed headings hierarchy', '', '2', null, null, 'Ore4444', '2013-06-13T10:12:56Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2473', '37', '2958', 'Update loader.js', 'minor semantic error + minor typo', '1', null, null, 'Ore4444', '2013-06-13T13:18:43Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2474', '37', '2959', 'Update select.js', 'Add an example of how to use \"as\" in ng-options', '1', null, null, 'shairez', '2013-06-13T14:09:17Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2475', '37', '2960', 'emit a <className>-done event when an animation is finished', 'It would be nice to be able to know when animations are done. This change emits a \'<className>-done\' event which could be used to coordinate actions to take place after an animation has finished.', '2', null, null, 'gdunkle', '2013-06-13T15:27:43Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2476', '37', '2965', 'Fixes to docs + jqLite', '- Lunr 0.4.0 is much faster than what we had before.\r\n- jqLite trigger handler does not support event object override.\r\n- Allow user to press escape key to close the docs search.', '1', null, null, 'matsko', '2013-06-14T02:02:50Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2477', '37', '2967', 'chore(ngdocs): provide test code for lunr search in docs', '', '4', null, null, 'matsko', '2013-06-14T02:53:16Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2478', '37', '2968', 'NgAnimate: parallel animations, add/remove classes and callbacks', '', '0', null, null, 'matsko', '2013-06-14T03:01:20Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2479', '37', '2969', 'fix($location): default to / for the url base if no base[href]', 'With the recent refactoring of $location service we changed this behavior\r\nresulting in a regression.\r\n\r\nPreviously we thought that html5 mode always required base[href]\r\nto be set in order for urls to resolve properly. It turns out that\r\nbase[href] is problematic because it makes anchor urls (#foo) to\r\nalways resolve to the base url, which is almost always incorrect\r\nand results in all anchors links and other anchor urls (e.g. svg\r\nreferences) to be broken.\r\n\r\nFor this reason, we should now start recommending that people just\r\ndeploy to root context (/) and not set the base[href] when using\r\nthe html5 mode (push/pop history state).\r\n\r\nIf it\'s impossible to deploy to the root context then either all\r\nurls in the app must be absolute or base[href] must be set with the\r\ncaveat that anchor urls in such app won\'t work.\r\n\r\nCloses #2762', '13', null, null, 'IgorMinar', '2013-06-14T05:34:14Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2480', '37', '297', 'Json security fix', '', '0', null, null, 'IgorMinar', '2011-03-03T01:36:49Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2481', '37', '2971', 'chore(minErr): replace ngError with minErr', 'We removed ngError and replaced all calls to ngError with calls to minErr instances. minErr will be our new error API going forward. Take a look at minErr in `src/minErr.js`.', '3', null, null, 'ksheedlo', '2013-06-14T18:13:37Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2482', '37', '2974', 'update $httpBackend.flush() example in docs', 'update to reflect separation of scopes and controllers\r\n\r\nadjust ordering of .expect() .flush() calls to reflect the fact that\r\n.flush() calls .verifyNoOutstandingExpectations()\r\n\r\nadd spec for the inverted case, when initial asynchronous request does\r\nnot complete, better illustrating the use of flush() to control\r\nthe response from asynchronous requests.', '3', null, null, 'fessyfoo', '2013-06-15T04:59:46Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2483', '37', '2976', 'Add some commas make tutorial read more clearly', 'This read a little funny when I was looking over the tutorial. I think this clears it up.', '1', null, null, 'jjbohn', '2013-06-15T12:43:39Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2484', '37', '2978', 'Docs/tutorial: add missing \'node\' command, wrap directory text in <code>', '', '1', null, null, 'gdi2290', '2013-06-15T19:19:40Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2485', '37', '2979', 'Added Event Directives', 'I\'ve added ```ng-focus``` and ```ng-blur``` as two further default *event directives* which should be available for users inside AngularJS.', '13', null, null, 'andi1984', '2013-06-15T21:25:22Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2486', '37', '2981', 'feat(MockHttpExpectation): matchData supports function as data', 'Add support for passing function as validating data:\r\n - To avoid hacking test method of RegExp\r\n - Optionally overwrite toString method of fn to show validation tips', '10', null, null, 'kenspirit', '2013-06-16T05:01:28Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2487', '37', '2988', 'feat(ngName): allow interpolated name for form controls', 'ngName allows forms\' fields to set their name dynamically, especially useful with ngRepeat.\r\nRight now is not possible to validate form controls like this: ```<input type=\"text\" name=\"{{field.name}}\" ng-model=\"field.data\">```\r\nThe current work-around is to use one nested form for each field but indeed it\'s an hack rather than a solution.\r\n\r\nThis implementation could be moved inside the directive ```ngModel``` or within its own directive ```ngName```, I left intentionally it in the NgModelController because it\'s slightly faster, however I can refactor it as you prefer.\r\n\r\nthis fixes also the issues #1404 and #2426', '12', null, null, 'Pasvaz', '2013-06-17T14:46:54Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2488', '37', '2989', 'prevents unwanted opening of the soft keyboard', 'Ghost clicks are busted but the corresponding form elements are still focused. This means that for example on smartphones the soft keyboard will be opened. This pull request prevents the unwanted opening of the soft keyboard.', '14', null, null, 'JanLaussmann', '2013-06-17T14:58:23Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2489', '37', '2991', 'Update directive.ngdoc', 'typo \"normalized accessed\" => \"normalized access\"', '1', null, null, 'sarkasm', '2013-06-17T17:13:13Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2490', '37', '2992', 'Support extracting resources from wrapped responses and storing metadata.', 'This PR adds a `dataKey` option to the `actions` hash passed to `$resource`.\r\n\r\nWhen a dataKey is provided, the resources are extracted from the specified key on the response object. This is basically the same as providing:\r\n\r\n transformResponse: function(data, headers) {\r\n return angular.fromJson(data)[dataKey];\r\n }\r\n\r\nHowever, this PR also adds the following functionality: when a dataKey is provided, and `isArray == true`, any properties on the response object besides the dataKey itself will be copied over to the collection returned. For example:\r\n \r\n \r\n $resource(\'/api/items/:id\', {id: \'@id\'}, {\r\n query: {\r\n isArray: true,\r\n dataKey: \'items\'\r\n }\r\n }\r\n \r\n /* suppose the server responds with: */\r\n {\r\n page_size: 3,\r\n page: 1,\r\n total_items: 1900,\r\n items: [ { ... }, { ...} , {... } ]\r\n }\r\n \r\n /* in our controller, Items.query() returns an array as expected... */\r\n $scope.items = Items.query();\r\n /* but we can now also access: */\r\n $scope.items.total_items; // 1900\r\n $scope.items.page; // 1\r\n $scope.items.page_size; // 3\r\n\r\nObviously this is an issue if your response contains a key that already exists (`length`?). The alternative is to wrap these items in an object (`$scope.posts.meta.total_items`). \r\n\r\nI\'ve tried to adhere to the contribution guidelines as best I can. Love to get some feedback or direction on this. This addresses #1318, and perhaps #412 (although that one seems vaguer to me).\r\n', '5', null, null, 'ledbettj', '2013-06-17T18:43:01Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2491', '37', '2997', 'Pick the right attribute value for form.$name if ng-form directive is used as an attribute', 'Pick the right attribute value for form.$name if ng-form directive is used as an attribute.\r\n\r\nThis is especially important when you want your inner form to be published as a control of its parent form. \r\n\r\nCurrently, if you have this code snippet:\r\n\r\n```html\r\n<form name=\"mainForm\">\r\n <div ng-form=\"subForm\">\r\n ...\r\n </div>\r\n</form>\r\n```\r\n\r\n-> mainForm.subForm will not be available\r\n\r\n-----------------\r\n\r\n```html\r\n<form name=\"mainForm\">\r\n <div ng-form=\"whateverValue\" name=\"subForm\">\r\n ...\r\n </div>\r\n</form>\r\n```\r\n\r\n-> while it will work in this case.', '6', null, null, 'lastnico', '2013-06-18T07:59:48Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2492', '37', '2999', 'Huge animation PR', '', '1', null, null, 'matsko', '2013-06-18T19:16:27Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2493', '37', '3', 'Lint fixes', 'rebased version', '2', null, null, 'IgorMinar', '2010-09-14T21:14:32Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2494', '37', '3001', 'Ignore me', '\r\n', '0', null, null, 'IgorMinar', '2013-06-18T23:50:09Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2495', '37', '3002', 'Ignore me too', '', '0', null, null, 'IgorMinar', '2013-06-19T00:52:41Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2496', '37', '3003', 'feat(minErr): Add error stripping build step', 'Here\'s a first pass at the error stripper. It strips and collects errors just fine. I\'m have jasmine-node tests for this, but I\'m not sure how to tie them in with the rest of Angular. I would appreciate any feedback.', '14', null, null, 'ksheedlo', '2013-06-19T01:05:20Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2497', '37', '3004', 'Ignore me too too', '', '4', null, null, 'IgorMinar', '2013-06-19T01:08:50Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2498', '37', '3005', 'Allow promise returned by $http to be decorated', 'Exposes a `promiseDecorators` array on `$httpProvider` that can have functions pushed onto it. When `$http` is invoked, each decorator function will be called with the promise object that will be returned to the caller as an argument, allowing the decorator to add \"flavor\" methods, similar to `success()` and `error()`.\r\n\r\nThis is an implementation for the issue I created earlier this week, #2982. It\'s such a small change I figured I\'d just throw it out there and see if there\'s any interest.\r\n\r\nIf you don\'t feel like clicking to the issue, here\'s the rationale: formerly you could decorate the promise object returned by `$http` using a response interceptor, but since the request interceptor refactoring that\'s no longer possible. This change allows users to add their own application domainspecific handler methods that can integrate with such non-standard cross-cutting concerns as validation and security handling. At present, the only ways to accomplish this are wrapping `$http`, putting it behind a proxy service, or replacing it completely.', '2', null, null, 'wilsonjackson', '2013-06-19T03:33:27Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2499', '37', '3006', 'docs(tutorial): fix formatting and typo', '\r\nThe index page of tutorial is having problems with markup. I believe\r\nthis is because the entire page is wrapped in a div? To fix, for now,\r\njust switched markup to HTML for lists and heading.\r\nAlso fixed a typo sentence in step_00 to read cleaner.', '13', null, null, 'joshball', '2013-06-19T03:58:32Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2500', '37', '3007', 'Saucelabs tunnel setup demo', 'this PR demonstrates how we can establish a tunnel to saucelabs.\r\n\r\n', '1', null, null, 'IgorMinar', '2013-06-19T08:09:47Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2501', '37', '3009', 'docs(ngRepeat): Fix typo', '', '1', null, null, 'JensRantil', '2013-06-19T14:59:52Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2502', '37', '3010', 'fix($location): search should expand array values properly', 'Calling kind of $location.search(\'foo\', [1,2]) results in a query like \"/path/d/#/?foo=1,2\"\r\nwhich is undesirable. This commit enhance $location to build url like \"/path/d/#/?foo=1&foo=2\".\r\nAt the same time calling $location.search() will give {foo: [1,2]}.', '1', null, null, 'vavd', '2013-06-19T19:29:59Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2503', '37', '3012', 'fix(docs): set ng-app for editing with plunker', 'Closes #3011', '1', null, null, 'chirayuk', '2013-06-19T22:24:17Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2504', '37', '3014', 'Small enhancement in \"Hello, World!\" tutorial from the AngularJS cookbook', '', '1', null, null, 'NimaVaziri', '2013-06-20T13:29:19Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2505', '37', '3019', 'fix(ngRepeat): parsing of repeat_expression', 'Tweaked the regex used for tokenizing the repeat_expression. Subsequently tweaked the assignment to rhs as a result of the new regex.\r\n\r\nCloses #3018', '11', null, null, 'brianmarco', '2013-06-21T04:23:22Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2506', '37', '302', 'Ie7 array fix', '', '0', null, null, 'mhevery', '2011-03-09T04:21:57Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2507', '37', '3020', 'Fix to unexpected behavior when passing null to $location.search', 'When using $location.search, I made an error when attempting to clear a search value:\r\n\r\nErroneous Usage:\r\n\r\n $location.search(null);\r\nProper Usage:\r\n\r\n $location.search(\'myParam\', null);\r\n\r\nThis winds up setting the entire search object to null and caused errors on subsequent calls to set a search parameter(since it was trying to set it on null).\r\n\r\nWhile this was my accidental misuse of $location.search, I think calling \r\n\r\n $location.search(null);\r\nshould reset the search object to an empty object. I made this minor change in location.js:\r\n\r\n this.$$search = isString(search) ? parseKeyValue(search) : search || {};\r\n\r\nThis way, passing null would wipe out the entire search object. This is a more reasonable behavior than actually setting the search object to null. It also has the added benefit of not yielding difficult-to-trace errors if you later attempt to set a search parameter.', '6', null, null, 'cwerner87', '2013-06-21T07:27:35Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2508', '37', '3021', 'fix(doc-gen): correctly transform index files', '@matsko I think this is a fix but have not written tests', '13', null, null, 'petebacondarwin', '2013-06-21T07:31:29Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2509', '37', '3025', 'fix(Angular.js): allow query parameter arrays', 'Allow url?key=value1&key=value2, to be parsed into an object with an array {key: [\'value1,\'value2\']}.', '1', null, null, 'penfold', '2013-06-21T15:13:02Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2510', '37', '3027', 'fix($compile): sanitize values bound to img[src]', 'Ref: 9532234bf1c408af9a6fd2c4743fdb585b920531', '0', null, null, 'chirayuk', '2013-06-21T19:39:19Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2511', '37', '3028', 'fix($compile): disallow interpolations for DOM event handlers', 'e.g. Use ng-click=\"...\" instead of onclick=\"{{...}}\"', '1', null, null, 'chirayuk', '2013-06-21T20:08:18Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2512', '37', '303', 'Xsrf', '', '2', null, null, 'mhevery', '2011-03-10T21:52:38Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2513', '37', '3030', 'fix($compile): reject multi-expression interpolations for src attribute', 'BREAKING CHANGE: Concatenating expressions makes it hard to reason about\r\n whether some combination of concatenated values are unsafe to use\r\n and could easily lead to XSS. By requiring that a single expression\r\n be used for *[src/ng-src] such as iframe[src], object[src], etc.\r\n (but not img[src/ng-src] since that value is sanitized), we ensure that the value\r\n that\'s used is assigned or constructed by some JS code somewhere\r\n that is more testable or make it obvious that you bound the value to\r\n some user controlled value. This helps reduce the load when\r\n auditing for XSS issues.\r\n\r\n To migrate your code, follow the example below:\r\n\r\n Before:\r\n JS:\r\n scope.baseUrl = \'page\';\r\n scope.a = 1;\r\n scope.b = 2;\r\n HTML:\r\n <!-- Are a and b properly escaped here? Is baseUrl\r\n controlled by user? -->\r\n <iframe src=\"{{baseUrl}}?a={{a}&b={{b}}\">\r\n\r\n After:\r\n JS:\r\n var baseUrl = \"page\";\r\n scope.getIframeSrc = function() {\r\n // There are obviously better ways to do this. The\r\n // key point is that one will think about this and do\r\n // it the right way.\r\n var qs = [\"a\", \"b\"].map(function(value, name) {\r\n return encodeURIComponent(name) + \"=\" +\r\n encodeURIComponent(value);\r\n }).join(\"&\");\r\n // baseUrl isn\'t on scope so it isn\'t bound to a user\r\n // controlled value.\r\n return baseUrl + \"?\" + qs;\r\n }\r\n HTML: <iframe src=\"{{getIframeSrc()}}\">', '0', null, null, 'chirayuk', '2013-06-22T02:37:07Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2514', '37', '3032', 'feat(Angular.js): skip JSON.stringify for undefined', 'Return early in `angular.toJson` if the object to be stringified is `undefined`.\r\nIE8 stringifies `undefined` to `\'undefined\'` whereas other browsers return\r\n`undefined`. This normalizes behavior and passes currently broken unit tests\r\nin IE8.', '4', null, null, 'xdissent', '2013-06-23T19:07:27Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2515', '37', '3039', 'Get rid of erroneous reference to `NullPointerException`.', 'JavaScript doesn\'t have any such thing.', '3', null, null, 'domenic', '2013-06-24T18:35:02Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2516', '37', '304', 'Targeted autobind', '', '2', null, null, 'IgorMinar', '2011-03-10T22:34:54Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2517', '37', '3041', 'chore(ngdocs): append /index.html as a landing page for the docs toggle pages', '', '5', null, null, 'matsko', '2013-06-24T19:49:29Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2518', '37', '3043', 'fix($parse): disallow access to Function constructor.', 'Sandboxing Angular Expressions\r\n------------------------------\r\nAngular expressions are generally considered safe because these\r\nexpressions only have direct access to $scope and locals. However, one\r\ncan obtain the ability to execute arbitrary JS code by obtaining a\r\nreference to native JS functions such as the Function constructor.\r\n\r\nAs an example, consider the following Angular expression:\r\n\r\n {}.toString.constructor(alert(\"evil JS code\"))\r\n\r\nWe want to prevent this type of access. For the sake of performance, we\r\ndisallow any access to any member named \"constructor\". You can foil\r\nthis by sticking in the Function constructor under a different name in\r\nyour scope or exposing other JS apis or the DOM by sticking it on the\r\nscope. Don\'t do that - you increase the chances of accidently allowing\r\nan exploit through.', '1', null, null, 'chirayuk', '2013-06-24T22:45:41Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2519', '37', '3044', 'feat(q): make $q.resolve() and $q.reject() return the promise object', 'This will allow people to be slightly more elegant:\r\n\r\ninstead of:\r\n```\r\nvar deferred = $q.defer();\r\ndeferred.resolve(\'foobar\');\r\nreturn deferred.promise;\r\n```\r\nwe can now do:\r\n```\r\nreturn $q.defer().resolve(\'foobar\');\r\n```\r\n\r\nThis also slightly makes `$q.reject()` redundant:\r\n```\r\nreturn $q.defer().reject(\'barfoo\');\r\n```', '6', null, null, 'ProLoser', '2013-06-24T23:16:44Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2520', '37', '3047', 'test($compile): fix IE specific test.', 'For some reason, the tests pass but the build doesn\'t turn green on http://ci.angularjs.org/user/chirayu/my-views/view/chirayu/job/angular.js-chirayu/ (e.g. http://ci.angularjs.org/user/chirayu/my-views/view/chirayu/job/angular.js-chirayu/89/ )', '1', null, null, 'chirayuk', '2013-06-25T02:16:12Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2521', '37', '3049', 'fix($parse): move global getter out of parse.js', '', '0', null, null, 'chirayuk', '2013-06-25T03:46:18Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2522', '37', '3051', '$resource association / relationships / levels between resources.', '@IgorMinar love what you\'ve done with $resource, please take a look at the relationship implementation below.\r\n\r\nRemember that once you have the primary key for one level, you usually don\'t need to include the levels above because you\'ve already got your specific object. In other words, you shouldn\'t need too many cases where a URL is deeper than 2 levels deep eg `/resource/identifier/resource`. (http://info.apigee.com/Portals/62317/docs/web%20api.pdf)\r\n\r\nExample\r\n```javascript\r\nvar CreditCard = $resource(\'/card/:cardId\', {cardId:\'@id\'}, {\r\n charge: {method:\'POST\', params:{charge:true}}\r\n});\r\nvar User = $resource(\'/user/:userId\', {userId:\'@id\'}, {}, {CreditCard:CreditCard});\r\nvar cards = User.CreditCard.query({userId:123}, function() {\r\n // GET: /user/123/card\r\n // server returns: [ {id:456, number:\'1234\', name:\'Smith\'} ];\r\n\r\n var card = cards[0];\r\n // each item is an instance of CreditCard\r\n expect(card instanceof CreditCard).toEqual(true);\r\n card.name = \"J. Smith\";\r\n // non GET methods are mapped onto the instances\r\n card.$save();\r\n // POST: /card/456 {id:456, number:\'1234\', name:\'J. Smith\'}\r\n // server returns: {id:456, number:\'1234\', name: \'J. Smith\'};\r\n\r\n // our custom method is mapped as well.\r\n card.$charge({amount:9.99});\r\n // POST: /card/456?amount=9.99&charge=true {id:456, number:\'1234\', name:\'J. Smith\'}\r\n});\r\n```', '13', null, null, '2ix', '2013-06-25T07:06:11Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2523', '37', '3054', 'fix(resource): check whether response matches action.isArray', 'When using $resource you must setup your actions carefully based on what the server returns. If the server responds to a request with an array then you must configure the action with `isArray:true` and vice versa. The built-in `get` action defaults to `isArray:false` and the `query` action defaults to `isArray:true`, which is must be changed if the server does not do this.\r\nBefore this change, the error message was an exception inside `angular.copy`, which didn\'t explain what the real problem was.\r\nRather than changing the way that `angular.copy` works, this change ensures that a better error message is provided to the programmer if they do not set up their resource actions correctly.\r\n\r\nCloses #2255, #1044', '13', null, null, 'petebacondarwin', '2013-06-25T12:59:56Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2524', '37', '3056', 'fix(jqLite): make jqLite:text() work for mixed content', 'Fix jqLite:text() so it is able to work with mixed content', '12', null, null, 'lgalfaso', '2013-06-25T17:17:59Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2525', '37', '3058', 'Fixed an error in the scope inheritance example.', 'The chained scope creation example at the bottom of this document was using the childCtrl to create the babyScope, instead of the childScope.', '1', null, null, 'JeffreyPalmer', '2013-06-25T20:28:40Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2526', '37', '3059', 'Travis & Karma & Sauce', '- update karma to latest canary version\r\n- clean up\r\n- use sauce labs to test on travis', '0', null, null, 'vojtajina', '2013-06-25T20:59:05Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2527', '37', '306', 'Cache factory service', 'just a preliminary version for initial review/feedback.', '2', null, null, 'IgorMinar', '2011-03-17T23:52:10Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2528', '37', '3060', 'Make ng-cloak work even when CSS \'display\' is set.', 'Previously an element like\r\n&lt;div class=\"foo ng-cloak\">...&lt;/div>\r\nwould still be annoyingly visible if it matched a CSS rule like\r\n.foo { display: inline-block; }, overriding ng-cloak\'s display: none.', '3', null, null, 'vin', '2013-06-26T03:41:17Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2529', '37', '3061', 'Update ngBind.js', 'Clarifying some of the writing within the documentation, so that it is clearer how these directives work. (minor edits)', '2', null, null, 'ndp', '2013-06-26T06:21:22Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2530', '37', '3062', 'fix select with multiple attribute, now returns array', 'Currently, select only shows the first selected element if the multiple attribute is used.\r\nAdded code to detect a multi select and return array if need be.', '7', null, null, 'emhagman', '2013-06-26T06:44:50Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2531', '37', '3063', 'Update ngPluralize.js', 'Minor tweaks to make it read nicer.', '1', null, null, 'ndp', '2013-06-26T06:46:04Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2532', '37', '3064', 'Update modernizr.custom.js', 'Added tick and cross mark corresponding to their respective unicodes', '1', null, null, 'exexzian', '2013-06-26T10:08:55Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2533', '37', '3065', 'Remove hardcoded fraction size from currency filter.', 'We\'ve experienced some problems as we have to change currency fraction size. ', '0', null, null, 'jsjant', '2013-06-26T10:54:12Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2534', '37', '3066', 'Remove hardcoded fraction size from currency filter.', 'We\'ve experienced some problems as we have to change currency fraction size.', '2', null, null, 'jsjant', '2013-06-26T11:18:24Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2535', '37', '3068', 'Fixed multi select not returning array', 'Currently, select only shows the first selected element if the multiple attribute is used.\r\nAdded code to detect a multi select and return array if need be.\r\n\r\nNewer version of https://github.com/angular/angular.js/pull/3062', '5', null, null, 'emhagman', '2013-06-26T13:50:20Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2536', '37', '3069', 'Fix html() set in IE', 'There is an issue here: https://github.com/angular/angular.js/issues/3050.\r\nThis commit should fix the IE8 issue.\r\n\r\nIE doesn\'t like using innerHTML as seen here:\r\nhttp://msdn.microsoft.com/en-us/library/ms532998%28v=vs.85%29.aspx#TOM_Create', '6', null, null, 'emhagman', '2013-06-26T14:04:51Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2537', '37', '307', 'Resource encoding', 'fix for https://groups.google.com/forum/?lnk=srg&pli=1#!topic/angular/QGQoYo-Kr7k', '1', null, null, 'IgorMinar', '2011-03-18T17:32:47Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2538', '37', '3072', 'Add experiment showing reverse sort', 'It seems to be a very popular comment- I think it merits experiment status!', '1', null, null, 'nelsonblaha', '2013-06-26T18:34:50Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2539', '37', '3073', 'feat($http): setting JSONP callback name', 'Allow to define a name to angular.callbacks function. It would be useful to caching (varnish, etc).\r\n\r\nEx:\r\n```javascript\r\n$http.jsonp(\"http://example.com?callback=JSON_CALLBACK(myFunction)\").success(...)\r\n```\r\n\r\nWill always request\r\n```\r\nhttp://example.com?callback=angular.callbacks.myFunction\r\n```\r\n', '18', null, null, 'ricardohbin', '2013-06-26T19:22:26Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2540', '37', '3075', 'Update documentation for the mock $httpBackend', 'The example either does not work with the latest version of angular.js or it is unclear. Many comments on the documentation page for $httpBackend indicate that it is unclear. By looking at other sources I identified the issues and made some changes to make the example code work.', '2', null, null, 'michael-younkin', '2013-06-26T21:31:17Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2541', '37', '3077', 'Altered description of input(name) selector', 'Altered the description of the input selector in order to make it\'s use clearer. The original description made it seem that you were selecting an input element based upon it\'s name attribute. In reality, you are selecting an element by the ng-model name.\r\n\r\nThis became apparent when running new E2E tests. E2E spec file and a print out from my E2E tests available below. \r\n\r\nE2E spec \r\n```javascript\r\ninput(\'merchant\').enter(\'bob\');\r\n```\r\n\r\nError message printout from console. \r\n```\r\n input \'merchant\' enter \'bob\'\r\n Selector [ng\\:model=\"merchant\"] did not match any elements.\r\n```', '2', null, null, 'Gwash3189', '2013-06-26T23:24:51Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2542', '37', '308', 'Fix typo', 'Just getting started. I noticed an issue with the documentation and decided to try out contributing via github. Not too difficult.', '1', null, null, 'eljobe', '2011-03-20T13:58:15Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2543', '37', '3082', 'feat($resource): PUT/POST call should not always update the value object', 'Fixes: #1609', '11', null, null, 'RobertLowe', '2013-06-27T20:41:28Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2544', '37', '3084', 'Improved ng-class documentation', 'Many people are complaining that there isn\'t an example of how to use the \"map\" syntax. I\'ve updated `ng-class` example to use the map approach.', '16', null, null, 'xjamundx', '2013-06-27T23:18:39Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2545', '37', '3085', 'fix(jqLite): prepend array in correct order', 'Match jQuery behavior when prepending array into empty element', '9', null, null, 'joaomsa', '2013-06-28T03:55:54Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2546', '37', '3086', 'fix($sniffer): olders Android/Phonegap transitions/animations detection', 'The stock Android browser doesn\'t support the current for-in body/style detection but we can manually fix this.\r\nThis is useful for Phonegap webviews or traditionnal webapps using the stock browser.', '11', null, null, 'revolunet', '2013-06-28T10:07:03Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2547', '37', '3089', 'Element data missing during $destroy', 'Changed the scope destroy to occur before the element is removed\r\nfrom the DOM. This will ensure that things like the element.data()\r\nstructure aren\'t destroyed before scope.$destroy() is called.\r\n\r\nRelated to issue https://github.com/angular/angular.js/issues/2658', '4', null, null, 'rwlogel', '2013-06-28T16:36:28Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2548', '37', '309', 'Fix link', 'Just fixing a couple of broken links in the docs.', '1', null, null, 'eljobe', '2011-03-20T16:50:46Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2549', '37', '3092', 'test($compile): use FQDN for img[src]', 'img[src]=\"https://foo\" has the unfortunate problem that the browser will\r\nactually try retrieving the resource the non FQDN foo. The local DNS\r\nmight suffix a domain to this, resolve it, and try to present a\r\ncertificate for the https request and prompt the user to pick a\r\ncertificate. This commit avoids that by making foo a FQDN. Note that it\r\nmight be better to replace foo with example.com (ref\r\nhttp://tools.ietf.org/html/rfc2606#section-3).', '0', null, null, 'chirayuk', '2013-06-28T20:13:32Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2550', '37', '3093', 'chore(gitignore): add .agignore', 'I use a .agignore file to skip the build directory and some other files\r\nwhile searching using Ag (see\r\nhttps://github.com/ggreer/the_silver_searcher).', '0', null, null, 'chirayuk', '2013-06-28T20:13:35Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2551', '37', '3094', 'Travis & Karma & Sauce (stable branch)', 'Just wanna see travis build before mergning it in...', '0', null, null, 'vojtajina', '2013-06-28T23:38:04Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2552', '37', '3095', 'feat(minErr): Error stripping build step', 'This is the new build step using our enhanced version of Closure Compiler.', '6', null, null, 'ksheedlo', '2013-06-28T23:55:58Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2553', '37', '3096', 'Animator revamp', 'This is a huge PR for some animation changes. Everything is complete.\r\n\r\nFor now there are three small commit and one big one.', '25', null, null, 'matsko', '2013-06-29T00:20:04Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2554', '37', '3097', 'Update Angular.js toJson documentation', 'I included in angular.toJson\'s description that any properties with a leading \'$\' character will be stripped from the result since angular uses this notation internally for services. There have been complaints of not knowing about this functionality until it breaks within their code. It would be a nice addition to avoid any confusion in the future.\r\n\r\nAn example of a documentation update request is within a comment in issue #1463.', '1', null, null, 'spencerapplegate', '2013-06-29T03:01:36Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2555', '37', '3099', 'feat($parse): implementation of $parse on ngModelController', 'This addition that promotes code reuse and executing parsers from parent/sibling models. it\'s merely an exposed function that was took from inside the `$setViewValue`. It\'s useful to execute the parsers from the current ngModel $viewValue or an arbitrary string, without messing with the `$viewValue` and `$modelValue`, without triggering the events that `$setViewValue` triggers.\r\n\r\nFor example:\r\n\r\n```js\r\nvar test = angular.module(\'test\', []);\r\ntest.directive(\'test\', function(){\r\n return {\r\n \'require\': \'ngModel\',\r\n \'link\': function($scope, $el, attrs, model){\r\n model.$parsers.push(function(value){\r\n return value.replace(/-/g, \'|\');\r\n });\r\n model.$setViewValue(\'loop-hole\');\r\n }\r\n };\r\n});\r\n\r\ntest.directive(\'test2\', function(){\r\n return {\r\n \'require\': \'ngModel\',\r\n \'template\': \'<input type=\"button\" data-value=\"{{x}}\" value=\"{{$parent.value}}\">\',\r\n \'link\': function($scope, $el, attrs, model){\r\n $scope.x = \'\';\r\n\r\n $el.on(\'click\', function(){\r\n $scope.x = model.$parse($el.val()); // arbitrary value, if the value is COOL-GANG, it returns to COOL|GANG\r\n //$scope.x = model.$parse(); // current $viewValue, loop-hole, that returns loop|hole, which is obviously the current $modelValue, so not much of use\r\n });\r\n }\r\n };\r\n});\r\n```', '3', null, null, 'pocesar', '2013-06-30T07:29:02Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2556', '37', '31', 'disable ng:click propagation', '', '1', null, null, 'IgorMinar', '2010-09-30T23:36:20Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2557', '37', '310', 'Fix di doc', 'Fixes some typos in the Dependency Injection docs. I wasn\'t 100% sure of the original authors intended formatting for the EXPERIMENTAL: notice at the bottom, so I just did what I thought looked better. The other fixes, I think, actually represent bone fide errors.', '1', null, null, 'eljobe', '2011-03-21T04:50:52Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2558', '37', '3101', '$cacheFactory docs: Show that you can access existing caches', '...with a concise tested code sample, etc.', '2', null, null, 'itamarro', '2013-06-30T18:29:03Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2559', '37', '3105', 'chore: speed up travis build', '- cache requests (e2e tests)\r\n- parallelize the tasks\r\n\r\n**This reduces the total time from ~18min to ~12min.**\r\n\r\nOnce we migrate e2e tests to Protractor, we will parallelize them too.\r\n\r\nIt makes the output little less nice. I could easily buffer output and display it nice, but I think it\'s more helpful to get quick feedback.', '2', null, null, 'vojtajina', '2013-07-01T23:23:38Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2560', '37', '3107', 'fix($injector): refactor module loading code and use minErr', '', '2', null, null, 'IgorMinar', '2013-07-02T00:23:55Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2561', '37', '3108', 'Documentation fix  $locationProvider.hashPrefix is a setter function not a property.', 'The example code for `$location` incorrectly assigns to `$locationProvider.hashPrefix` instead of calling it as a setter property.', '1', null, null, 'niallsmart', '2013-07-02T02:51:40Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2562', '37', '3113', 'feat(ngInclude): Added support for selectors #2994', 'Implements optional selector appended to src. If selector is found, uses .find(selector) to filter the result. Because Angular\'s jqLite/element .find() API, only element-name selectors are available unless jQuery is available with its enhanced .find() API.', '5', null, null, 'dhbaird', '2013-07-02T17:59:44Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2563', '37', '3115', 'feat(ngForm): Supports expressions in form name', 'Now it is possible to access a form from a controller using the new `controller as` syntax, without having to access `$scope`:\r\n\r\nOld way:\r\n```html\r\n<div ng-controller=\"MainCtrl as main\">\r\n <form name=\"form\" ng-submit=\"main.submit()\">\r\n </form>\r\n</div>\r\n```\r\n...\r\n```javascript\r\n.controller(\'MainCtrl\', function($scope) {\r\n this.submit = function() {\r\n if $scope.form.$valid {\r\n // do something!\r\n }\r\n }\r\n})\r\n```\r\n\r\nNew way:\r\n```html\r\n<div ng-controller=\"MainCtrl as main\">\r\n <form name=\"main.form\" ng-submit=\"main.submit()\">\r\n </form>\r\n</div>\r\n```\r\n...\r\n```javascript\r\n.controller(\'MainCtrl\', function() {\r\n this.submit = function() {\r\n if this.form.$valid {\r\n // do something!\r\n }\r\n }\r\n})\r\n```', '11', null, null, 'damrbaby', '2013-07-02T19:44:25Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2564', '37', '3116', 'chore(travis): speed up the build', 'Just wanna see the travis build...\r\n\r\n- parallelize the tasks\r\n- cache requests (e2e tests)\r\n\r\nThis reduces the time from ~18min to ~12min.\r\n\r\nIt makes the output little messy. We could buffer output of each task and display it once it\'s fully finished, nicely. I think giving instant feedback is better.\r\n\r\nConflicts:\r\n Gruntfile.js\r\n package.json', '0', null, null, 'vojtajina', '2013-07-02T21:45:10Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2565', '37', '3118', 'fix(bower): Use latest ng-closure-runner', 'ng-closure-runner was breaking in certain situations when it failed to properly load an internal asset. The bug has been fixed upstream and now we need to bring in the updated runner.', '1', null, null, 'ksheedlo', '2013-07-02T23:24:45Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2566', '37', '312', 'Rake build needs YAML package', 'Before this, trying to `rake package`, I get (among a bunch of other stuff):\r\n\r\n rake aborted!\r\n uninitialized constant YAML\r\n /usr/local/google/home/alieuall/src/angular.js/Rakefile:183\r\n (See full trace by running task with --trace)\r\n \r\nAfter this, it builds as expected. I don\'t know any ruby or rake. This is just trial-and-error assembling knowledge from internet searches. The suggested `--trace` doesn\'t give a lot more info.', '3', null, null, 'arantius', '2011-03-21T21:15:11Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2567', '37', '3120', 'Compiler recursion fix', '', '1', null, null, 'IgorMinar', '2013-07-03T01:04:14Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2568', '37', '3122', 'feat($http): accept function as headers value', 'So we can request with dynamic header value.\r\n\r\n```javascript\r\nmodule.factory(\'Res\', [\r\n \'$resource\'\r\n \'$routeParams\'\r\n \'globalConfig\'\r\n\r\nfunction($resource, $routeParams, globalConfig) {\r\n resource(\'/url/:id\', {id: \"@id\"}, {\r\n patch: {\r\n method: \'patch\',\r\n headers: {\r\n \'Authorization\': function() {\r\n return \"token \" + globalConfig.token;\r\n }\r\n }\r\n }\r\n });\r\n}]);\r\n```', '5', null, null, 'bolasblack', '2013-07-03T07:53:05Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2569', '37', '3123', 'Doc comment to point out you cannot use `NgModelController` in a directive with an isolated scope', 'Based on experience and hard learnt fact. Wished it was mentioned in the documentation. ', '1', null, null, 'basarat', '2013-07-03T10:51:34Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2570', '37', '3125', 'Makes example directive controller minification-safe', 'I\'ve helped a few people who were stuck on minification errors with directive controller functions. Most of them are using the first example in \"Writing directives (long version)\" as a quick reference. I think it would be better to emphasize that the \"controller\" property needs to be min safe in there, rather than further down.', '4', null, null, 'AndrewO', '2013-07-03T15:52:28Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2571', '37', '3127', 'Buddist Calendar / Thai Solar Calendar support with format code bb, bbbb', 'THAI YEAR (BE.) is +543 years greater than AD. (that\'s all).\r\nhttp://en.wikipedia.org/wiki/Thai_solar_calendar\r\n\r\nMicrosoft Excel 2003 and later uses b or B for Buddhist Calendar\r\nhttp://office.microsoft.com/en-us/excel-help/format-dates-using-alternate-calendars-HP005262656.aspx', '3', null, null, 'jojosati', '2013-07-03T17:51:33Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2572', '37', '3128', 'chore(build): add check for merge conflicts, ddescribe, and iit', 'FYI, the build currently fails due to [test/ng/directive/inputSpec.js](https://github.com/angular/angular.js/blob/master/test/ng/directive/inputSpec.js#L993):\r\n\r\n```\r\nRunning \"ddescribe-iit:files\" (ddescribe-iit) task\r\n>> test/ng/directive/inputSpec.js has `xit` at line 993\r\n```', '16', null, null, 'btford', '2013-07-03T18:18:21Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2573', '37', '313', 'Fix missing semi-colons', 'Nothing serious... just few missing semi colons...\r\nSo that my eclipse will not complain...', '2', null, null, 'vojtajina', '2011-03-25T21:20:32Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2574', '37', '3135', 'feat(input): allow templates on the `name` attribute of an <input>', 'Handle the `name` attribute on an `<input>` as a template', '12', null, null, 'lgalfaso', '2013-07-04T20:06:09Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2575', '37', '3136', 'Correct verifyNoOutstandingExpectation example', 'The example provided for `ngMock.$httpBackend.verifyNoOutstandingExpectation` suggests calling `$httpBackend.verifyExpectations` which results in an error.', '1', null, null, 'mstriemer', '2013-07-04T20:09:18Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2576', '37', '3137', 'fix(ngMobile): prevent ngClick when item disabled', ' - the ngClick attribute was always triggered, regardless the ngDisabled/disabled attributes\r\n - we now check the ngDisabled status before triggering the original click event\r\n - and also check the DOM disabled attribute to be homogenous with the regular HTML disabled behavior (disable presence makes the element and click disabled)\r\n - deals with #3124 #3132 /cc @shepheb', '14', null, null, 'revolunet', '2013-07-05T00:12:47Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2577', '37', '3143', 'feat(dateFilter): Add \'EE\' formatter for shorter day string', 'Also added corresponding documentation and tests. Some applications require\r\nmore concise calendars. This will also help with directives like UI Bootstap\'s\r\nDatepicker [1], for example, which only allows you to specify the\r\n\"day-header-format\" with these pre-defined formatters.\r\n\r\n[1] http://angular-ui.github.io/bootstrap/#/datepicker', '5', null, null, 'sergiopantoja', '2013-07-05T14:07:02Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2578', '37', '3147', 'Better description of ngModel function', '\"Read a value from view.\" is ambiguous. Changed it to \"Assign a value to the expression assigned to ngModel.\"', '2', null, null, 'basarat', '2013-07-06T00:38:15Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2579', '37', '3148', 'Added support for ngModel to be used seemless with isolate scope', 'Fix for https://github.com/angular/angular.js/issues/1924 \r\n\r\nAdded implementation + Updated documentation.\r\n\r\nYou no longer need to do \r\n```html\r\n<my-component ng-model=\"$parent.my.model\"></my-component>\r\n```\r\nAnd can instead write directives using isolate scope that behave as you would expect: \r\n```html\r\n<my-component ng-model=\"my.model\"></my-component>\r\n```\r\nAdditional discussion: https://github.com/angular/angular.js/issues/1924#issuecomment-20547402\r\n', '3', null, null, 'basarat', '2013-07-06T02:35:14Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2580', '37', '315', 'Size optimization', 'decreases the final size by ~2.5%.\r\n\r\nall unit and e2e tests are still passing', '1', null, null, 'IgorMinar', '2011-03-27T06:42:32Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2581', '37', '3150', 'Ignore parameters starting with digit in $resource', 'Currently URLs like http://example.com:8080/some/path\r\ndo not work with $resource without tricks because port number\r\n:8080 is handled as path parameter. This commit changes $resource to\r\nignore parameters that start with a digit. Fixes #1243.', '3', null, null, 'jsyrjala', '2013-07-06T19:42:27Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2582', '37', '3151', 'feat(ngInclude): Added support for selectors, for issues #2994 and #946.', '', '14', null, null, 'dhbaird', '2013-07-06T21:35:41Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2583', '37', '3153', 'Fixed typo in E2E testing guide', '', '1', null, null, 'tgkokk', '2013-07-07T12:49:18Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2584', '37', '3156', 'NgModelController demo fix for html injection into contenteditable directive', 'The \'contenteditable\' div and the textarea should be passing their text values between each other not their escaped inner html. This breaks the demo as the \'required\' class is not applied when the \'contenteditable\' div is cleared.', '2', null, null, 'mjt01', '2013-07-08T06:42:53Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2585', '37', '3157', 'Update doc for filter \"number\" (default is 3 decimal)', '', '2', null, null, 'LaurentMox', '2013-07-08T09:41:12Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2586', '37', '3158', 'Small improvement of lists in index page of tutorial', 'The bullet list looks fine in the source version, but in html the line breaks get lost. I replaced the stars with a regular html unordered list', '0', null, null, 'machielg', '2013-07-08T10:07:28Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2587', '37', '3159', 'Add minErr to ngResource and ngSanitize modules', '', '1', null, null, 'petebacondarwin', '2013-07-08T13:44:28Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2588', '37', '3160', 'docs(overview) - fix typo in overview doc', 'Removed repeated \"the\" in the sentence: The input invalidates itself by turning red when you enter invalid data or leave \"the\" the input fields blank (Line 137).', '2', null, null, 'lefos987', '2013-07-08T14:52:29Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2589', '37', '3161', 'some improvements to Contributing document', '', '1', null, null, 'rctay', '2013-07-08T16:19:21Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2590', '37', '3162', 'chore(scenario): reduce duplication of Describe by Runner', 'Runner has a lot of boilerplate code to a) update current describe, and b) delegate calls to the current describe. Abstract these out with factories.\r\n\r\nBy doing so, we also prevent Runner from second-guessing Describe\'s implementation (eg. marking methods as `noop`), which breaks abstraction.\r\n\r\nAdditionally, this pull request contains a bug fix for Describe (patch 1), which was revealed now that Runner\'s wrapping of Describe was made even thinner.', '4', null, null, 'rctay', '2013-07-08T16:39:46Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2591', '37', '3166', 'fix(Travis): Temporary debugging statements to run in CI', 'I set bower to output instead of being suppressed. I also added a log statement before shell:bower starts and after it finishes.', '1', null, null, 'ksheedlo', '2013-07-09T00:58:05Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2592', '37', '3168', 'Fixed identity() documentation. Added missing \'angular\' for sample code ...', 'Added missing \'angular\' for sample code in comment.', '1', null, null, 'mavimo', '2013-07-09T06:15:41Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2593', '37', '3169', 'Added documentation to angular.valueFn function.', 'SSIA', '4', null, null, 'mavimo', '2013-07-09T06:22:34Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2594', '37', '317', 'Repeater optimizations', '', '2', null, null, 'IgorMinar', '2011-03-29T00:55:39Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2595', '37', '3170', 'fix(ngdocs): move duplicate \'class\' attribute', 'Contents of two \'class\' attributes combined into one.', '1', null, null, 'clbn', '2013-07-09T09:47:24Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2596', '37', '3176', 'Update di.ngdoc', 'minor grammar error', '2', null, null, 'fauverism', '2013-07-09T15:52:37Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2597', '37', '3177', 'docs(ngValue): added documentation for ngValue', 'Documentation for ngValue, which was added in 09e175f02cca0f4a295fd0c9b980cd8f432e722b\r\nCloses #3112', '6', null, null, 'jtymes', '2013-07-09T17:53:35Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2598', '37', '3178', 'chore(ngdoc): wrap all pages inside of a container tag for easy styling', '', '12', null, null, 'matsko', '2013-07-09T22:13:53Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2599', '37', '3179', 'fix(3100): event callback documentation fix', '[Wrong params definition in $routeChangeStart 1.1.5 doc] (https://github.com/angular/angular.js/issues/3100)\r\nThis issue was just for $routeChangeStart, but fixed the rest of them. Mapped the actual parameter name to the doc as well.\r\n', '6', null, null, 'joshball', '2013-07-09T22:23:12Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2600', '37', '318', 'make xhr.cache optionally synchronous', '- add `sync` flag xhr.cache\r\n- change ng:include to use the sync flag\r\n- change ng:view to use the sync flag\r\n\r\nThe end result is that there are fewer repaints in the browser,\r\nwhich means less \"blinking\" that user sees.', '4', null, null, 'IgorMinar', '2011-03-30T16:38:37Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2601', '37', '3184', 'fix(ngdocs): fix minor CSS issues', 'Petty style changes in CSS code.', '1', null, null, 'clbn', '2013-07-10T11:33:44Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2602', '37', '3186', 'Update dev_guide.templates.filters.creating_filters.ngdoc', 'This filter does not conditionally assign a color, only uppercase.', '1', null, null, 'sdesmond', '2013-07-10T14:28:27Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2603', '37', '3189', 'Update dev_guide.services.injecting_controllers.ngdoc', 'Clarification that the buttons needs to be clicked three times to see the effect.', '1', null, null, 'sdesmond', '2013-07-10T14:42:47Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2604', '37', '319', 'jqLlite fixes', 'bunch of fixes needed for IE and jQuery compatibility', '3', null, null, 'IgorMinar', '2011-03-31T08:48:58Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2605', '37', '3191', 'Update bootstrap.ngdoc', 'Added an example containing multiple apps in a single page which is a scenario for manual bootstrapping.', '6', null, null, 'rpanjwani', '2013-07-10T17:44:45Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2606', '37', '3194', 'fix small typo in sanitize module (singleQoutedValue, unqoutedValue)', '', '1', null, null, 'benolee', '2013-07-10T22:15:29Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2607', '37', '3195', 'Allow service factory functions to return promises', 'This change to $injector.invoke allows user-defined services to return promises from their factory functions.\r\n\r\nAny guidance is most welcome. Here\'s the motivation:\r\n\r\nI have a service that needs to do an asynchronous task before it even knows what methods it will offer (think of it like a proxy for a WSDL--defined service or something like that). I would like this to be highly re-useable (i.e. I mean \"proxy\" in the sense that I am not the author of the \"logical\" service that the users will be consuming), so I do no want users to work with their injected dependencies in a new way (e.g. promises). \r\n\r\nEnter this change-set. \r\n\r\nThe main idea is that when the injector is asked to invoke something, it should \"wait\" (via it\'s own promise) until all of the invocation\'s dependencies have been resolved before performing it so that user-land code always gets resolved services, not promises. This, of course, will allow us to write service factory functions that return promises, and thus have \"asynchronously constructed\" services. This opens the door to the use of some advanced service-level architectures.\r\n\r\nI\'m happy to work on this further (e.g. provide tests), but I would love some feedback on the bigger picture here.\r\n\r\nThanks!', '9', null, null, 'ctrahey', '2013-07-11T00:21:35Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2608', '37', '3197', 'added unit tests for PR #2835', 'this is my first unittest here - so... please someone check that it\'s good enough.', '2', null, null, 'srfrnk', '2013-07-11T08:35:35Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2609', '37', '3198', 'Fix issue with Jquery for ngMobile', 'Issue:\r\n\r\nI found that the ngClick directive does not work with touch events dispatched by JQuery.\r\nJQuery will wrap touch events, and touches can only be found on originalEvent.\r\nThe touch event handlers in ngClick directive are not using the originalEvent but event instead,\r\nso the touches these handlers use, are \'undifined\'.\r\n\r\nAlso, I found browsers are quite sensitive with touch, when I just tap on my touch screen,\r\nthe browser will dispatch \'touchstart\', \'touchmove\', and \'touchend\'. Since the touch move handler\r\nalso reset status, I never get my click handler triggered.\r\n\r\nFix:\r\n\r\nCheck if event has an originalEvent property, and use it instead if it is found.\r\nAlso I make touch end handler triggers click handler if the distance between touch start and touch end, \r\nis within MOVE_TOLERANCE.', '18', null, null, 'ethanli83', '2013-07-11T10:23:33Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2610', '37', '3202', 'Issue 1218 - src attribute doesn\'t get set to empty string when resettin...', 'Issue #1218 - src attribute doesn\'t get set to empty string when resetting', '2', null, null, 'kkartch', '2013-07-11T15:54:30Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2611', '37', '3203', 'Issue 1218 - src attribute doesn\'t get set to empty string when resettin...', 'Issue 1218 - src attribute doesn\'t get set to empty string when resetting.', '1', null, null, 'kkartch', '2013-07-11T16:32:39Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2612', '37', '3206', 'refactor(ngSanitize): simplified NON_ALPHANUMERIC_REGEXP', 'Simplifies the regex used in ngSanitize for non_alphanumeric to be more\r\nreadable by removing unnecessary escaping and improper \"or\" pipes as well\r\nas streamlining character ranges.\r\n\r\nCloses #3192 ', '8', null, null, 'JasonCust', '2013-07-11T19:00:33Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2613', '37', '3213', 'Export buildUrl in the global angular namespace', 'buildUrl could be used outside of $http too, for example if the user needs\r\nto create urls for APIs that are not natively supported in angular (EventSource for ex.)\r\n\r\npotentionally if it\'s not hidden in a closure inside $http,\r\nit might be used in other parts of angular too', '15', null, null, 'gdamjan', '2013-07-12T11:52:26Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2614', '37', '3217', 'Update di.ngdoc', 'The recommended way to add a controller should NOT be by creating a global function. Changed to use the array notation.', '1', null, null, 'sdesmond', '2013-07-12T21:32:15Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2615', '37', '3219', 'feat(ngMobile): trigger ngClick event on element', 'With this patch, people can bind to the \'ngClick\'\r\nevent in directives so that they can run code\r\non the non native mobile tap/click event which\r\nis controlled by the click directive from the\r\nngMobile module.\r\n\r\nFixes #3218', '3', null, null, 'cburgdorf', '2013-07-13T00:26:50Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2616', '37', '3220', 'Pr 2223', '', '3', null, null, 'chirayuk', '2013-07-13T00:34:45Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2617', '37', '3224', 'whitespace', '', '1', null, null, 'skaterdav85', '2013-07-13T22:52:49Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2618', '37', '3226', 'fixes tutorial lists markdown', 'I visited http://docs.angularjs.org/tutorial and noticed that lists were marked with * only.', '1', null, null, 'leandromoreira', '2013-07-15T00:06:48Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2619', '37', '3227', 'chore(ngdocs): remove autofocus for the filtering search', '', '1', null, null, 'matsko', '2013-07-15T00:43:08Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2620', '37', '3228', 'chore(gitignore): add libpeerconnection.log', 'Google chrome (when tested using karma) spits out a log file called libpeerconnection.log', '4', null, null, 'matsko', '2013-07-15T00:48:22Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2621', '37', '323', 'fix build for IE9', 'all unit tests now pass under IE9', '0', null, null, 'IgorMinar', '2011-04-09T07:17:30Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2622', '37', '3230', 'fix select: with ngOptions and ngMultiple', 'This is, I think, a fix for issue #2113 (https://github.com/angular/angular.js/issues/2113)\r\n\r\nPreviously, <select ngMultiple=\'...\'> would only work with hard-coded\r\n<option> elements underneath, not with ngOptions attribute. This is\r\nbecause the boolean attribute is only actually applied inside a\r\nscope.$watch, which happens after the link function for select is called.\r\n\r\nThe fix is to scope.$watch on the multiple attribute in the select\r\ndirective, and refresh the directive when it changes.\r\n\r\nThe problem is demonstrated with these two plunks:\r\nBefore patch: http://plnkr.co/edit/YCiJYpx5tq0pdc8Bp7Nb?p=preview\r\nAfter patch: http://plnkr.co/edit/hyi91xNSgg3cQ96jCBPy?p=preview\r\n\r\nI\'ve signed the online contributor licence form, but I\'m not sure how to link it with this pull request.\r\n\r\nEDIT: At least on my machine, one of the unit tests fails: \"filters date should support various iso8061 date strings with timezone as input\". It came that way when I downloaded it before I made any changes, I promise!', '5', null, null, 'KJTsanaktsidis', '2013-07-15T05:35:17Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2623', '37', '3231', 'fix($compile): remove redundant attr.specified', 'attr.specified is deprecated in Gecko 7.0 and creates unwanted\r\nwarnings on FireFox. It seems that modern browsers, but possibly not\r\nIE, only provide specified attributes when calling element.getAttributes()\r\nand so removing this is unlikely to break applications.\r\nSee https://developer.mozilla.org/en-US/docs/Web/API/Attr and\r\nhttp://msdn.microsoft.com/en-us/library/ie/ms534637(v=vs.85).aspx\r\n\r\nCloses #2160', '5', null, null, 'petebacondarwin', '2013-07-15T11:44:11Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2624', '37', '3235', 'fix(writer): fix makeDir directory tree bug', 'This fixes the bug from this morning where `writer.makeDir` was not filling in directory trees before execution finished.', '8', null, null, 'ksheedlo', '2013-07-15T21:21:09Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2625', '37', '3236', 'fix(core): parse URLs using the browser\'s DOM API', '', '27', null, null, 'chirayuk', '2013-07-15T23:01:56Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2626', '37', '324', 'Added support for clearing deferred functions.', 'This the testable angular version of window.clearTimeout().\nI returned the timeout ID from $browser.defer(), and added $browser.clearDefer(deferId).\n\nI hope it makes sense.', '4', null, null, 'idosela', '2011-04-09T20:50:58Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2627', '37', '3240', 'An template element for template support.', 'For modern browser, this is better ,and for older, the html5shiv.js is required also can use the document.createElement(\'template\'); to fix this; \r\nThx', '8', null, null, 'lichenhao', '2013-07-16T13:12:47Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2628', '37', '3243', 'test(utils): Adds a missing test for snake_case', '', '0', null, null, 'jbdeboer', '2013-07-16T17:24:34Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2629', '37', '3247', 'refactor(core): change [Angular.forEach] use for loop instead of ES5', 'Change Angular.forEach implementation to use for-loop to gain performance boost which can be seen from http://jsperf.com/foreach-vs-loop/20\r\n\r\nCloses #3221', '9', null, null, 'Dolmio', '2013-07-16T19:46:02Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2630', '37', '3248', 'fix($compile): allow data: URIs in img[src]', '', '6', null, null, 'chirayuk', '2013-07-16T19:57:47Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2631', '37', '3249', 'Improve location service to allow domain specific usernames and ! in password in url passthrough', 'This is a small improvement to the regex SERVER_MATCH that will allow\r\nangular to process urls with domain specific usernames and passwords\r\nwith hashbang like below:\r\n\r\nhttp://domain&c5username:password!@192.168.1.1/#home\r\n\r\nOtherwise, a JS error occurs because regex doesn\'t match route and\r\nframework doesn\'t execute request.', '2', null, null, 'neenhouse', '2013-07-16T21:47:44Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2632', '37', '3250', 'docs(filters): close parenthesis and remove quote', 'add a missing closing parenthesis and removing unnecessary quote', '4', null, null, 'brunocoelho', '2013-07-16T23:22:18Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2633', '37', '3251', 'Added support for numerical ngTrueValue and ngFalseValue attributes', 'feat(ng): support for numerical ngTrueValue and ngFalseValue attributes\r\n\r\nCheckbox input fields may now be declared with numerical ng-true-value and ng-false-value settings.\r\nThe input\'s corresponding model will be interpreted as a number rather than a string representation.\r\nRegular string configurations which do not parse as numbers will be treated as before.\r\n\r\nBREAKING CHANGE: numeric values for ngTrueValue and ngFalseValue attributes are\r\nnow interpreted as numbers rather than their string representation. This may affect\r\ncases where a string representation of a number is expected in a checkbox field\'s\r\nassociated model and the identity operator (===) is used for comparison.\r\n\r\nTo migrate the code, make comparisons with the numerical typed value or use the\r\nequality operator (==) in place of the identity operator to ensure type invariant value\r\ncomparison.\r\n\r\nBefore:\r\n\r\n```\r\n if(scope.value === \'1\') {\r\n ...\r\n }\r\n```\r\nAfter:\r\n```\r\n if(scope.value === 1) {\r\n …\r\n }\r\n // or\r\n if(scope.value == 1) {\r\n ...\r\n }\r\n // or\r\n if(scope.value == \'1\') {\r\n ...\r\n }\r\n```', '18', null, null, 'simonsparks', '2013-07-17T09:58:28Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2634', '37', '3254', 'fix(ngIf): destroy scope before removing element', 'Sometimes you want to work with the element that is being destroyed\r\nfrom inside the $destroy handler for the scope. For instance you may\r\nwant to unbind a rd party library from an element. If the element is\r\nalready removed from the DOM before the $destroy handler is called\r\nthen you can no longer get hold of the element by id, for instance.\r\n\r\nCloses #3237', '4', null, null, 'petebacondarwin', '2013-07-17T12:18:07Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2635', '37', '3255', 'Update cacheFactory.js', 'Add examples for $templateCache', '1', null, null, 'sdesmond', '2013-07-17T14:46:25Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2636', '37', '3256', 'fix(jqLite): support space-seperated events in off', 'jqLite.on/bind supported eventNames seperated by spaces, but jqLite.off/unbind didn\'t.', '4', null, null, 'ajoslin', '2013-07-17T15:40:37Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2637', '37', '3258', 'docs(minErr): Build minErr doc site', 'The minErr doc site is ready for review. \r\n\r\nChanges in this PR:\r\n\r\n- Include ngdoc files for each minErr that we throw in angular core\r\n- Extend ngdoc parser to handle new ngdoc type\r\n- Rearrange page headers for ALL of docs.angularjs.org\r\n - The \"view source\" and \"improve this doc\" buttons have been moved above the header\r\n - The module note has been moved from a h1 level span to a subheading\r\n - This was done because minErr pages tend to have longer headers\r\n- Add `minerrDisplay` attribute directive to interpolate minErr parameters\r\n- Display minErr types in namespaces under docs.angularjs.org/minerr/ (like API modules)\r\n- Add rewrite rule to make /minerr/ accessible from `grunt webserver`\r\n', '18', null, null, 'ksheedlo', '2013-07-17T20:34:40Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2638', '37', '3261', 'chore(ngdocs): fix improve button overlap', '', '2', null, null, 'matsko', '2013-07-18T01:19:17Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2639', '37', '3267', 'Tutorial: CSS: Preserve newlines for better readability', '', '1', null, null, 'colllin', '2013-07-18T16:08:47Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2640', '37', '3269', 'fix($sniffer): olders IOS transitions/animations detection', 'Removed the android detection because isn\'t only on old Android device, we have the same issue on IOS 5.1.1 and lower', '1', null, null, 'mamzellejuu', '2013-07-18T17:54:23Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2641', '37', '327', 'spelling fix', 'One simple fix to the spelling in some docs.', '1', null, null, 'arantius', '2011-04-15T20:02:34Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2642', '37', '3272', 'Update index.ngdoc', 'docs: change format from md to html \r\n\r\nTutorial had md formatting that wasn\'t being rendered in the browser. Added some html tags to fix.', '4', null, null, 'naomiblack', '2013-07-18T18:37:33Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2643', '37', '3277', 'test(ngRepeat): add a test for ngRepeat when using \'track by\' and a filter', 'Addresses issue #3019.', '1', null, null, 'btford', '2013-07-18T21:23:03Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2644', '37', '3278', 'fix($parse): unwrap promise when setting a field', 'This fixes an inconsistency where you can\'t call the setter function\r\nwhen the expression resolves to a top level field name on a promise.\r\n\r\nSetting a field on an unresolved promise will throw an exception. (This\r\nshouldn\'t really happen in your template/js code and points to a\r\nprogramming error.)\r\n\r\nCloses #1827', '4', null, null, 'chirayuk', '2013-07-18T22:24:55Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2645', '37', '3279', 'docs(ngRepeat): add example for filters in conjunction with `track by`', 'Refer issue #3019', '3', null, null, 'pdf', '2013-07-19T01:46:15Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2646', '37', '328', 'New paragraph for ng:autobind', 'I felt the ng:autobind could use another paragraph explaining the need for ng:autobind. It was one of the first things that struck my curiosity when I looked at Angular: why do we need to specify ng:autobind at all? The paragraph simply explains that Angular doesn\'t want to assume you always want to process the entire document when its script source is loaded.', '3', null, null, 'ctataryn', '2011-04-16T19:29:33Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2647', '37', '3280', 'Spelling fixes for documentation and JSDoc corrections', 'I fixed a lot of spelling errors as I was going through some documentation tonight. Also corrected a few JSDoc\'s that didn\'t have parameter specifications or had incorrect spec\'s.', '5', null, null, 'carldanley', '2013-07-19T03:05:21Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2648', '37', '3282', 'feat ngRepeat: add $even and $odd properties to iterator', 'When iterating, odd/even status is often nice to to have readily available in a\r\nhighly readable way.\r\nThese properties are not coupled to using CSS classes in the way of ngClassEven\r\nand ngClassOdd directives.', '9', null, null, 'npup', '2013-07-19T15:05:35Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2649', '37', '3284', 'Fix input [number] example', 'The input [number] error spans did not show on the example, as they were relying on an non-existing property (myForm.list.$error) vs the working property (myForm.$error)', '5', null, null, 'jfache', '2013-07-19T17:14:04Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2650', '37', '3285', 'feat(ngSanitize): linky does not sanitize when used in ngBindHtml directive', 'Look at the top comment here: http://docs.angularjs.org/api/ngSanitize.filter:linky\r\n\r\n... and here is a demo of the undesirable behavior: http://jsfiddle.net/5uSnj/\r\n\r\nThe purpose of this pull request is to hopefully push this issue further along and gain some attention.\r\n\r\nThe attached code creates a new directive which calls the htmlParser with a new argument to \'linkify\' URLs that are not already wrapped in an &lt;a> tag. I am not very experienced with AngularJS and JavaScript, so this is probably not The Best approach. There must be some way to simply use the ngBindHtml directive with the linky filter for the desired behavior.\r\n\r\nThanks!\r\nBrian\r\n', '5', null, null, 'brooksbp', '2013-07-19T17:37:31Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2651', '37', '3289', 'docs(ngController): remove obsolete mention of scope as `this` in contro...', '...ller\r\n\r\nControllers are now (since angular 1.0) instantiated as regular constructors, and the scope is injectable as $scope rather than being referenced as `this` in controller methods.', '3', null, null, 'vin', '2013-07-21T00:30:45Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2652', '37', '329', '$route service should reload controllers only if hashPath changes', '', '4', null, null, 'IgorMinar', '2011-04-18T16:17:34Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2653', '37', '3291', 'chore($apply): use minErr to throw exception', '', '11', null, null, 'cironunes', '2013-07-21T13:52:08Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2654', '37', '3292', 'chore(ngMock): remove jstestdriver', '- actually, removing jstestdriver we\'re fixing breaking test of publishing dump on window', '2', null, null, 'cironunes', '2013-07-21T14:54:01Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2655', '37', '3293', 'docs($window): improve style and clarify wording', '', '2', null, null, 'davesque', '2013-07-21T17:45:48Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2656', '37', '3294', 'feat(): added scope as an optional argument to $timeout()', 'This isn\'t a complete request yet, but I\'m curious to see if there\'s any interest.\r\n\r\nIt would be nice if $timeout could be passed a scope to run $apply() on, rather than always using $rootScope. I think this would help performance in larger apps(?). Of course, this is doable by hand in your own code, but this makes it more convenient / less verbose.\r\n\r\n```javascript\r\napp.controller(\'SomeCtrl\',function($scope,$timeout){\r\n ...\r\n $timeout( doSomething, 1000, true, $scope );\r\n ...\r\n});\r\n```\r\n\r\nI think it could also be the 3rd argument, rather than the 4th. `true` could mean use $rootScope, `false` would mean don\'t call $apply, and and passing a scope would call $apply on that scope.\r\n\r\n```javascript\r\n$timeout( doSomething, 1000, $scope );\r\n```\r\n\r\nThoughts?', '1', null, null, 'bwiklund', '2013-07-22T04:46:46Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2657', '37', '3295', 'Allow service factory functions to return promises', 'Here is a cleaned up PR for allowing User-Defined Services to be promise-fulfilled.\r\n\r\nThe original PR (Which I subsequently ruined with sloppy Giting... oops) is here: https://github.com/angular/angular.js/pull/3195\r\n\r\nThis PR includes docs changes as well as unit tests in addition to moving some of the logic into $q.all() as suggested.\r\n\r\nPlease see discussion on the old PR, and as always don\'t hesitate to take me to school ;-)', '20', null, null, 'ctrahey', '2013-07-22T07:55:53Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2658', '37', '3297', 'Added missing seed app link to menu in docs', 'On angularjs.org, under learn there is a link to the seed app. This link was missing from the menu on docs.angularjs.org.', '1', null, null, 'richardjohn', '2013-07-22T11:45:03Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2659', '37', '330', 'Leave trailing slashes in $resource routes in some situations', 'This changes how $resource routes are generated by removing the / before an empty URL parameter instead of removing trailing slashes always.\r\n\r\n', '5', null, null, 'groner', '2011-04-20T18:26:30Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2660', '37', '3300', 'Update cacheFactory.js', 'Corrected spelling.', '1', null, null, 'sdesmond', '2013-07-22T16:08:20Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2661', '37', '3301', 'Fix for PR 2738', '', '3', null, null, 'IgorMinar', '2013-07-22T16:39:35Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2662', '37', '3302', 'Make $urlUtils public and add a resolve callback', 'The resolve callback allows the application code to modify the\r\nresolved url before it is normailzed by urlParsingNode.href for example:\r\n\r\nvar parsed = $urlUtils.resolve(\"foo\", function(urlUtils) {\r\n urlUtils.protocol =\r\n urlUtils.protocol === \'https:\' ? \'wss:\' : \'ws:\';\r\n});\r\nparsed.href // wss://localhost/foo\r\n\r\nThe resolved url object now includes the aditional properties hostname,\r\nport, pathname, hash and search.', '4', null, null, 'rzschech', '2013-07-22T17:56:47Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2663', '37', '3303', 'feat(copy, equals): copy and equals can now handle cyclic structures.', '* Copy can now accurately copy cyclic structures.\r\n* Equals can now accurately assess equality of cyclic structures.\r\n* This should enable watching of cyclic objects.\r\n\r\nEg: copy and equals should work as expected in the following:\r\n```\r\nvar obj = {name: \"value\"};\r\nobj[\'nested\'] = {self: obj};\r\n\r\nvar cpy = copy(obj);\r\nexpect(equals(obj, copy)).toBe(true);\r\nexpect(obj[\'nested\'][\'self\']).toBe(obj);\r\n```\r\n\r\nHowever, this is NOT graph copy.\r\nEg.\r\n```\r\nvar obj = {name: \"value\"};\r\nnested = {level2: \"level2\"};\r\nobj[\'nested1\'] = nested;\r\nobj[\'nested2\'] = nested;\r\nvar cpy = copy(obj);\r\nexpect(equals(obj, copy).toBe(true);\r\n\r\n//This will fail. Although they were the same\r\n//in the original object, they are distinct copies now.\r\nexpect(cpy[\'nested1\']).toBe(cpy[\'nested2\']);\r\n```', '6', null, null, 'nspaeth', '2013-07-22T18:20:20Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2664', '37', '3305', 'Under certain circumstances location.href is not defined in IE8.', 'It sometimes causes an infinite routing loop.', '6', null, null, 'vsviridov', '2013-07-22T20:43:53Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2665', '37', '3306', 'Ng bind html sce', 'Changes:\r\n- remove ng-bind-html-unsafe\r\n- ng-bind-html is now in core\r\n- ng-bind-html is secure\r\n - supports SCE - so you can bind to an arbitrary trusted string\r\n - automatic sanitization if $sanitize is available\r\n\r\nBREAKING CHANGE:\r\n ng-html-bind-unsafe has been removed and replaced by ng-html-bind\r\n (which has been removed from ngSanitize.) ng-bind-html provides\r\n ng-html-bind-unsafe like behavior (innerHTML\'s the result without\r\n sanitization) when bound to the result of $sce.trustAsHtml(string).\r\n When bound to a plain string, the string is sanitized via $sanitize\r\n before being innerHTML\'d. If $sanitize isn\'t available, it\'s logs an\r\n exception.', '1', null, null, 'chirayuk', '2013-07-22T23:47:11Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2666', '37', '331', 'Scope', '', '2', null, null, 'mhevery', '2011-04-20T21:28:12Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2667', '37', '3313', 'docs(bootstrap): Note that ngScenario requires ngApp', 'ngScenario expects an ngApp directive to be used, and doesn\'t work for\r\nmanually bootstrapped apps. The failure mode is to hang on navigation.\r\n\r\nTrying to make this wont-fix bug less obscure by documenting it.\r\nEventually Protractor will replace ngScenario and fix this.', '1', null, null, 'shepheb', '2013-07-23T17:49:55Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2668', '37', '3314', 'fix($$urlUtils): remove dependency on $window', '$window may be mocked out in tests causing those tests to fail. So\r\ndon\'t use $window.', '4', null, null, 'chirayuk', '2013-07-23T18:05:34Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2669', '37', '3318', 'fix(ngMock): allow $timeout.flush to check against the timeout delay', '', '2', null, null, 'matsko', '2013-07-24T03:48:53Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2670', '37', '332', 'Fix some typos, missing semi-colons, etc...', 'Nothing serious. I have just cherry-picked some commits from my jstd-adapter branch, as these commits are not related to jstd...\r\n\r\nThis is a combination of 3 commits:\r\n* Fix some small typos, missing semi-colons, etc.\r\n* Fix comment for angular.scenario.SpecRunner.run method\r\n* Fixed some missing semi-colons in cookbook', '1', null, null, 'vojtajina', '2011-04-22T12:25:08Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2671', '37', '3320', 'fix($location/$httpBackend): resolved Cordova/Windows Phone compatibility', '', '4', null, null, 'RobbinHabermehl', '2013-07-24T11:12:19Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2672', '37', '3322', 'describe more what the unit test does', 'The default description lacks essential information ', '1', null, null, 'Roland1975', '2013-07-24T13:53:13Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2673', '37', '3325', 'feat($location): add support for state and title in pushState', 'Adds $location pushState & replaceState methods acting as proxies to history\r\npushState & replaceState methods. This allows using pushState to change state\r\nand title as well as URL. Note that these methods are not compatible with\r\nbrowsers not supporting the HTML5 History API, namely IE<10.\r\n\r\nThis builds on work from https://github.com/angular/angular.js/pull/1675. I applied changes based on developers\' remarks, I added a few tests and fixed a couple of issues regarding the older pull request.\r\n\r\nAs for the fallback story - there isn\'t any easy fallback for browsers not supporting the HTML5 History API. It\'s possible to use a shim like https://github.com/browserstate/history.js which declares the `History` objects normalizing some stuff or to adjust it to just polyfill the `history` `pushState` and `replaceState` methods as well as the `state` property, though it would require quite significant amount of code.\r\n\r\nI\'ll repeat what I wrote in a comment in the older pull request thread: would it be possible to add this feature while making note IE9 and older are not supported with this methods? I personally work more & more on projects dumping IE8 and older completely and IE9 already has way lower market share than IE8 and it\'s going quickly down as most IE9 users are auto-updated to IE10.\r\n\r\nThis should work for Google projects as well because Google policy is to fully support only the current and previous versions of each browser and once IE11 goes out in a few months, this means dumping IE9 which makes pushState available in all supported browsers.\r\n\r\nI\'m commited to make this patch go inside Angular, our team needs it a lot. If you have any remarks/need more tests/etc., I\'ll apply the needed changes.', '22', null, null, 'mzgol', '2013-07-24T14:23:27Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2674', '37', '3326', 'add formatting', 'the string literal {{query}} was missing as it was not enclosed into ``', '1', null, null, 'Roland1975', '2013-07-24T14:32:04Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2675', '37', '3327', 'mention the controller along the scope', 'the default description can be more precise by illustrating what the controller applies to', '5', null, null, 'Roland1975', '2013-07-24T14:39:42Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2676', '37', '3330', 'feat(scenario): expose jQuery for usage outside of angular scenario', 'We are using jQuery in some custom angular scenario dsl methods. Unfortunately the jQuery included in angular-scneario is not available for us, because via noConflict() the global reference is removed and only a local reference is kept. To remove the necessity to include a second jQuery in our test setup, this commit adds a angular.scenario.jQuery variable, making jQuery available for others.\r\n\r\nI already signed the CLA. My full name is Andreas Marek.\r\n\r\nBest regards', '2', null, null, 'andimarek', '2013-07-24T19:34:42Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2677', '37', '3331', 'fix(*): protect calls to hasOwnProperty in public API', 'Objects received from outside AngularJS may have had their `hasOwnProperty`\r\nmethod overridden with something else.\r\nAlso, we may be using an object internally to store/cache a hash-map, where\r\nthe keys for the map are provided from outside AngularJS.\r\n\r\nIn such cases we must either call directly against\r\n`Object.prototype.hasOwnProperty` or provide some other way of preventing\r\nour objects from having hasOwnProperty overridden.\r\n\r\nCloses #2141', '22', null, null, 'petebacondarwin', '2013-07-24T20:46:46Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2678', '37', '3332', 'Route continues to be processed even if providing a redirectTo', 'If a route defines a redirectTo value, the current route should stop processing the route and instead wait to process the route of the redirect. \r\n\r\nCurrently, what is happening is that Angular detects a redirectTo value and updates $location, but then continues processing the route that was intended to be redirected. Templates are loaded, resolves are processed, ng-view then updates the view with a new template and instantiates the controller all for a route that should have been redirected.\r\n\r\nA common use case for assigning a function to the redirectTo is to validation authentication, permission check, or some other logic to determine if the route should continue or redirect else where. In the end, this happens, but in between, unexpected results may occur by updating the view and instantiating controllers for logic that wasn\'t expected to be executed.\r\n\r\nhttp://plnkr.co/edit/8QlA0ouuePH3p35Ntmjy?p=preview', '12', null, null, 'jardilio', '2013-07-24T20:50:33Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2679', '37', '3333', 'mention the controller along the scope', '', '1', null, null, 'Roland1975', '2013-07-24T20:57:27Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2680', '37', '3335', 'fix(ngMobile): prevent ngClick when item disabled', '- the ngClick attribute was always triggered, regardless the ngDisabled/disabled attributes\r\n - we now check the DOM disabled status before triggering the original click event\r\n - deals with #3124 #3132 /cc @shepheb\r\n - also adds `ngClick` event, replacing PR #3219, which fixes #3218.', '1', null, null, 'shepheb', '2013-07-24T22:53:04Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2681', '37', '3337', 'fix(select): don\'t support binding to select[multiple]', 'changing the type of select box from single to multiple or the other way around\r\nat runtime is currently not supported and the two-way binding does odd stuff\r\nwhen such situation happens.\r\n\r\nwe might eventually support this, but for now we are just going to not allow\r\nbinding to select[multiple] to prevent people from relying on something that\r\ndoesn\'t work.\r\n\r\nBREAKING CHANGE: binding to select[multiple] directly or via ngMultiple (ng-multiple)\r\ndirective is not supported. This feature never worked with two-way data-binding,\r\nso it\'s not expected that anybody actually depends on it.\r\n\r\nCloses #3230', '4', null, null, 'IgorMinar', '2013-07-24T23:43:55Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2682', '37', '3338', 'fix(ngMobile): Emit click event for touchy clicks', 'Previously, no handlers for the click event would be called for the\r\nfast, touch-based ngMobile clicks, only for desktop browser clicks. Now\r\nthe event will fire properly for all clicks.', '1', null, null, 'shepheb', '2013-07-25T00:22:54Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2683', '37', '3339', 'docs($animator): fix doc signature for enabled()', 'The `enabled()` method shows up incorrectly in the docs, i.e.:\r\n\r\n| Param | Type | Details |\r\n| ---------- | ------ | ----------- |\r\n| If | Boolean | provided then set the animation on or off. |\r\n\r\n...because the `@param` declaration doesn\'t have the parameter name.', '3', null, null, 'nateabele', '2013-07-25T06:32:41Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2684', '37', '3342', 'remove superfluous });', '', '2', null, null, 'Roland1975', '2013-07-25T09:22:02Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2685', '37', '3344', 'Add Example for the interpolationProvider', '', '2', null, null, 'Gillespie59', '2013-07-25T13:40:07Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2686', '37', '3348', 'chore(.gitignore): ignore npm-debug.log file', '', '1', null, null, 'matsko', '2013-07-25T17:32:42Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2687', '37', '3349', 'chore(ngdocs): replace showdown.js with marked.js', '', '2', null, null, 'matsko', '2013-07-25T18:11:59Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2688', '37', '3350', 'Added optional support for Zepto in addition to jQuery', 'This PR addresses [issue #3340](https://github.com/angular/angular.js/issues/3340), adding support for Zepto as well as jQuery.\r\n\r\nThis modification will opt for jQuery over Zepto whenever both are present.\r\n\r\nNote: This also requires a modification to karma-ng-scenario, which I will submit a PR for to pair with this PR.\r\n\r\nWarning: There may be tests/code that I did not write that should be written to account for the differences between jQuery, Zepto, and Angular, so it is possible that this is not complete - all of the current tests pass though, which otherwise break badly.\r\n\r\nThe documentation would need to be rewritten to note this feature as well.', '6', null, null, 'wesleycho', '2013-07-25T19:00:23Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2689', '37', '3351', 'feat(minErr): Include version number in prod minErr urls', '', '1', null, null, 'ksheedlo', '2013-07-25T21:38:49Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2690', '37', '3353', 'feat($rootScope): add $applyFn method for wrapping functions in $apply block', 'This PR scratches an itch I\'ve had for a while where I need to wrap a function with scope.$apply but don\'t want it to execute immediately.\r\n\r\nSomething like this:\r\n```javascript\r\nelement.bind(\'click\', function(event) {\r\n return scope.$apply(function() {\r\n // do something\r\n });\r\n});\r\n```\r\n\r\ngets simplified to:\r\n```javascript\r\nelement.bind(\'click\', scope.$bind(null, function(event) {\r\n // do something\r\n}));\r\n```\r\n\r\nEven better, if I\'m working with a class I can go from this:\r\n```javascript\r\nvar self = this;\r\nelement.bind(\'click\', function(event) {\r\n return scope.$apply(function() {\r\n return self.someMethod(event);\r\n });\r\n});\r\n```\r\n\r\nto something like this:\r\n```javascript\r\nelement.bind(\'click\', scope.$bind(this, this.someMethod));\r\n```\r\n\r\nIn addition to adding the new method, I\'ve gone through the existing code and found places that would benefit from using it. I also added tests where removing the existing $apply didn\'t produce an error. That way I could be sure the new method is doing what it should.\r\n\r\nPlease let me know what you all think. I have everything split into separate commits to make review easier. Obviously I\'d merge and add a nice commit message if accepted.', '9', null, null, 'dbinit', '2013-07-25T22:10:19Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2691', '37', '3354', 'feat(ngMobile): Emit \'swipeleft\' and \'swiperight\' events', 'Similar to ngMobile clicks, these events were not capturable by other\r\ndirectives. Now they emit \'swipeleft\' and \'swiperight\' events that can\r\nbe follow with element.on(\'swipeleft\', ...).\r\n\r\nFixes #3130.', '1', null, null, 'shepheb', '2013-07-25T22:32:23Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2692', '37', '3355', 'feat(ngMock): allow $timeout::flush to take a delay parameter', 'Allow $timeout::flush at ngMock to take a `delay` parameter that defines the time in millis that should be flushed', '2', null, null, 'lgalfaso', '2013-07-25T22:39:29Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2693', '37', '3356', 'fix(isArrayLike) Correctly detect arrayLike items', 'Change the implementation of isArrayLike to use one heavily based on the\r\nimplementation in jQuery in order to correctly detect array-like\r\nobjects, that way functionality like ngRepeat works as expected.', '10', null, null, 'dcherman', '2013-07-26T03:19:57Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2694', '37', '3359', 'Change router so route can be a callback function #2', 'Continuation from https://github.com/angular/angular.js/pull/2834', '6', null, null, 'richardcrichardc', '2013-07-26T05:25:01Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2695', '37', '336', 'Peach', 'Please pull on these...', '1', null, null, 'krculp', '2011-05-02T15:35:48Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2696', '37', '3362', 'Removed pointless line in compile.js', 'This line does not do anything within the compile function, removed it.', '3', null, null, 'wesleycho', '2013-07-26T15:50:02Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2697', '37', '3363', 'fix(docs): Fix nav list bar css', 'Fixes #3262.\r\n\r\n/cc @matsko could you take a look at this and make sure it doesn\'t break anything?', '5', null, null, 'ksheedlo', '2013-07-26T18:13:14Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2698', '37', '3365', 'fix(ngdocs): make jsFiddle and Plunkr links work with external AngularJS modules', '', '4', null, null, 'matsko', '2013-07-26T22:53:06Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2699', '37', '3366', 'fix($compile): don\'t use new with minErr', 'Someone wrote `throw new $compileMinErr(...)` when it should have been\r\n`throw $compileMinErr(...)`. This caused a build warning.', '1', null, null, 'ksheedlo', '2013-07-26T22:57:46Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2700', '37', '3367', 'chore(ngdocs): ensure that the search container shows and hides itself properly', '', '1', null, null, 'matsko', '2013-07-26T23:03:57Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2701', '37', '337', 'JSTD adapter for running e2e tests', 'Including three commits:\r\n* jstd-scenario adapter\r\n* removing HEAD requests before navigateTo\r\n* set Content-Type only for POST/PUT requests', '9', null, null, 'vojtajina', '2011-05-03T19:07:17Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2702', '37', '3372', 'clear() method added to remove all routes from $route service', '`clear()` method removes all routes already added to `$route` service.\r\nThis is useful, especially, when we need to remove all routes registered\r\nin another module on which the app module depends', '2', null, null, 'manikantag', '2013-07-27T09:23:16Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2703', '37', '3373', 'fix (compileSpec): fix spelling error in assertion (ngAttr*)', 'The string \'test2\' should be \'test3\' as \'test2\' has already been\r\ntested with the previous assertion.', '3', null, null, 'bfitzp', '2013-07-28T16:56:58Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2704', '37', '3374', 'chore(ngdocs): fixed jsFiddle/Plunkr examples to include ngAnimate and use a default App the module is not set', '', '1', null, null, 'matsko', '2013-07-28T18:04:35Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2705', '37', '3376', 'chore(ngMock): Encapsulated ngMock in module wrapper', '(I know this issue is very old, but maybe this will help spark discussion on the subject of Testing.)\r\n\r\nFixes issue #533 - encapsulate angular-mocks.js into closure (vojtajina)\r\n- Leaving mocks out of \'min\' grunt task because it probably doesn\'t belong in most production implementations of angularjs i.e. for testing purposes. Well, probably the same for the unminified version. This might spark further talk.', '2', null, null, 'ddcast', '2013-07-28T23:32:38Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2706', '37', '3377', 'feat(ngSanitize): export $htmlParser', 'htmlParser was previously private to ngSanitize. Export it as a service\r\nso others can use it if needed.\r\n\r\nCloses #3346', '4', null, null, 'natefaubion', '2013-07-29T02:18:08Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2707', '37', '3378', 'Added ability for $controller to fetch controller constructor function when expression evaluates to string in scope', 'This PR adds support for the `$controller` service to evaluate an expression in scope and fetch the appropriate controller constructor function if the evaluated expression is a string.\r\n\r\nThis addresses [#3375](https://github.com/angular/angular.js/issues/3375).\r\n\r\nExample usage:\r\n\r\n <div ng-controller=\"ExampleCtrl\">\r\n <div ng-controller=\"currentRoute.controller\">\r\n {{text}}\r\n </div>\r\n </div>\r\n\r\n function ExampleCtrl($scope) {\r\n $scope.currentRoute = {\r\n controller: \'FooCtrl\'\r\n };\r\n }\r\n\r\n function FooCtrl($scope) {\r\n $scope.text = \'Hello World!\';\r\n }', '5', null, null, 'wesleycho', '2013-07-29T05:48:07Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2708', '37', '3379', 'feat($compile): support multi-elements in all declaration styles', 'I\'ve built on the work of #2783 to make multi-elements possible in all\r\ndirective decralation styles.\r\n\r\nBasically #2783 was limited to directives declared via attributes.\r\nWith this commit, appending X-start and X-end would work\r\nin Comments, Attributes, ClassNames and ElementNames\r\n```html\r\n<table>\r\n <!-- directive: ng-repeat-start item in list -->\r\n <tr>If ngRepeat\'s \'restrict\' get changed to include \'M\'</tr>\r\n <tr>I get repeated</tr>\r\n <!-- ng-repeat-end -->\r\n\r\n <!-- the \'directive:\' part for X-end is optional -->\r\n</table>\r\n```\r\n**I will be adding tests for the compileSpec very soon, just wanted to know if it looks good for you guys.**\r\n\r\nAfter I write the tests, I also want to add `restrict: \'CMA\'` for the following directives:\r\n* ng-repeat\r\n* ng-show/ng-hide\r\n* ng-if\r\n\r\n', '7', null, null, 'rodyhaddad', '2013-07-29T06:17:18Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2709', '37', '3380', 'i18n: Updated Basque date formatting', '', '2', null, null, 'eillarra', '2013-07-29T10:18:02Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2710', '37', '3383', 'chore(bower): update to latest ng-closure-runner', 'This version does correct URL encoding of string parameters in the\r\nproduction minErr asset code.', '1', null, null, 'ksheedlo', '2013-07-29T17:40:35Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2711', '37', '3384', 'chore(bower): upgrade bower to 1.0.0', 'We explicitly set the Bower install directory to components/ for\r\ncompatibility with our existing code base. Recent Bower prefers\r\nbower_components/.', '1', null, null, 'ksheedlo', '2013-07-29T17:56:50Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2712', '37', '3388', 'fix(ngClass): ensure ngClass doesn\'t fire addClass or removeClass with an empty string', 'If ngClass fires off an add or removeClass whilst the opposite animation is going on then\r\nthe animation will be skipped. The default behavior of ngClass was executing remoteClass\r\nwith an empty string while addClass had just fired. This commit fixes that bug.', '1', null, null, 'matsko', '2013-07-29T20:27:33Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2713', '37', '3390', 'fix(bower): update bower usage and resources', 'Changes:\r\n- Fix our old code to use `bower_components/` as the install dir\r\n- Fix the Bootstrap asset to use github.com/twbs/bootstrap (it moved)\r\n- Fail the build on Bower failure. Bower should not fail silently.', '2', null, null, 'ksheedlo', '2013-07-30T00:04:41Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2714', '37', '3391', 'fix(ngShowHide): change the .ng-hide CSS class to use an !important flag', '', '2', null, null, 'matsko', '2013-07-30T00:34:21Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2715', '37', '3392', 'Update documentation to allow for minifcation-safe usage of directives', 'To avoid \"Argument type Array is not assignable to parameter type function\" validation error when using the minifcation-safe array style \r\n\r\n(eg .directive(\'myDirective\', [\'$http\',\'$timeout\',\'$compile\', function($http,$timeout $compile).... )', '0', null, null, 'OpherV', '2013-07-30T08:47:13Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2716', '37', '3393', 'refactor(ngRoute): compile the route once and reuse the regex', 'Compile the route path once and reuse it in the future\r\n', '2', null, null, 'lgalfaso', '2013-07-30T13:42:38Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2717', '37', '3395', 'chore(ngdocs): update the config block within the $routeProvider example to be more explicit.', 'The implicit `config` block here tripped up a few users in the angular IRC channel, and I\'m of the opinion that using the explicit `.config` API is more desirable in practice and in the examples :)', '6', null, null, 'davemo', '2013-07-30T16:21:05Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2718', '37', '3398', 'chore(bower): update to bower 1.0.3', '', '2', null, null, 'ksheedlo', '2013-07-30T20:22:36Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2719', '37', '3400', 'fix(resource): check whether response matches action.isArray', 'Replaces #3054', '2', null, null, 'petebacondarwin', '2013-07-30T21:53:42Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2720', '37', '3401', 'chore(bower): write grunt task for running bower', 'This PR changes the build to run `bower install` inside our own Grunt task instead of `grunt-shell`. This removes the dependency on `grunt-shell`.', '1', null, null, 'ksheedlo', '2013-07-30T22:28:35Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2721', '37', '3403', 'fix(ngMock): keep withCredentials on passThrough', 'When using passThrough() and specifying withCredentials on the $http call, the option is not passed to the underlying $httpBackend.\r\n\r\nThis commit fixes that.', '5', null, null, 'etiennebarrie', '2013-07-31T12:53:52Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2722', '37', '3408', 'Issue #1941 - This fixes an issue that can break $observe when using a directive with a templateUrl. ', 'http://plnkr.co/edit/xJNt918gEpuXR026VuZB?p=preview illustrates the issue that this pull request addresses.\r\n\r\nWhen a node is cloned because the beforeTemplateLinkNode !== beforeTemplateCompileNode condition was met, then this would cause the link functions to create a new attrs object, but by setting their last argument to \"true\" below we force them to keep the same attrs object. Without this flag the $$observers is put on the afterTemplateNodeLinkFn version of attrs and the $set is called on the beforeTemplateNodeLinkFn version of the attrs whenever we make a cloned linkNode above, thus breaking $observe. See github issue #1941\r\n\r\nI have not contributed to angular before so I imagine some testing and review is needed but I wanted to offer this patch (which resolved the problem) as a starting point.\r\n\r\nThanks.', '1', null, null, 'slundberg', '2013-07-31T19:59:56Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2723', '37', '3409', 'fix(mock.$log): keep in sync with $log', '', '0', null, null, 'chirayuk', '2013-07-31T20:37:32Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2724', '37', '3411', 'fix(re-bootstrap): Throw an error when bootstrapping a bootstrapped element', 'Nothing would prevent a user from accidentally calling angular.bootstrap on an element that had already been bootstrapped. If this was done, odd behavior could manifest in an application, causing different scopes to update the same DOM, and causing debugger confusion.\r\n\r\nThis fix adds a check inside of angular.bootstrap to check if the passed-in element already contains a class of ng-scope, and if so, will throw an error.', '13', null, null, 'jeffbcross', '2013-07-31T22:44:44Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2725', '37', '3416', 'feat($resource): add a default action \'update\' for PUT', 'PUT method should be used for updating, while POST is used for creating.', '20', null, null, 'whuhacker', '2013-08-01T10:10:37Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2726', '37', '3417', 'Select also uses the ng-model (as with input)', 'This is specified for input fields, but not for selects. This change specifies it also for select().', '1', null, null, 'joscarsson', '2013-08-01T10:39:13Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2727', '37', '3420', 'fix(ngInclude): ensure ngInclude is terminal and uses it\'s own manual transclusion system', '', '4', null, null, 'matsko', '2013-08-01T20:03:56Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2728', '37', '3421', 'fix(gruntfile): ensure all dependent grunt tasks are called for each testing task', '', '9', null, null, 'matsko', '2013-08-01T20:20:05Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2729', '37', '3422', 'fix(ngResource, core): should not deep copy the http response', '', '2', null, null, 'chirayuk', '2013-08-01T20:55:47Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2730', '37', '3423', 'docs(minErr): add minErr description for $compile:ctreq', '', '11', null, null, 'btford', '2013-08-01T21:23:53Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2731', '37', '3426', 'docs(minErr): add minErr description for jqLite:nosel', '', '2', null, null, 'btford', '2013-08-01T21:53:31Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2732', '37', '3427', 'docs(minErr): add minErr description for $compile:tpload', '', '2', null, null, 'btford', '2013-08-01T22:22:25Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2733', '37', '3428', 'fix(docs): handle the empty string in errorDisplay', '', '2', null, null, 'ksheedlo', '2013-08-01T22:30:04Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2734', '37', '3429', 'docs(mirErr): add a description for $parse.isecfld', '', '2', null, null, 'jbdeboer', '2013-08-01T22:39:56Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2735', '37', '3430', 'docs(minerr): fill in error message descriptions', 'Errors I\'ve documented so far:\r\n- `$injector:cdep`\r\n- `$injector:itkn`\r\n- `$injector:modulerr`\r\n- `$injector:nomod`\r\n- `$injector:pget`\r\n- `$injector:unpr`\r\n- `ng:areq`\r\n- `ng:cpi`\r\n- `ng:cpws`\r\n- `ngModel:noass`\r\n\r\nThis is an incomplete list and should be considered a WIP until the team has gone through the error doc spreadsheet.', '28', null, null, 'ksheedlo', '2013-08-01T22:46:14Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2736', '37', '3431', 'error docs', '', '2', null, null, 'naomiblack', '2013-08-01T22:56:31Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2737', '37', '3433', 'docs(minerr): Adds a description for parser.lexerr', '', '1', null, null, 'jbdeboer', '2013-08-01T23:19:56Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2738', '37', '3434', 'docs(minerr): Adds a description for parser.syntax', '', '1', null, null, 'jbdeboer', '2013-08-01T23:41:13Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2739', '37', '3435', 'docs(minerr): Adds a description for parser.ueoe', '', '1', null, null, 'jbdeboer', '2013-08-01T23:41:26Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2740', '37', '3437', 'feat($compile): add animation hooks into compile when class attributes are used', '', '3', null, null, 'matsko', '2013-08-02T00:17:36Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2741', '37', '3438', 'docs(error): added description for ngSanitize/badparse.ngdoc', '', '2', null, null, 'naomiblack', '2013-08-02T00:35:04Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2742', '37', '3439', 'docs(minerr): Adds a description for ngRepeat.dupes', '', '2', null, null, 'jbdeboer', '2013-08-02T00:36:24Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2743', '37', '3440', 'docs(minerr): Adds a description for ngRepeat.iexp', '', '1', null, null, 'jbdeboer', '2013-08-02T00:36:34Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2744', '37', '3441', 'docs(minerr): Adds a description for ngRepeat.iidexp', '', '2', null, null, 'jbdeboer', '2013-08-02T00:36:42Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2745', '37', '3442', 'error docs', '', '2', null, null, 'naomiblack', '2013-08-02T00:46:35Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2746', '37', '3443', 'fix(ngAnimate): remove support for compound JavaScript selector animations', '', '2', null, null, 'matsko', '2013-08-02T02:19:26Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2747', '37', '3444', 'Fix up core $animate and ngAnimate $animate docs', '', '2', null, null, 'matsko', '2013-08-02T03:11:49Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2748', '37', '3445', 'chore(ngdocs): make sure the fold feature doesn\'t show up during page load', '', '3', null, null, 'matsko', '2013-08-02T03:27:09Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2749', '37', '3446', 'Fixes and documentation for mock.$animate', '', '2', null, null, 'matsko', '2013-08-02T03:37:02Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2750', '37', '3447', 'Improve ngClick base on discussions in issue #3198 (https://github.com/angular/angular.js/pull/3198)', 'changes:\r\n 1. in onTouchStart, only reset tapping to false if the it has moved outside the MOVE_TOLERANCE\r\n 2. abstract repeat code into a function\r\n 3. add tests for different touch scenarios\r\n', '8', null, null, 'ethanli83', '2013-08-02T03:41:56Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2751', '37', '345', 'turn on EcmaScript5 strict mode', '- add \"use strict\"; statement to the prefix file\r\n- workaround closure compiler issue that strips the \"use strict\";\r\n statement from minified code\r\n- fix single strict mode violation\r\n- party!\r\n\r\nCloses #223', '7', null, null, 'IgorMinar', '2011-05-19T07:22:23Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2752', '37', '3452', 'feat(ngMock): allow the use of a predicate to match data', 'When using $httpBackend, the data in definitions and expectations can only\r\nbe defined as a string (which must be matched exactly) or as a regexp.\r\nBoth are not very practical when it comes to matching JSON objects. This\r\ncommits adds the possibility to pass a predicate function, which should\r\nreturn a truthy value if the data matches with the expectation and a falsy\r\nvalue if it doesn\'t.', '3', null, null, 'jnizet', '2013-08-02T12:22:05Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2753', '37', '3454', 'Fix wording in \'Understanding the Controller Component\' doc', 'Fixes the wording so that it goes from:\r\n\r\n\'Do not use controllers for to run stateless or stateful code shared across controllers\'\r\n\r\nto:\r\n\r\n\'Do not use controllers for stateless or stateful code sharing across controllers\'', '3', null, null, 'Nitrodist', '2013-08-02T13:53:36Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2754', '37', '3455', 'Extended email regexp to take a 6 character TLD', 'TLD\'s currently also include 6 letter names, such as .museum and .travel\r\n(e.g. allabout.travel is a current website). \r\n\r\nThis fix allows the REGEX to parse these successfully. It does not take into account internationalised TLD\'s (such as Hong Kong\'s \"公司.香港\" TLD), but this is outside the scope of this little fix!', '7', null, null, 'neilmcgibbon', '2013-08-02T14:04:32Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2755', '37', '3456', 'add ability for \"default Model\" to resource', 'add ability for \"default Model\" on $resource so you can do nice think like that: \r\n\r\n```javascript\r\n.factory(\'User\',function($resource){\r\n var model = {\r\n contacts:[],\r\n logos:[]\r\n };\r\n var User = $resource(\'user/:id/:action\',{id:\'@_id\'},model,{\r\n get: { method:\'GET\', params:{action:\'\'} },\r\n remove:{ method:\'GET\', params:{action:\'remove\'} },\r\n save:{ method:\'POST\', params:{action:\'\' } },\r\n list:{ method:\'GET\', params:{action:\'list\'},isArray:true) }\r\n });\r\n\r\n return User;\r\n\r\n});\r\n\r\nfunction ctrl($scope,User){\r\n $scope.user = new User()\r\n}\r\n\r\n/*\r\n$scope.user = {\r\n contacts:[],\r\n logos:[]\r\n $get:function,\r\n $remove:function\r\n $save:function,\r\n $list:function\r\n }\r\n*/\r\n```\r\n\r\nso your controller not throw exception when you try to add something to array that not exsist', '5', null, null, 'perymimon', '2013-08-02T14:50:36Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2756', '37', '3458', 'fix(docs-bootstrap): Removed injector from bootstrapped docs samples.', 'This is necessary to make e2e tests pass for implementing #3411. At present, the docs are violating the rule being enforced by double-bootstrap prevention.\r\n\r\nThere\'s still some work to be done before merging:\r\n\r\n - [x] Write unit tests\r\n - [x] Implement feature\r\n - [x] Pass all new and existing tests on CI', '5', null, null, 'jeffbcross', '2013-08-02T16:25:42Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2757', '37', '3459', 'Error Descriptions', '', '1', null, null, 'mhevery', '2013-08-02T16:45:35Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2758', '37', '3460', 'refactor(parse): set values on highest possible parent', 'This is one of those PRs that I am torn about, but after seeing a lot of developers have so many WTF moments, I thought it was about time to change this\r\n\r\n\r\nWhen assigning a value on a scope, the expression is visible but not defined at the current scope then assign the value on the highest possible scope that would make the expression visible on the child scope. If the value is not defined at any scope, then the value is defined at the child scope\r\n\r\n\r\nBREAKING CHANGE: assign of values is done at the scope that has the expression definition when there is no dot notation\r\n\r\nTo force that a property is set on the current scope, prepend the expression with `this.` like the example below:\r\n\r\nBefore:\r\n <input ng-model=\"foo\">\r\n <input ng-model=\"bar.baz\">\r\n <div ng-if=\"something\">\r\n <input ng-model=\"foo\"> <!-- for some reason I want to change the value of `foo` just at this child scope -->\r\n <input ng-model=\"bar.baz\">\r\n </div>\r\n\r\n\r\nAfter\r\n <input ng-model=\"foo\">\r\n <input ng-model=\"bar.baz\">\r\n <div ng-if=\"something\">\r\n <input ng-model=\"this.foo\"> <!-- force that we use the current scope using `this` -->\r\n <input ng-model=\"bar.baz\"> <!-- this still works as before as it uses the dot notation -->\r\n </div>\r\n', '3', null, null, 'lgalfaso', '2013-08-02T17:04:13Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2759', '37', '3461', 'feat(filter): currencyFilter takes number of decimals', 'currencyFilter accepts second argument as number of decimal places', '3', null, null, 'doshprompt', '2013-08-02T19:28:54Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2760', '37', '3465', 'fix(jqLite): forgive unregistration of a non-registered handler', 'I\'ve bumped into a subtle bug when unregisering handlers with jqLite. If you try to unregister a non-existing handler by specifing both its type and a function jqLite\'s `off` will fail if there was already a different handler was registered. See the test for more details.\r\n\r\nWith jQuery this situation is handled correctly, that it, unregistration has no effect.\r\n\r\nI was hesitating a bit between fixing it in jqLite or fixing directly the `indexOf` / `arrayRemove` (in Angular.js). In any case the test illustrates my real problem, can amend the fix if needed.', '6', null, null, 'pkozlowski-opensource', '2013-08-03T16:12:43Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2761', '37', '3466', 'Re-write Gruntfile using CoffeeScript', 'Just re-writing the grunt configuration using CoffeeScript.\r\nLooks more clean.\r\nThanks.\r\n', '4', null, null, 'igorlima', '2013-08-04T03:57:08Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2762', '37', '3467', 'fix(ngView): ensure ngView is terminal and uses its own manual transclusion system', '', '3', null, null, 'matsko', '2013-08-04T15:23:24Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2763', '37', '3468', 'minor spelling fix', 'grammar. (someone must have sniped the fix i originally came here to make. (factroy -> factory)', '2', null, null, 'thegreatmichael', '2013-08-05T09:01:35Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2764', '37', '3471', 'fix(tutorial): show tutorial pages in search nav', '/cc @matsko', '5', null, null, 'ksheedlo', '2013-08-05T23:43:34Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2765', '37', '3474', 'fix(angular.copy): change angular.copy to correcly clone RegExp', 'angular.copy previously copied RegExp as an empty object. Change detects\r\nRegExp instance and clones into new RegExp. This change is based on a previous\r\nfix to allow Date to be copied.\r\n\r\nCloses #3473', '9', null, null, 'AndyHitchman', '2013-08-06T01:37:55Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2766', '37', '3475', 'fix(location): pathUrl is not containing the actual app path', 'If you refresh the browser with a valid path, the original version redirected you to the \"otherwise\" routing path. The original code only received the last part of an URI. (for example: http://server:port/admin/users/1 -> path would be /1, and not /admin/users/1) The routing worked if you started from the base path, but not always worked when you started with something different. I assume, that the pathUrl should be the part after the serverBase.\r\nI compared the code with 1.0.7, but that version did not contain these new methods, and had a different approach. (One, that worked...)\r\n\r\nhtml5Mode(true), Chrome 28', '2', null, null, 'AntiTalent', '2013-08-06T08:29:41Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2767', '37', '3476', 'feat($q): add shorthand for defining promise success or error handlers', 'Now we can instead this\r\n\r\n promise.then(null, errorHandler)\r\n\r\nlike this\r\n\r\n promise.catch(errorhandler)\r\n\r\nCloses #2048', '15', null, null, 'bolasblack', '2013-08-06T09:53:14Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2768', '37', '3481', 'fix(routeProvider): route matcher should fill parameters or fail', 'Currently, a `$routeProvider` configured like so:\r\n\r\n```\r\n$routeProvider\r\n .when(\'/pages/:page/*comment\', {template: \'comment\'})\r\n .when(\'/pages/:page\', {template: \'page\'})\r\n .when(\'/pages\', {template: \'index\'});\r\n```\r\n\r\nWould never reach any of the \'page\' or \'index\' routes unless they are defined in reverse order. Given that ordering of route matching is not guaranteed to be the same as the definition of `when`s, a fix could be the one in this PR.\r\n\r\nWith this PR, a route containing parameters __must__ be able to give a value to all parameters to match.\r\n\r\n:bangbang: This creates _breaking change_ where locations like `/page/` will __not__ match the route `/page/:id`.', '1', null, null, 'thenikso', '2013-08-06T15:46:23Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2769', '37', '3483', 'Fix translations for locale hr-hr and hr', 'Wrong cases for months in croatian language have been fixed, in order to show the months correctly in a calendar.', '6', null, null, 'ameralimanovic', '2013-08-06T18:19:33Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2770', '37', '3484', 'chore(ngAnimate): fix incomplete animation test', '', '1', null, null, 'matsko', '2013-08-06T18:20:48Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2771', '37', '3485', 'fix(ngAnimate): make sure that the class value passed into addClass/removeClass is the base class string value', 'When the animation `addClass` or `removeClass` callback functions were called, they were passing in `CLASS-add` and `CLASS-remove` into the functions. This is incorrect, it should just be `CLASS`.\r\n\r\nTo make the fix, some of the code inside of `animate.js` had to be changed around to avoid redundant code. `animation()` was changed `$animateProvider.register` within the animate.js file.', '1', null, null, 'matsko', '2013-08-06T18:44:19Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2772', '37', '3488', 'test(matchers): support \'not\' text in toBeHidden matcher', '', '0', null, null, 'chirayuk', '2013-08-07T04:54:34Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2773', '37', '3489', 'fix(compile): fix directive as identifier', '', '1', null, null, 'chirayuk', '2013-08-07T04:56:42Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2774', '37', '3491', 'Allow directive\'s bi-directional isolate scope to do deep equality check', '### Background\r\n\r\nConsider the following directive:\r\n\r\n```js\r\nmyApp.directive(\'listUsers\', function() {\r\n return {\r\n restrict: \'E\',\r\n template: \"<ul><li ng-repeat=\'user in users\'>{{user.name}} - {{user.age}}</li></ul>\",\r\n scope: {\r\n users: \'=\'\r\n }\r\n };\r\n});\r\n```\r\n\r\nIt sets up bi-directional binding to the parent scope\'s `users` property that it receives via an attribute. In this particular situation, it expects an array of user objects and lists user names and their respective ages.\r\n\r\nWe could use this directive like so.\r\n\r\n```html\r\n<div ng-init=\"users = [{name: \'Mark\', value: 42}, {name: \'Misko\', value: 55}]\">\r\n <list-users users=\"users\"></list-users>\r\n</div>\r\n```\r\n\r\nEverything works just fine. At least until we decide to use a filter.\r\n\r\n```html\r\n<div ng-init=\"users = [{name: \'Mark\', value: 42}, {name: \'Misko\', value: 55}]\">\r\n <input type=\"text\" ng-model=\"query\">\r\n <list-users users=\"users | filter:query\"></list-users>\r\n</div>\r\n```\r\n\r\nIf you look in the browser console, you will see something along the lines of: `10 $digest() iterations reached. Aborting!`\r\n\r\nThe problem is that `filter`, along with many other functions that mutate arrays, return a copy and not the original array. During the $digest [comparison step](https://github.com/angular/angular.js/blob/master/src/ng/rootScope.js#L527-L530), the array value is deemed as changed (since a new reference is returned even though the actual elements in the array have not changed) and the watchers are called again and again.\r\n\r\n### Proposition\r\n\r\nAllow optional \"deep\" equality checks on bi-directional scope values to avoid unnecessary digests.\r\n\r\nThis pull request introduces an optional argument, `*`, that can be passed to a directive\'s scope definition. When passed, a deep [equality](https://github.com/angular/angular.js/blob/master/src/Angular.js#L682) check will be forced when determining if watcher value has changed.\r\n\r\nNow, the example above will work properly with just a minor tweak to the directive\'s scope definition:\r\n\r\n```js\r\nmyApp.directive(\'listUsers\', function() {\r\n return {\r\n ...\r\n scope: {\r\n users: \'=*\'\r\n }\r\n };\r\n});\r\n```', '13', null, null, 'pheuter', '2013-08-07T15:44:46Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2775', '37', '3496', 'chore(bower): add a .bowerrc file', 'Having a `.bowerrc` file somewhere in the local directory structure above angular leads to incorrect bower component installation.', '2', null, null, 'jankuca', '2013-08-07T20:52:21Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2776', '37', '3497', 'feat($controller): support controller resolution via $provide', 'The patch extends the resolution strategy used by $controller to also search for controllers registered via $provide.\r\n\r\nUsing $provide gives developers more flexibility in how controllers are configured and created (it also seems more internally consistent to use Angular\'s own dependency resolution framework for controller resolution.)\r\n\r\nIncludes updated ngdoc for $ng.$controller I\'m happy to add an update for the guide too, just LMK.', '4', null, null, 'niallsmart', '2013-08-07T21:25:47Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2777', '37', '3498', 'docs(ngModel): $setViewValue does not check validity before updating model', '\r\nRemoves an incorrect assertion in the docs for $setViewValue. It actually updates the model regardless of the control validity.', '10', null, null, 'niallsmart', '2013-08-07T22:05:45Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2778', '37', '3499', 'docs(minerr): add description for $rootScope:infdig', 'This has verbal lgtm from igor. I\'m merging it immediately and leaving the PR for the record.', '2', null, null, 'ksheedlo', '2013-08-07T22:25:19Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2779', '37', '3500', 'refactor(ngRoute): make the order of route matching deterministic', 'Previously, routes were matched against the current $location in an arbitrary\r\norder. This change ensures that routes are matched in the order they were\r\noriginally configured, making it possible to specify overlapping path\r\ncomponents which are fixed in some routes and variable in others. For example,\r\n\r\n $route.when(\'/Book/new\', ...);\r\n $route.when(\'/Book/:bookId\', ...);\r\n\r\ncan now be used to ensure that a different route configuration is used for\r\nnew books and for existing ones.', '10', null, null, 'notNotDaniel', '2013-08-07T23:07:40Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2780', '37', '3501', 'fix(jqLite): throw when jqLite#off called with 4 args', 'This fixes the bug identified in my [comment](https://github.com/angular/angular.js/commit/f1b94b4b599ab701bc75b55bbbbb73c5ef329a93#commitcomment-3800998) from yesterday.', '1', null, null, 'ksheedlo', '2013-08-08T05:02:32Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2781', '37', '3507', 'docs(minerr): add description for $compile:utrat', '', '1', null, null, 'ksheedlo', '2013-08-08T17:31:47Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2782', '37', '3509', 'docs(minerr): add description for ngResource:badcfg', '', '1', null, null, 'ksheedlo', '2013-08-08T17:46:11Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2783', '37', '3510', 'docs(minerr): add description for ngResource:badargs', '', '1', null, null, 'ksheedlo', '2013-08-08T18:04:22Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2784', '37', '3513', 'fix(docs/error): make minerr ids searchable', '', '1', null, null, 'ksheedlo', '2013-08-08T22:48:08Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2785', '37', '3514', 'fix(compile): fix directives with controller, templateUrl and compile properties', 'This PR addresses the following JSBin: http://jsbin.com/azomeh/9/edit\r\n\r\nDirectives combining templateUrl and a controller were not getting compiled correctly. The second call to `applyDirectivesToNode` was being made with the `controller` property of the directive set to `null` which made it impossible for the compiler to find the controller constructor function.', '8', null, null, 'jankuca', '2013-08-08T23:08:56Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2786', '37', '3515', 'Animation Guides + Tutorial', '', '3', null, null, 'matsko', '2013-08-09T04:46:34Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2787', '37', '3516', 'feat(ngSwitch): Allow multiple case matches for one element', 'Now you can also use an array in `ng-switch-when`, which allows specifying multiple values for the same element. Values will be evaluated within the scope when using the array notation.\r\n\r\nI.e. `ng-switch-when=\"[1, 3, \'hello\', 5-3]\"`\r\n\r\nEach element will switch only once even if there are multiple matches in the same element.\r\n\r\n**BREAKING CHANGE:** Previously `ng-switch-when` expressions that matched against square brackets strings won\'t work anymore. The fix is encapsulate the string into a one-element array.\r\nI.e. before `ng-switch-when=\'[hi]\'`, now `ng-switch-when=\"[\'[hi]\']\"`\r\n\r\nCloses #3410', '16', null, null, 'lrlopez', '2013-08-09T09:32:47Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2788', '37', '3517', 'chore($compile): use minErr on \"as instance\" syntax', 'This should take one of the `minall` task warnings away.', '1', null, null, 'lrlopez', '2013-08-09T10:17:57Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2789', '37', '3518', 'docs(httpBackend): update documentation for expect methods', '`expect` methods can receive an Object as the data parameter, which was undocumented.', '3', null, null, 'santialbo', '2013-08-09T10:37:41Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2790', '37', '3522', 'Prevent infinite digest error in IE7', 'Refactored the replacedUrl variable to store the new URL on both\r\nlocation.replace and setting location.href directly to handle delays in\r\nactual location value change in IE.\r\n\r\nCloses #2802 ', '12', null, null, 'angelcabo', '2013-08-09T14:44:34Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2791', '37', '3524', 'chore($q): rename `promise.always` to `promise.finally`', '', '5', null, null, 'btford', '2013-08-09T16:49:30Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2792', '37', '3525', 'docs(ngModel): validators should return undefined for invalid values.', 'Per comments in https://github.com/angular/angular.js/pull/3498, clarifies that validators are responsible for returning `undefined` for invalid values.', '2', null, null, 'niallsmart', '2013-08-09T16:58:43Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2793', '37', '3526', 'chore(ngMobile): rename to ngTouch', '', '1', null, null, 'btford', '2013-08-09T17:26:27Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2794', '37', '3527', 'style(minerr): prefer component name as namespace', '', '1', null, null, 'ksheedlo', '2013-08-09T18:16:18Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2795', '37', '3533', 'refactor(location): $location now uses urlUtils, not RegEx', 'The location service, and other portions of the application, were relying on a complicated regular expression to get parts of a URL. But there is already a private urlUtils provider which relies on HTMLAnchorElement to provide this information, which is suitable for most cases. In order to make urlUtils more accessible in the absence of DI, its methods were converted to standalone functions available globally.\r\n\r\nThe urlUtils.resolve method was renamed urlResolve, and was refactored to only take 1 argument, url, and not the 2nd \"parse\" boolean. The method now always returns a parsed url. All places in code which previously wanted a string instead of a parsed url can now get the value from the href property of the returned object.\r\n\r\nTests were also added to ensure IPv6 addresses were handled correctly.\r\n\r\n## Todo\r\n\r\n - [x] Get this test passing in IE: $location HashbangUrl should not preserve old properties when parsing new url FAILED (returned URL does not have #!/ as expected)\r\n - [ ] Review all changes with Igor\r\n - [x] Whatever Mary Poppins tells me', '18', null, null, 'jeffbcross', '2013-08-09T22:15:20Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2796', '37', '3534', 'fix(ngMock): preventing minifier from breaking ngMock\'s inject', 'see https://github.com/angular/angular.js/issues/3531', '13', null, null, 'kpolitowicz', '2013-08-09T22:59:40Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2797', '37', '3535', 'fix($q): Promises should be Promises/A+ spec compliant', 'The $q promise library is not [Promise/A+](http://promisesaplus.com/) compliant.\r\n\r\nThe [spec\'s test-suite](https://github.com/promises-aplus/promises-spec) makes heavy use of Mocha\'s `done` method and would be difficult to port to jasmine. Therefore, I have added a separate karma config that runs mocha.\r\n\r\nIn addition, the spec is written for Node, and makes use of the CommonJS environment. I [forked the spec](https://github.com/promise-testing/promises-tests) and used [component](https://github.com/component/component) to make it browser friendly.\r\n\r\n', '11', null, null, 'jamestalmage', '2013-08-09T23:35:10Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2798', '37', '3536', 'chore(release): add script for comparing master and stable branches', '', '2', null, null, 'btford', '2013-08-10T00:27:35Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2799', '37', '3537', 'squash! wip', '', '2', null, null, 'chirayuk', '2013-08-10T02:56:35Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2800', '37', '3539', 'fix($q): promises should still resolve outside of the $digest/$apply phase', 'A number of issues have been raised (see #2431) because the current promise implementation has the unexpected behavior of not forwarding execution to the `onResolve` or `onReject` callbacks until the next $digest cycle, nor does it schedule a new cycle.\r\n\r\nThe currently recommended solution is to wrap all callbacks with $apply, but that is unnecessarily cumbersome (the user will almost always wants $apply called). It becomes increasingly problematic when dealing with longer promise chains, or using third party libraries that expect conventional promises as input.\r\n\r\nCloses #2431', '8', null, null, 'jamestalmage', '2013-08-10T04:38:59Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2801', '37', '3540', 'fix($compile): correct controller instantiation for async directives', 'This fixes regression introduced by #3514 (5c560117) - the regression\r\ncaused the controller to be instantiated before the isolate scope was\r\ninitialized.\r\n\r\nCloses #3493\r\nCloses #3482\r\nCloses #3537', '1', null, null, 'IgorMinar', '2013-08-10T05:30:12Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2802', '37', '3544', 'refactored Scope to DRY - extracted scope tree traversal algorithm to fn', 'For simpler maintenance, extracted algorithm into function, instead of the current comment: `// this piece should be kept in sync with the traversal in $broadcast`', '3', null, null, 'alexurdea', '2013-08-11T09:58:57Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2803', '37', '3545', 'Update module.ngdoc', 'Updated Module documentation to include the suggestion of the top-rated comment: \"This documentation should warn that \"angular.module(\'myModule\', [])\" always creates a new module, but \"angular.module(\'myModule\')\" always retrieves an existing reference.\"', '2', null, null, 'ghodss', '2013-08-11T23:03:45Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2804', '37', '3549', 'fix($scope): $evalAsync executes on the right scope', 'Executes `$evalAsync` on the scope that the call was made.\r\n\r\nCloses: #3548', '5', null, null, 'lgalfaso', '2013-08-12T14:27:10Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2805', '37', '3550', 'Update step_00.ngdoc', 'Clarify the little snippet on dash vs camelCase html to directive naming pattern', '1', null, null, 'gdennie', '2013-08-12T14:52:53Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2806', '37', '3552', 'Update description of $inject mechanism to be a little clearer.', 'Was trying to figure out how this worked and found the documentation explanation to be inadequate. Explicitly state that mapping of $inject values is mapped to injectable arguments by order.', '3', null, null, 'bleggett', '2013-08-12T20:28:55Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2807', '37', '3553', 'fix(minerr): escape double quotes in error displays', 'This fixes the quoting bug that we found this morning.', '1', null, null, 'ksheedlo', '2013-08-12T21:57:43Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2808', '37', '3554', 'chore(Grunt): upgrade ng-closure-runner to 0.2.2', 'This is not pressing for tomorrow, but let\'s get it in by the end of the week. I refactored the compiler somewhat ahead of implementing typed MinErr, so this is a new version I released today.\r\n\r\nSince the change is so small, I\'m actually okay if we ignore this for now, but if it doesn\'t break anything then why not.', '1', null, null, 'ksheedlo', '2013-08-13T00:35:17Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2809', '37', '3555', 'Update dev_guide.services.$location.ngdoc', 'Added a point about using Angular in the root of a domain with HTML5 urls and then trying to link to external paths within the same directory.\r\n\r\nPlease see the following:\r\nOriginal issue: https://github.com/angular/angular.js/issues/3520#issuecomment-22393487\r\nSolution: http://fiddle.jshell.net/fgHf6/3/', '6', null, null, 'zivc', '2013-08-13T07:08:47Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2810', '37', '3556', 'fix(ngTouch): replace event with originalEvent', 'When jQuery is included touches are found on event.originalEvent', '5', null, null, 'jasonals', '2013-08-13T10:16:16Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2811', '37', '3559', 'style($route) make some jshint recommended changes', 'Syntax changes:\r\n- ternary indentation\r\n- remove unused variable, N\r\n- use triple equals instead of double', '2', null, null, 'joshrtay', '2013-08-13T17:00:13Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2812', '37', '3565', 'fix(grunt): fix regex in grunt util to handle pre-release versions', '', '2', null, null, 'btford', '2013-08-13T21:49:08Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2813', '37', '3566', 'feat(minerr): log minerr doc url in development', '', '2', null, null, 'ksheedlo', '2013-08-13T22:32:59Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2814', '37', '3568', 'chore(minerr): move $sce:insecurl file to sce directory', 'Somehow this got moved into the wrong place. I\'m putting it back.', '1', null, null, 'ksheedlo', '2013-08-13T23:17:43Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2815', '37', '3569', 'Grammatical corrections to Form and Control definitions', '', '2', null, null, 'mcmorgan', '2013-08-13T23:38:43Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2816', '37', '3570', 'fix($timeout): clean deferreds immediately after callback exec/cancel', 'Make sure $timeout callbacks are forgotten about immediately after\r\nexecution or cancellation.\r\n\r\nPreviously when passing invokeApply=false, the cleanup used $q and so\r\nwould be pending until the next $digest was triggered. This does not\r\nmake a large functional difference, but can be very visible when\r\nlooking at memory consumption of an app or debugging around the\r\n$$asyncQueue - these callbacks can have a big retaining tree.\r\n\r\n---\r\n\r\nMotivation\r\n\r\nIn the app that I am working on, we have some quite memory hungry pages. I noticed that on navigating away from them to lighter pages, the memory they consumed would not be released until something was clicked or happened to cause a $digest.\r\n\r\nAfter some digging it turns out that the form controller in the page is releasing event handlers inside a $timeout with applyInvoke=false. The callback is happening without trouble and releases the event handlers, but it is not itself released until the next digest cycle, and contains most of the page in its closure.\r\n\r\nIt is not clear from the $timeout documentation that internal cleanup should be dependant on the invokeApply parameter. I would only expect callbacks I\'d added myself to the returned promise to be dependant on a digest as this is part of using $q. I don\'t think the changes in this pull request should be observable without debugging tools so shouldn\'t affect current code.', '11', null, null, 'andyrooger', '2013-08-14T00:55:11Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2817', '37', '3571', 'Fix for event.stopPropagation() and $emit method', 'This fix addresses an issue where event.stopPropagation() prematurely ends execution of event listeners assigned to the same scope from which they are $emit-ted. \r\n\r\nFor example you assign 2 listeners to the same scope:\r\na)\r\nscope.on(\'myEvent\', function(evt) {\r\n evt.stopPropagation();\r\n //Do something\r\n});\r\nb) Somewhere else on the same scope, perhaps inside other directive or controller\r\nscope.on(\'myEvent\', function(evt) {\r\n //Do something else\r\n});\r\n\r\nCurrently handler in \'a\' will prevent handler \'b\' from executing even though they are on the same exact scope, but this is not the intention of the stopPropagation() function. Intention is to prevent \'myEvent\' from bubbling into $parent scope.\r\n\r\nIf we take jQuery or just plain DOM eventing model, we\'ll see that stopPropagation does NOT prevent multiple handlers that are attached to the same node from firing.', '10', null, null, 'stsvilik', '2013-08-14T04:01:34Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2818', '37', '3572', 'fix(tutorial): remove unnecessary line break', 'Fix typo with link for correct formatting\r\n\r\n![screen shot 2013-08-13 at 9 36 46 pm](https://f.cloud.github.com/assets/3473924/959847/994b3480-049b-11e3-9afa-35a65bb50707.png)\r\n', '4', null, null, 'ebeal', '2013-08-14T04:40:22Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2819', '37', '3574', 'Fix Travis', '', '2', null, null, 'vojtajina', '2013-08-14T06:06:07Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2820', '37', '3575', 'Fix Travis', '', '3', null, null, 'vojtajina', '2013-08-14T06:07:29Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2821', '37', '3583', 'docs(route): add hint for ngRoute module inclusion', 'Add a simple guide how to include the ngRoute module in your application similar to the one in [animate.js](https://github.com/angular/angular.js/blob/master/src/ngAnimate/animate.js).', '2', null, null, 'aeby', '2013-08-14T12:27:57Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2822', '37', '359', 'Fix ie 1223 status', 'See http://bugs.jquery.com/ticket/1450\r\nCloses #357', '2', null, null, 'vojtajina', '2011-05-31T08:34:53Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2823', '37', '3590', 'fix(ngView) : add the new element after the previous element', 'when using enter leave animations without absolute positioning it makes more sense to keep the \"leaving\" view about the \"entering\" view. so that the \"leaving\" view can transition out without being pushed down by the \"entering\" view', '4', null, null, 'warnerandy', '2013-08-14T18:02:25Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2824', '37', '3591', 'docs($http): added return to interceptors success callback', 'Http interceptor example was missing a required promise return', '3', null, null, 'kirstein', '2013-08-14T18:31:29Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2825', '37', '3593', 'docs(guide/directive): remove duplicate description of \'require\' attr', 'Remove duplicate description of \'require\' attribute in directive definition object.\r\n', '4', null, null, 'brettle', '2013-08-14T21:12:24Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2826', '37', '3595', 'Update orderBy.js', 'Removed unnecessary additional conditional statement.', '2', null, null, 'ItsLeeOwen', '2013-08-14T21:58:35Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2827', '37', '3597', 'fix(filter): filter on false properties', 'Code was evaluating !expression[key] while attempting to\r\nsee if the key was present, but this was evaluating to true for\r\nfalse values as well as missing keys.\r\n\r\nCloses #2797. ', '6', null, null, 'tomdcc', '2013-08-15T00:10:55Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2828', '37', '3598', 'feat(jqLite): use querySelectorAll instead of getElementsByTagName in jqLite.find', 'Addresses #3586', '55', null, null, 'jankuca', '2013-08-15T03:22:34Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2829', '37', '36', 'A spec + lint fixes', '', '0', null, null, 'IgorMinar', '2010-10-04T16:01:03Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2830', '37', '360', 'Fix unit test in IE7', 'This commit fixes 2 tests in IE7, so now all tests pass in IE7, IE8 on my machine.\r\n\r\nUnfortunately there is still one test, that is even not executed in IE - there are 810 tests executed in Chrome / FF / Opera, but only 809 tests in IE7 / IE8.\r\nThat\'s problem of JSTD, it silently ignore tests with syntax errors:\r\nhttp://code.google.com/p/js-test-driver/issues/detail?id=21', '2', null, null, 'vojtajina', '2011-05-31T19:48:00Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2831', '37', '3600', 'chore(ngdocs): fix the version jump to list the latest master and to also list the RC versions in sorted order', '', '8', null, null, 'matsko', '2013-08-15T05:11:24Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2832', '37', '3602', 'fix(routeProvider): route matcher should fill non-optional parameters or fail', 'Already requested in #3481, this PR aims to correct the currently behavior of a `$routeProvider` configured like so:\r\n\r\n```\r\n$routeProvider\r\n .when(\'/pages/:page/*comment\', {template: \'comment\'})\r\n .when(\'/pages/:page\', {template: \'page\'})\r\n .when(\'/pages\', {template: \'index\'});\r\n```\r\n\r\nWould never reach any of the \'page\' or \'index\' routes unless they are defined in reverse order. Given that ordering of route matching is not guaranteed to be the same as the definition of `when`s, a fix could be the one in this PR.\r\n\r\nWith this PR, a route containing parameters __must__ be able to give a value to all parameters to match.\r\n\r\n:bangbang: This creates _breaking change_ where locations like `/page/` will __not__ match the route `/page/:id`.\r\n\r\n@joshrtay @jbdeboer', '7', null, null, 'thenikso', '2013-08-15T09:40:22Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2833', '37', '3604', 'docs(directive/script): escape `</script>`', 'Fixes missing </script> tag here:\r\nhttp://docs.angularjs.org/api/ng.directive:script\r\n\r\nCloses https://github.com/angular/angular.js/issues/2820', '2', null, null, 'chicoxyzzy', '2013-08-15T12:10:32Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2834', '37', '3605', 'fix(parse): handle promises returned from parsed function calls', 'When a parsed function call returns a promise, the evaluated value\r\nis the resolved value of the promise rather than the promise object.\r\n\r\nCloses #3503', '3', null, null, 'jussik', '2013-08-15T12:28:54Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2835', '37', '3606', 'feat($http) XHR progress events', 'Should likely add a few more specs for this. Any suggestions? May need to add to `MockXHR` a bit.', '13', null, null, 'mikeycgto', '2013-08-15T14:17:30Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2836', '37', '3607', 'Update cookies documentation', 'per the [top comment here](http://docs.angularjs.org/api/ngCookies.$cookies#comment-912064775)\r\n\r\nupdating documentation so it matches [$resource](http://docs.angularjs.org/api/ngResource.$resource) and instructs the user to include the `angular-cookies.js` and load `ngCookies`.', '2', null, null, 'robdodson', '2013-08-15T16:59:45Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2837', '37', '3609', 'fix(ngRepeat): ngRepeat and ngInclude should be allowed on the same element', 'Lowering the priority of ngRepeat from 1000 to 400 fixes the issue that popped up couple of times right after the 1.2.0rc1 release (#3584, #3581).', '4', null, null, 'jankuca', '2013-08-15T17:40:30Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2838', '37', '361', 'Fix hashchange event on IE7', 'Stupid IE7 returns true for `(\'onhashchange\' in window)`, but does not support hashchange event.\n\nFix hashchange event on IE7\n\nStupid IE7 returns true for `(\'onhashchange\' in window)`, but does not support hashchange event.\n\nInstead of using sniffing tricks like this:\n\n````javascript\nwindow.setAttribute(\'onhashchange\', \'return;\');\ntypeof window.onhashchange == \'function\';\n````\n\nI decided to check msie version. That\'s why had to remove two unit tests:\n\n* should use $browser poller to detect url changes when onhashchange event is unsupported\n* should use onhashchange events to detect url changes when supported by browser\n\nI hope that\'s all right - we don\'t care whether event or poller is used. We just check whether the `$browser.onHashChange` event works, running the tests in all browsers.', '4', null, null, 'vojtajina', '2011-06-01T12:12:15Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2839', '37', '3614', 'docs($sce): format trusted context types as a list instead of a table', 'Documentation generator doesn\'t seem to recognize Github Flavored Markdown tables, and a list seems just as readable as a table in this case.', '2', null, null, 'brettle', '2013-08-15T23:10:34Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2840', '37', '3618', 'fix(orderBy): fix mixed case arrays with refactoring', 'Refactored, removing redundant code while fixing mixed array sorting', '3', null, null, 'eddiemonge', '2013-08-16T05:57:47Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2841', '37', '362', 'Fix IE bug - ng:href', 'I did small change in your code:\r\n\r\n````javascript\r\nelement.attr(\'href\') === null\r\n// to\r\n!element.attr(\'href\')\r\n````\r\n\r\nThis converts links `<a href ng:click=\"\">` into underlined link in IE7 as well.\r\nHope it should be fine now...\r\n\r\nng:href was producing unclickable links, as the event propagation was stopped by \'a\' widget\r\n\r\nAll links in regression/issue-352.html were tested in:\r\n\r\n* Chrome 11\r\n* Opera 11\r\n* Firefox 4\r\n* IE7, IE8\r\n\r\nCloses #352', '1', null, null, 'vojtajina', '2011-06-01T20:26:50Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2842', '37', '3621', 'docs(mocks):underscore _name_ syntax with inject', 'Summary describing the underscore syntax helper provided by the injector, with example use case.', '9', null, null, 'jasonm23', '2013-08-16T10:07:10Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2843', '37', '3622', 'style(doc): replace CRLF by LF in svg header logo', '', '3', null, null, 'aeby', '2013-08-16T10:11:41Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2844', '37', '3623', 'Fix parseAsHtml link', '', '2', null, null, 'moroshko', '2013-08-16T12:12:59Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2845', '37', '3628', 'fix(ngMock): make $timeout.flushNext not require an expectedDelay as per documentation.', '', '8', null, null, 'jelbourn', '2013-08-16T16:25:16Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2846', '37', '3632', 'Speed up e2e tests', '', '4', null, null, 'IgorMinar', '2013-08-16T18:26:44Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2847', '37', '3634', 'fix(docs): wrap error message text inside box', 'This fix makes the word wrapping in error message displays more sane.\r\n\r\nExample before:\r\n\r\n![example1](https://f.cloud.github.com/assets/1271410/978208/a03882c6-06b6-11e3-8f43-150da76894bd.png)\r\n\r\nExample after:\r\n\r\n![example2](https://f.cloud.github.com/assets/1271410/978210/a5ec691c-06b6-11e3-956f-eb6e78f338fe.png)\r\n\r\nIgnore the blue link text. It\'s there from something else I\'m currently playing around with and won\'t show up when you apply the change.', '2', null, null, 'ksheedlo', '2013-08-16T20:59:55Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2848', '37', '3635', 'docs(tutorial): fixed link URL being displayed twice', '- removed inline HTML, as it was diplaying the URL twice', '1', null, null, 'kramretak', '2013-08-16T22:27:02Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2849', '37', '3636', 'feat($rootScope): allow $evalAsync to queue operations to be run after digest', 'This makes it possible to have callback functions for the digest loop.\r\n\r\nThe usefulness of this feature can be found when one need to safely measure or check the contents of elements after the DOM is updated.', '2', null, null, 'jankuca', '2013-08-16T22:52:57Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2850', '37', '3639', 'Fix for event.stopPropagation() and $emit method', 'This fix addresses an issue where event.stopPropagation() prematurely ends execution of event listeners assigned to the same scope from which they are $emit-ted.\r\n\r\nFor example you assign 2 listeners to the same scope:\r\na)\r\n```javascript\r\nscope.on(\'myEvent\', function(evt) {\r\n evt.stopPropagation();\r\n //Do something\r\n});\r\n```\r\nb) Somewhere else on the same scope, perhaps inside other directive or controller\r\n```javascript\r\nscope.on(\'myEvent\', function(evt) {\r\n //Do something else\r\n});\r\n```\r\n\r\nCurrently handler in \'a\' will prevent handler \'b\' from executing even though they are on the same exact scope, but this is not the intention of the stopPropagation() function. Intention is to prevent \'myEvent\' from bubbling into $parent scope.\r\n\r\nIf we take jQuery or just plain DOM eventing model, we\'ll see that stopPropagation does NOT prevent multiple handlers that are attached to the same node from firing.', '10', null, null, 'stsvilik', '2013-08-17T06:19:14Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2851', '37', '364', 'Fix unit tests on FF4, Opera', 'Just fixed couple of failing unit tests on FF4 and Opera 11...', '1', null, null, 'vojtajina', '2011-06-02T19:12:58Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2852', '37', '3640', 'Revert transclusion commits', 'Reverted ngView commit: 87405e25ae935eefd673e70ffd6144a5f455b662\r\nReverted ngInclude commit: 1b5bee4fa12b1f14e117f7ca222c2e2b64cc8558', '4', null, null, 'matsko', '2013-08-17T15:50:53Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2853', '37', '3641', 'Update step_07.ngdoc', '\"Orthogonal\" is a strange word for those without a mathematical/CS background. \"Independent\" is clearer.', '0', null, null, 'rodbv', '2013-08-18T13:21:54Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2854', '37', '3642', 'feat(currencyFilter): add numbers after dot count parameter', 'So we can format currency numbers like this:\r\nexpect(currency(1234.5678, \"USD$\")).toEqual(\'USD$1,234.57\')\r\nexpect(currency(1234.5678, \"rub\", 3)).toEqual(\'rub1,234.568\')\r\nexpect(currency(1234.5678, \"rub\", 0)).toEqual(\'rub1,234\')\r\nThe last case is usual for Rubles for example.\r\n\r\nThere is also a target to remove hardcoded values from source.', '3', null, null, 'allaud', '2013-08-18T14:23:24Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2855', '37', '3643', 'Maybe a usefull new configuration parameter encoding for ng-resource modul', 'Some Time ago i patched the angularjs resource module with a feature that i needed for the development.\r\nNow i found the time to commit this simple feature.\r\n\r\nI needed a way to specify if for a certian rest call the provided parameters should be url encoded or not.\r\nHere is a simple resource definition.\r\n\r\n$provide.factory(\'Proxy\', function($resource){\r\n var resource = $resource(\'/proxy/:url\' , {}, {\r\n get : {method:\'GET\', params:{}, isArray:false, encoding:false}\r\n });\r\n return resource;\r\n });\r\n\r\nThe param :url contains you get it a full url like http://www.google.de. So that parameter should not be url encoded and to adchive this i introduce the encoding parameter like encoding:false.\r\n\r\nSo maybe you have an advice for me to solve this with no needed of that patch ... .\r\nI am very interressting in feedback for that and i would take the chance and thanks for the great wonderful\r\nwork done from you and the gerat piece of software called angularjs.\r\n\r\nhave a nice day keep working', '3', null, null, 'pussinboots', '2013-08-18T15:04:41Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2856', '37', '3645', 'fix(sce) IE 7 standards mode not supported', 'Changed documentMode test from 8 to 7 to support IE 8 in IE 7 standards mode while still protecting against quirks mode. documentMode returns the following values: 5 - quirks mode, 7 - IE 7 standards mode, 8 - IE 8 standards mode. See Issue #3633', '0', null, null, 'justinrknowles', '2013-08-18T18:13:39Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2857', '37', '3646', 'fix(sce) IE 7 standards mode not supported', 'Changed documentMode test from 8 to 7 to support IE 8 in IE 7 standards mode while still protecting against quirks mode. documentMode returns the following values: 5 - quirks mode, 7 - IE 7 standards mode, 8 - IE 8 standards mode. Closes #3633. ', '4', null, null, 'justinrknowles', '2013-08-18T18:40:12Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2858', '37', '3647', 'fix($compile): properly handle directive replace for table elements', 'To work around limitations in jqLite, the template snippet is wrapped in\r\na <div> element. This does not work for table elements, since they\r\ncannot be constructed inside a div. This patch takes special to properly\r\nwrap caption, thead, tbody, tfoot, tr, th and td in tags that allow them\r\nto be created.\r\n\r\nCloses #1459', '21', null, null, 'pelme', '2013-08-18T19:09:30Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2859', '37', '3649', 'Fix ngClass animation bugs with enter, move and leave', '', '1', null, null, 'matsko', '2013-08-19T01:14:21Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2860', '37', '3658', 'fix(required): `false` is a valid model value for required <select>', 'Make the `required` directive accept the model value `false` when it is not an <input> element. \r\n\r\nCloses #3490', '7', null, null, 'lgalfaso', '2013-08-19T17:16:58Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2861', '37', '3662', 'Fixing $resource call in docs.', '', '2', null, null, 'adamdecaf', '2013-08-19T19:33:35Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2862', '37', '3665', 'fix($sniffer): ensure older versions of webkit work for animations', '', '1', null, null, 'matsko', '2013-08-19T21:49:30Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2863', '37', '3666', 'augmenting description of angular.module', 'it wasn\'t clear before that if given the same name a second time this method RETRIEVES an EXISTING module. Not even sure if my description is accurate, hoping someone will either confirm and merge or clear it up.', '0', null, null, 'Sequoia', '2013-08-19T23:57:45Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2864', '37', '3668', 'Removed whitespace before image tag', 'The whitespace before the image tag caused it to be interpreted as a code block rather than an HTML element.', '1', null, null, 'Nepoxx', '2013-08-20T02:43:11Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2865', '37', '367', 'fixed opera date.toISOString issue', 'opera did not implement date.toISOString correctly according to Javascript guideline. \r\nSo we have to change the toString method of angularDate at line 766 of src/apis.js. ', '0', null, null, 'Codier', '2011-06-03T16:37:34Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2866', '37', '3670', 'fix($q) allow $q to work well with decorators', 'Re-work the $q service a bit so that rather than invoking functions stored in a closure internally ( defer, reject, etc.. ), it uses the methods of the object that\'s returned so that when it\'s overridden or modified in a decorator, the desired behavior is maintained throughout\r\n\r\nFixes #3659', '12', null, null, 'dcherman', '2013-08-20T05:17:10Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2867', '37', '3671', 'Update step_00.ngdoc', 'Whether this is important or not the first page of the tutorial displays the &lt;a href=\"...\"&gt;&lt;/a&gt; directly in the page so I\'ve changed that to ngdoc link.', '1', null, null, 'jmnarloch', '2013-08-20T07:18:31Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2868', '37', '3674', 'fix(package.json): add a repository field', 'The `npm install` command complains about the missing repository field.', '1', null, null, 'mzgol', '2013-08-20T14:50:44Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2869', '37', '3675', 'Fix for issue 3616 \"View source\" link on docs is broken', 'This solves Issue https://github.com/angular/angular.js/issues/3616\r\n\r\n\"View source\" link on docs is broken because it references undefined property gruntUtil.getVersion().number.\r\n\r\nI\'ve changed two references to instead use gruntUtil.getVersion().cdnVersion, which presently contains an appropriate string (a git tag) for linking to documentation.\r\n\r\n(If this is not an acceptable version property to reference, perhaps there is a better one? Or, as a temporary fix perhaps we should just link to the \"master\" code source instead of the grunt version tagged source file.)', '3', null, null, 'jamesdaily', '2013-08-20T16:20:41Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2870', '37', '3676', 'Update step_00.ngdoc', 'the \\<a> is incorrect.\r\nthere is no space between \"a\" and \"href\"', '1', null, null, 'nail1208', '2013-08-20T16:23:59Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2871', '37', '3678', 'docs(sce,urlutils): update table to use marked syntax', 'Commit 258cae83dc1a03b6b878a7b4236c499288cd2624 replaced Showdown with marked.', '0', null, null, 'chirayuk', '2013-08-20T18:35:32Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2872', '37', '368', 'renamed $pause to $sleep AND $wait to $pause', 'Closes #207', '0', null, null, 'Codier', '2011-06-03T22:34:41Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2873', '37', '3680', 'ngTranslude fixes', '', '1', null, null, 'IgorMinar', '2013-08-20T23:31:48Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2874', '37', '3681', 'chore($parse): convert parser() and lex() to prototype-based code', 'I refactored most of the `$parse` code into prototypes for performance. The improvement is in extracting all the helper functions from `parser()` and `lex()` so that only one set of these is in use rather than a new one being created on each run. State is now shared via `this`.\r\n\r\nThis JSPerf case demonstrates the performance boost: http://jsperf.com/closure-vs-prototype-ngparser\r\n\r\n- Chrome: 1.52x boost\r\n- FF: slightly slower (I would love to know why)\r\n- IE: 4x boost\r\n', '2', null, null, 'jankuca', '2013-08-21T00:26:10Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2875', '37', '3684', 'Multiple browsers on travis', '- IE8\r\n- IE9\r\n- IE10\r\n- Safari\r\n- Firefox\r\n- Chrome', '2', null, null, 'vojtajina', '2013-08-21T08:24:18Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2876', '37', '3685', 'feat(ngParse): support trailing commas in object & array literals', 'Per ECMAScript 5.1 specification trailing commas are allowed in object and\r\narray literals. All modern browsers as well as IE>8 support this syntax.\r\nThis commit adds support for such syntax to Angular expressions.', '1', null, null, 'mzgol', '2013-08-21T09:32:33Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2877', '37', '3686', 'fix(package.json): use full version numbers when interpolating', 'When using less than 3 numbers in npm package version together with\r\ntilde interpolation, it lets major version upgrades, e.g. \"~0.10\" means\r\nat least 0.10 and less than 1.0; this pattern would match e.g. 0.11, 0.12 etc.\r\nBesides, some package.json dependencies were upgraded.', '1', null, null, 'mzgol', '2013-08-21T09:56:47Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2878', '37', '3687', 'fix($sniffer): history problems on Boxee box', 'similar to the one on Android with history.pushState\r\nhttps://github.com/angular/angular.js/pull/956\r\nsame behavior experienced with Boxee box browser', '7', null, null, 'doodeec', '2013-08-21T12:58:27Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2879', '37', '3689', 'feat($parse): support trailing commas in object & array literals', 'Per ECMAScript 5.1 specification trailing commas are allowed in object and\r\narray literals. All modern browsers as well as IE>8 support this syntax.\r\nThis commit adds support for such syntax to Angular expressions.\r\n\r\nI\'m creating a new pull request as @btford asked me to re-open #3685 with an explanation\r\nand I don\'t have privileges to re-open prs.\r\n\r\nMain use case of trailing commas are when using multi-line notation for objects/arrays. When you have sth like:\r\n```javascript\r\n{\r\n par1: \"val1\",\r\n par3: \"val3\",\r\n par2: \"val2\",\r\n}\r\n```\r\nit\'s much easier to move lines 2. and 3. around without causing errors. Such reordering is cumberscome when trailing commas are ommited. I agree readability is a little reduced when using a single-line form, but for multi-line ones it\'s IMO a godsend.\r\n\r\nCurrently there are no good tools to minify Angular expressions so this might be less used form now but once such a tool is created, for longer objects/arrays such notation would help.', '12', null, null, 'mzgol', '2013-08-21T17:47:42Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2880', '37', '3690', 'fix(ngAnimate): only execute a timeout when transitions or keyframe animations are used', 'ngAnimate causes a 1ms flicker on the screen when no CSS animations are present on the element.\r\nThe solution is to change $animate to only use $timeouts when a duration is found on the element\r\nbefore the transition/keyframe animation takes over.', '0', null, null, 'matsko', '2013-08-21T20:09:20Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2881', '37', '3691', 'feat(matchers): add future-awareness to matcher parameters', 'Added the ability to pass futures as the argument to matchers. This allows you to do things like this: \r\n\r\n expect(element(\'.bar\').width()).toEqual(element(\'.nav\').width())\r\n\r\nI\'ve found it to be extremely useful in my own tests. If you want this let me know and i\'ll add some unit tests for the functionality.', '6', null, null, 'ashaffer', '2013-08-21T21:28:39Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2882', '37', '3693', 'fix(build): Add Promises/A+ Test Suite to the build', '', '16', null, null, 'jamestalmage', '2013-08-21T23:25:26Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2883', '37', '3694', 'fix($q): fix forwarding resolution when callbacks aren\'t functions', 'Uses the changes from @jamestalmage\'s fix in #3535. (thanks!)\r\n\r\nCloses #3535', '1', null, null, 'btford', '2013-08-21T23:56:12Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2884', '37', '3695', 'feat(ngMock): add support for creating dynamic style sheets within test code', '', '0', null, null, 'matsko', '2013-08-22T01:32:02Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2885', '37', '3696', 'Fixed: format multilevel json to querystring correctly', 'Consider follow json convert to http query string\r\n```json\r\n{\r\n \"$or\": [\r\n {\r\n \"username\": {\r\n \"$regex\": \"admin\"\r\n },\r\n \"name\": {\r\n \"$regex\": \"admin\"\r\n }\r\n }\r\n ], \r\n \"limit\": 10, \r\n \"page\": 1, \r\n \"status\": {\r\n \"$ne\": \"removed\"\r\n }\r\n}\r\n\r\n```\r\n\r\nTO Query String\r\n```\r\nGET /users?status%5B$ne%5D=removed&$or%5B0%5D%5Busername%5D%5B$regex%5D=ad&$or%5B1%5D%5Bname%5D%5B$regex%5D=admin\r\n```\r\n\r\nSo, we can query mongo directly from angular.js', '4', null, null, 'guanbo', '2013-08-22T03:43:13Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2886', '37', '3697', 'fix(q.js): if rejection handler throws an exception, reject promise', '\r\nper Promise/A+ spec', '2', null, null, 'jamestalmage', '2013-08-22T04:01:53Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2887', '37', '3698', 'Improved documentation of parameters for boolean attribute directives', 'Improved documentation of parameters for boolean attribute directives.\r\n\r\nNote: I hope this pull request represents only my changes to src/ng/directive/booleanAttrs.js. Github.com is showing my prior commits as well (from 8/20 and 8/21); I\'m not sure how to clear them away...', '0', null, null, 'jamesdaily', '2013-08-22T04:06:58Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2888', '37', '3699', 'Promises A+ Compliance', '', '9', null, null, 'IgorMinar', '2013-08-22T06:39:45Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2889', '37', '37', 'Clonenodeie8', 'Fixed bug with IE8, I\'m so awesome.', '1', null, null, 'esprehn', '2010-10-04T23:11:23Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2890', '37', '370', 'Add input val', 'Closes #207', '1', null, null, 'Codier', '2011-06-06T16:42:49Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2891', '37', '3700', 'Update of broken titles, may be not fixed yet:/', 'I tried to fix the titles, that do not show up properly, but it might not be just right.', '2', null, null, 'czechdude', '2013-08-22T10:10:24Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2892', '37', '3705', 'docs(module): improve the installation instructions for optional modules', 'Currently, the documentation does a bad job of explaining the distinction between the services that it provides,\r\nand the module itself. Furthermore, the instructions for using optional modules are inconsistent or missing.\r\n\r\nThis commit addresses the problem by adding a new `{@install foo}` annotation to the docs generator that inlines the\r\nappropriate instructions based on the name of the module.', '1', null, null, 'btford', '2013-08-22T19:34:18Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2893', '37', '3706', 'feat(docs/error): make links in error messages work', '', '2', null, null, 'ksheedlo', '2013-08-22T20:58:36Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2894', '37', '3707', 'Fixed markup for diagram (tutorial_03.png) of search binding', '', '0', null, null, 'twil', '2013-08-22T21:43:08Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2895', '37', '3708', 'Fixed markup for diagram (tutorial_04.png) of sort binding', '', '1', null, null, 'twil', '2013-08-22T21:47:15Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2896', '37', '3709', 'fix($parse): disallow access to window and dom in expressions', '', '0', null, null, 'chirayuk', '2013-08-22T22:30:50Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2897', '37', '3710', 'fix: sanitizer should not accept <!--> as a valid comment', 'According to http://validator.w3.org/ , <!--> is not a valid comment\r\nand neither is any comment containing the -- substring.\r\n\r\nI came across this possible issue while browsing the code for something unrelated. This makes the parser stricter, but I\'m not sure that that\'s really desired. At any rate, I also added a unit test for comment parsing, as that was missing.\r\n\r\n', '6', null, null, 'spamdaemon', '2013-08-23T00:22:00Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2898', '37', '3711', 'fix: replace x.indexOf(y)==0 with x.lastIndexOf(y,0)===0', 'Replace the pattern x.indexOf(y)===0 with x.lastIndexOf(y,0) since that\r\ndoes not have to check the entire string x for that substring.\r\nThis fix was triggered when found a test like this x.substr(0,2)==\'$$\'.\r\n\r\nI ran all the unit tests and e2e tests, but did not add any new tests. I was thinking of creating an angular.startsWith function and can do so if desired, but ultimately the number of such prefix tests is rather small so that I decided against it.\r\n\r\nI found this little nugget at stack-overflow: http://stackoverflow.com/questions/646628/javascript-startswith\r\n', '2', null, null, 'spamdaemon', '2013-08-23T00:44:42Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2899', '37', '3714', 'fix(isArrayLike): correctly handle string primitives', 'Fix for #3713:\r\n\r\n> The `isArrayLike` test in 1.0 worked properly with any string values, returning `true` (since they can be indexed just like `String` objects and work with functions like `Array.prototype.forEach`). The new test in 1.2 (introduced by #3356) raises a `TypeError`, because the `in` operator cannot be used on a non-object.\r\n\r\nSince there are no tests for the private `isArrayLike`, I\'m including a test for `angular.forEach`, its main caller.', '4', null, null, 'mernen', '2013-08-23T03:49:26Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2900', '37', '3715', 'ngAnimate bug fixes', 'Closes #3587\r\nCloses #3613', '1', null, null, 'matsko', '2013-08-23T03:54:55Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2901', '37', '3717', 'ngAnimate ngClass digest fixes', '', '12', null, null, 'matsko', '2013-08-23T04:53:08Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2902', '37', '3718', 'Add note to make the naming convention in specs more visible when testin...', '...g filters.', '3', null, null, 'Pindar', '2013-08-23T09:01:19Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2903', '37', '372', 'ng#disabled and more', 'Closes #351', '2', null, null, 'Codier', '2011-06-07T05:08:57Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2904', '37', '3720', 'Fix for date filter. Allow for negative millisecond values when passed as string.', 'The regular expression for checking millisecond string values only accepts positive numbers.', '4', null, null, 'tschilla', '2013-08-23T10:53:55Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2905', '37', '3724', 'Improved parameter documentation for several boolean attribute directives', 'Improved parameter definitions for boolean attribute directives ngDisabled, ngChecked, ngReadonly, ngSelected, and ngOpen.\r\n\r\nFixes [Issue 3726](https://github.com/angular/angular.js/issues/3726)', '1', null, null, 'jamesdaily', '2013-08-23T12:37:11Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2906', '37', '3725', 'Fixing link to headline', '', '1', null, null, 'powtac', '2013-08-23T14:21:50Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2907', '37', '3728', 'Add ng-scope and ng-binding classes to CSS classes documentation page', 'I noticed angular was adding these css classes to elements and believe they should be listed in the documentation at this page. The ng-scope class is mentioned in the developer guide, hence the link there, and the ng-binding class is not mentioned anywhere else in the documentation or the guide that I found.', '1', null, null, 'headcanon', '2013-08-23T16:59:53Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2908', '37', '3729', 'feat(angular): expose msie property ', 'Added msieVersion() to allow public access to the IE version, so there isn\'t a need for repeated code to determine the IE version when it is fundamentally built into Angular.\r\n', '1', null, null, 'ajnietup', '2013-08-23T18:07:34Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2909', '37', '3730', 'docs(guide/directive): removed duplicate block about \"require\" syntax', '', '1', null, null, 'cburgdorf', '2013-08-23T18:54:48Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2910', '37', '3733', 'Update bootstrap.ngdoc', 'Clearing up bootstrap confusion about module declaration.', '1', null, null, 'CalvinFernandez', '2013-08-24T01:50:36Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2911', '37', '3735', 'chore: remove firefox CORS workaround', 'remove workaround when third-party issue resolved', '0', null, null, 'jquadrin', '2013-08-24T06:54:11Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2912', '37', '3736', 'chore: remove firefox CORS workaround', 'remove workaround when third-party issue resolved', '2', null, null, 'jquadrin', '2013-08-24T07:43:52Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2913', '37', '3738', 'chore(readme): add Travis build status', '![screen shot 2013-08-24 at 9 51 22 am](https://f.cloud.github.com/assets/1016365/1021065/6afffd28-0cdd-11e3-92ea-f72970c93324.png)\r\n', '1', null, null, 'gdi2290', '2013-08-24T16:51:38Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2914', '37', '374', 'Tutorial docs', '', '0', null, null, 'IgorMinar', '2011-06-07T15:41:06Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2915', '37', '3742', 'indicate that $routeProvider requires ng-view', 'I struggled with the $routeProvider thinking that it worked like Backbone routes and could be used in isolation, but it looks like it will silently fail if you don\'t put an `<ng-view>` element in the HTML. \r\n\r\nI think the best solution would be to raise an error instead of silently failing if there isn\'t an ng-view element.', '2', null, null, 'choxi', '2013-08-25T03:18:12Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2916', '37', '3743', 'chore(ngLocale): update closure regenerate locale files', 'Different fr locales changed in closure library and with this commit\r\nthey have been regenerated.\r\n\r\n$./update-closure.sh\r\n$./generate.sh\r\n', '3', null, null, 'ameralimanovic', '2013-08-25T11:47:33Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2917', '37', '3744', 'feat(ngLocale): support for standalone months', 'The nominative case was missing, translation files from other projects eg.\r\njQuery UI datepicker (https://code.google.com/p/jquery-ui/source/browse/branches/labs/datepicker2/ui/i18n/jquery.ui.datepicker-hr.js?r=3875) contain only the nominative case. \r\n\r\nIn languages which have two cases for months, the genitive case is being stored in MONTH array and the nominative case in STANDALONEMONTH array.\r\nSo the course of action could be to add the STANDALONEMONTH array to the locale files, and i did it here through modifying the converter and the corresponding spec tests.\r\n\r\nFrom closure translations we provide now nominative case in SHORTMONTH array. Fixes #3483', '0', null, null, 'ameralimanovic', '2013-08-25T12:22:53Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2918', '37', '3746', 'chore(tools): Point to the NPM version of grunt-parallel && feature(ngMock) Allow for passing an object literal as shorthand to module ', 'This commit allows shorthand for mocking services...\r\n\r\n```javascript\r\nmodule({\r\n service: mock\r\n});\r\n\r\ninject(function(service) {\r\n // Receives mock\r\n});\r\n```', '15', null, null, 'iammerrick', '2013-08-26T04:48:11Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2919', '37', '3749', 'Fixes controller name bug when using $routeProvider', 'The controller name was previously not declared as a string and users have reported a \"[controller] is not defined from [moduleName]\" error. This corrects the documentation into a working example.', '1', null, null, 'edconolly', '2013-08-26T09:09:29Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2920', '37', '3755', 'Document $q\'s notify behaviour', 'Added basic documentation on $q\'s notify behaviour.\r\n\r\nCloses #3341', '5', null, null, 'colinfrei', '2013-08-26T20:40:45Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2921', '37', '3758', 'fix(core): parse IE11 UA string correctly', 'Ref: http://msdn.microsoft.com/en-us/library/ms537503.aspx\r\n\r\nIt\'s great that IE11 wants to be compatible enough that it doesn\'t want\r\nto be special cased and treated differently.\r\n\r\nHowever, as long as one has to have a different code path for IE than\r\nfor the other supported browsers, we still need to detect and special\r\ncase it. For instance, our URL parsing code still needs the same\r\nworkaround the we used for IE10. We still see the same Access denied /\r\nTypeError exceptions when setting certain values. FYI, Angular doesn\'t\r\ngenerally blindly test for IE we also check the version number.\r\n\r\nThanks to modern.ie for the free IE11 test VM.\r\n\r\nCloses #3682', '5', null, null, 'chirayuk', '2013-08-27T02:20:27Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2922', '37', '3760', 'Update cacheFactory.js: Added peek() for returning all keys', 'Added peek() for returning all keys.', '11', null, null, 'zsong', '2013-08-27T04:57:29Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2923', '37', '3761', 'Removed duplicated `require` section in directives guide', '', '2', null, null, 'tomazy', '2013-08-27T06:20:09Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2924', '37', '377', 'Fix changelog url (angularjs.com -> angularjs.org)', 'Just fix the angular url in changelog...', '1', null, null, 'vojtajina', '2011-06-08T15:31:16Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2925', '37', '3771', 'Remove redundant \'require\' description - already described above', 'The `require` property on directive definition objects is described twice. Request to remove the second, incomplete, description.', '1', null, null, 'jtward', '2013-08-27T16:27:05Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2926', '37', '3772', 'chore(ngLocale): update closure regenerate locale files', 'Different locales changed after updating the closure dependency and with this commit the locale files have been regenerated.\r\n\r\n$./update-closure.sh\r\n$./generate.sh\r\n\r\nDo you prefer the commits to be squashed into one? In the AngularJS Contribution Guidelines i can\'t read anything about this.\r\n', '2', null, null, 'ameralimanovic', '2013-08-28T08:18:07Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2927', '37', '3774', 'feat(scenario): add element methods hasClass(), addClass(), removeClass()', 'Add jQuery like class manipulation methods to element dsl for e2e testing.\r\nThese methods simplify e2e scenarios. For example, when testing `:hover`\r\npseudo-class you can add own `.hover` class and check that app respond correctly.', '2', null, null, 'vitalets', '2013-08-28T13:31:06Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2928', '37', '3776', 'fix(form): do not prevent submit when action attribute equals to an empty string', 'Closes #3370', '7', null, null, 'agentcooper', '2013-08-28T14:04:49Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2929', '37', '3777', 'Remove duplicate information about require option', 'Seems like something left behind from a previous version?', '1', null, null, 'MartijnDwars', '2013-08-28T14:24:37Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2930', '37', '378', 'Should have replaced all instances of element(\'input[name=something]\').val() with input(\'name\').val()', '\nCloses #376', '1', null, null, 'Codier', '2011-06-08T18:24:38Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2931', '37', '3780', 'Fixing mexican spanish locale', 'Just updating some words and the money symbol, we also use the \"dollar\", dot as separator for cents and comma as a group separator', '2', null, null, 'iamedu', '2013-08-28T15:28:36Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2932', '37', '3785', 'Update directive.ngdoc', 'removed redundant (and truncated) \'require\' attribute description.', '1', null, null, 'fscofield', '2013-08-28T19:49:45Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2933', '37', '3786', 'fix(jqLite): allow inputs to have a name of \"className\"', 'Fixes #3773\r\n\r\n# Summary\r\n\r\nWe can\'t merge this until #jquery/jquery/1346 is merged.\r\n\r\nAdditionally there are many other properties (and possibly elements) with similar name collision in the dom that this doesn\'t change doesn\'t fix. Something to keep in mind before we go off and complicate the code to fix this one particular issue.', '11', null, null, 'jankuca', '2013-08-28T21:03:56Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2934', '37', '3787', 'chore: upgrade grunt packages to match master', 'Seems to fix Jenkins build.\r\n\r\nBroken: http://ci.angularjs.org/job/angular.js-angular-v1.0.x/lastBuild/console\r\n\r\nFixed: http://ci.angularjs.org/job/angular.js-brian/34/console', '2', null, null, 'btford', '2013-08-28T22:00:10Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2935', '37', '3788', 'fix(ngMocks): $logProvider#debugEnabled should work the same within tests', 'angular.mocks.$LogProvider $logProvider.debugEnabled(false) is crashing\r\nwith undefined when run inside karma/jasmine test runner\r\n\r\nThe following crashes when run inside Karma/Jasmine test suite\r\n\r\n```javascript\r\nangular.module(\'foo\', [])\r\n .config([\'$logProvider\', function ($logProvider) {\r\n $logProvider.debugEnabled(false);\r\n }]);\r\n```\r\n\r\nCloses #3612', '1', null, null, 'madaz', '2013-08-29T03:38:59Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2936', '37', '379', 'Scope prevork', 'Commits which are cherry picked from scope without the actual scope', '1', null, null, 'mhevery', '2011-06-08T18:57:18Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2937', '37', '3798', 'fix($compile): ng-attr to support dash separated attribute names', 'When compiling:\r\n```html\r\n<div ng-attr-data-src=\"value\"></div>\r\n``` \r\nCurrently Angular will output:\r\n```html\r\n<div datasrc=\"value\"></div>\r\n``` \r\nThis pull request and tests propose that Angular should output:\r\n```html\r\n<div data-src=\"value\"></div>\r\n``` \r\nPlease note that ahead of making my amends, there were 3 failing tests elsewhere in master, as per my comment on the mailing list at https://groups.google.com/d/msg/angular/54olurwDWJw/_b-6_G-hl74J.\r\n\r\nThank you.\r\n', '11', null, null, 'JamieMason', '2013-08-29T13:51:42Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2938', '37', '3799', 'feat(jqLite): Add offset method to jqLite', 'Add offset method to jqLite as a getter only to retrieve element\r\nposition.', '9', null, null, 'steelsojka', '2013-08-29T13:56:50Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2939', '37', '3801', 'Fixes to animations', '', '1', null, null, 'matsko', '2013-08-29T15:53:23Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2940', '37', '3802', 'feat($controllerProvider): Controller code resolution through DI.', 'Allows array-notated constructors to use a controller name for their constructor\r\nfunction, which permits reuse of controller code with different injectables.\r\nPreviously, we had to declare a function in the global context to actually reuse\r\nfunctions with different injectables. Now we can declare a controller\r\nconstructor inline and refer to it in other controller declarations through the\r\narray notation.', '8', null, null, 'MikeMcElroy', '2013-08-29T17:22:16Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2941', '37', '3803', 'perf(ngBindHtml): watch the original value and sanitize later', '', '1', null, null, 'chirayuk', '2013-08-29T19:48:21Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2942', '37', '3807', 'Fix typo in documentation of ngShowHide.js', '', '1', null, null, 'rbonvall', '2013-08-29T23:27:23Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2943', '37', '3809', 'fix($http): allow empty responses to be cached', 'Fixes #3770', '1', null, null, 'jankuca', '2013-08-30T01:53:49Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2944', '37', '3811', 'Tweaking anchorScrollSpec.js', '', '4', null, null, 'cleberdantas', '2013-08-30T02:34:24Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2945', '37', '3815', 'adding *.iml for IntelliJ module files', '', '2', null, null, 'siddii', '2013-08-30T15:59:49Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2946', '37', '3816', 'adding an example of how to override the exceptionHandler', 'took me a bit of digging to figure this out', '1', null, null, 'jaredly', '2013-08-30T16:48:16Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2947', '37', '3817', 'Return the same data to success as to $promise.then', 'Feel free to reject if I\'ve misunderstood this, but I was expecting my `success()` callback to receive the same arguments as passed to `$promise.then()`. Currently the response interceptor gets bypassed when using the `success()` approach.', '4', null, null, 'willtj', '2013-08-30T18:46:48Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2948', '37', '382', 'Remove obsolete scenario folder', 'No reason for keeping this old stuff in the project...', '5', null, null, 'vojtajina', '2011-06-09T19:53:16Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2949', '37', '3822', 'fix(guide) broken title overflow in navlist', '## Before\r\n![screen shot 2013-08-30 at 1 25 41 pm](https://f.cloud.github.com/assets/1016365/1060537/8829f31a-11b3-11e3-8620-9751954915f4.png)\r\n\r\n## After\r\n![screen shot 2013-08-30 at 1 25 31 pm](https://f.cloud.github.com/assets/1016365/1060540/8b6e9efe-11b3-11e3-8777-fa52f5236a74.png)', '7', null, null, 'gdi2290', '2013-08-30T20:35:06Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2950', '37', '3823', 'fix($resource): pass interceptor-transformed value to both success callbacks and promises', 'Addresses #3817\r\n\r\nhttp://jsfiddle.net/SH26x/1/', '2', null, null, 'jankuca', '2013-08-30T23:20:50Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2951', '37', '3824', 'fix($compile): allow interpolations for non-event handlers attrs', 'Fix wrong behaviour that didn\'t allow \'data-on\' and \'on\' element attributes\r\nto be interpolated by $compile. The regex now accepts any string beginning\r\nwith \'on\' and with at least one more English letter.', '5', null, null, 'frapontillo', '2013-08-31T09:52:43Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2952', '37', '3827', 'Fixed an image to display as an image and not a code block', '', '1', null, null, 'NicholasBoll', '2013-08-31T23:40:32Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2953', '37', '3828', 'Removed extra leading whitespace before img tag', 'The <img> tag is indented 6 spaces causing the interpreter to wrap it in pre/code tags (see http://docs.angularjs.org/tutorial/step_03) . ', '1', null, null, 'tstatler', '2013-09-01T00:38:41Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2954', '37', '383', 'Changed UserId in example to misko.hevery so it will work now.', 'Closes #381', '3', null, null, 'Codier', '2011-06-09T22:30:06Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2955', '37', '3830', 'feat(ngAnimate): add between callbacks', 'We\'re currently working on the migration of AngularStrap/AngularUI-bootstrap to Bootstrap 3.0 + AngularJS 1.2.0.\r\n\r\nWe need theses callbacks to be able to properly handle element positioning (ie. tooltips, popovers) while still relying on the `$animate.enter`/`$animate.leave` syntax to leverage CSS animations.\r\n\r\nNot sure unit testing is required for such a basic patch, will gladly add them if you want.\r\n\r\ncc @matsko\r\n', '14', null, null, 'mgcrea', '2013-09-01T12:01:51Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2956', '37', '3831', 'fix(docs): fix diagram in tutorial/step_03', 'Removes whitespace before image tag as it caused it to be interpreted as a code block.', '1', null, null, 'nterray', '2013-09-01T13:19:16Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2957', '37', '3832', 'fix(docs): fix diagram in tutorial/step_04', 'Removes whitespace before image tag as it caused it to be interpreted as a code block.', '1', null, null, 'nterray', '2013-09-01T13:21:03Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2958', '37', '3835', 'Fixed typo.', '', '2', null, null, 'tstatler', '2013-09-01T20:11:39Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2959', '37', '3836', 'Fixed usage error (dependant/dependent) in docs', 'http://www.grammar-monster.com/easily_confused/dependant_dependent.htm', '1', null, null, 'tstatler', '2013-09-01T20:47:23Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2960', '37', '3837', 'fix(angularFiles.js, changelog.js) remove unnecessary comma to avoid parse error', '### Not sure how angularFiles.js was parsing\r\n\r\n![screen shot 2013-09-01 at 2 33 47 pm](https://f.cloud.github.com/assets/1016365/1064775/4fb5896c-134e-11e3-8b73-21e82a87587d.png)\r\n\r\n', '0', null, null, 'gdi2290', '2013-09-01T21:18:30Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2961', '37', '3838', 'Fix typo in orderBy.js documentation', '', '1', null, null, 'jesselpalmer', '2013-09-01T23:09:26Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2962', '37', '3839', 'fix(faq) update file size for Angular.js and learning resources', 'Current docs:\r\n![screen shot 2013-09-01 at 6 23 59 pm](https://f.cloud.github.com/assets/1016365/1065081/5cbe21da-136e-11e3-98a0-0b4bdcb55f3e.png)\r\n\r\nCurrent file size:\r\n![screen shot 2013-09-01 at 6 26 38 pm](https://f.cloud.github.com/assets/1016365/1065087/cd969748-136e-11e3-99ee-e0b35da84e05.png)\r\n\r\nI also added the latest learning online resources such as:\r\n* A Better Way to Learn AngularJS\r\n* How to get started (Part 1 of the AngularJS - from beginner to expert in 7 steps series)\r\n* AngularJS Tutorial: Learn to build modern web apps', '1', null, null, 'gdi2290', '2013-09-02T01:31:17Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2963', '37', '3840', '(bugfix) missing \"not\" in ngScenario report', 'When using `.not()` the output is wrong it was displaying : `expected \"foo\" but was \"foo\"`', '4', null, null, 'hsablonniere', '2013-09-02T13:26:07Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2964', '37', '3841', 'Added clarification on contenteditable attribute', '', '1', null, null, 'James-Dunn', '2013-09-02T16:57:37Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2965', '37', '3843', 'Fixed issue in generated docs with MD headers not being generated', 'For [example](http://docs.angularjs.org/guide/concepts#runtime). Note the unprocessed \'# Runtime\' heading followed by a bunch of unformatted text. There are other examples on the same page (\'Model\', eg). Adding a newline character to the end of the generated example html text appears to fix the problem.', '2', null, null, 'tstatler', '2013-09-02T20:10:29Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2966', '37', '3846', 'Update loader.js (typo)', 'typo in animation doc', '3', null, null, 'draptik', '2013-09-03T05:27:21Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2967', '37', '3848', 'feat($parse): support unicode identifier names', 'Support unicode identifier names as defined in Section 7.6 Identifier Names\r\nand Identifiers, ECMAScript Language Specification\r\n(http://www.ecma-international.org/ecma-262/5.1/#sec-7.6),\r\nexcept for unicode escape sequences which is hard to implement\r\nwithout changing too much existing code.\r\n\r\nCloses #3847', '11', null, null, 'clee704', '2013-09-03T10:52:58Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2968', '37', '385', 'PUT and DELETE requests should have Content-Type header', 'In commit https://github.com/angular/angular.js/commit/9f56af9c15e1096033c91c2619f7f7f0115d0032 you kept \"Content-Type\": \"application/x-www-form-urlencoded\" only for POST request. I believe that the idea was to skip it from GET requests, and it should be kept for PUT and DELETE. Otherwise some browsers sent application/xml request what it not correct.', '9', null, null, 'knapo', '2011-06-10T14:16:15Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2969', '37', '3850', 'Phone cat tuto step 3 : image not displayed beacuase of <pre> generated tag', 'Removed extra spaces just before the img tag, causing the parser to generate a <pre><code> sequence before <img> tag and thus causing a bad display.', '1', null, null, 'mhicauber', '2013-09-03T13:59:39Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2970', '37', '3851', 'feature(ngScenario/dsl): trigger event with keys and mouse position', '+ element(selector, label).trigger(eventName, keys, x, y) trigger eventName event on an element with keys and mouse position\r\n+ element(selector, label).mousemove(keys, x, y) mousemove an element with keys and mouse position\r\n* element(selector, label).mousedown(keys, x, y) mousedown an element with keys and mouse position\r\n* element(selector, label).mouseup(keys, x, y) mouseup an element with keys and mouse position', '6', null, null, 'snowyu', '2013-09-03T14:05:24Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2971', '37', '3857', 'fix($httpBackend): set headers even if they have falsy values', 'Resolving the issue https://github.com/angular/angular.js/issues/2984', '4', null, null, 'ricardohbin', '2013-09-03T21:42:10Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2972', '37', '3859', 'feat(filter.filter): provide escape for \"!\" (#543)', 'Closes #543', '2', null, null, 'cironunes', '2013-09-03T23:12:27Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2973', '37', '386', 'Fix small typo in docs widget (tutorial instructions)', 'Nothing serious :-D', '2', null, null, 'vojtajina', '2011-06-10T16:32:35Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2974', '37', '3863', 'Add a badge which show the current status for node dependencies.', '', '5', null, null, 'igorlima', '2013-09-04T01:28:55Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2975', '37', '3864', 'fix(ngTouch): ngClick does not pass touchend event when jQuery is loaded', 'The trigger handler event in jqLite takes an event object as a second\r\nparameter, but jQuery requires an array of parameters. This is causing\r\nthe touchend event to not come thtough in the click handler when jQuery\r\nis loaded.', '7', null, null, 'steelsojka', '2013-09-04T01:35:01Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2976', '37', '3865', '$watchCollection informs the old collection array values in the second argument of the listener. fixes #1751', '$watchCollection correctly informs the old collection values in the second argument of the listener (before it informed an array with the same values as the new collection)\r\n\r\nselect, input and nglist are affected by this change\r\n\r\nThere is a behaviour change in ngList, when you type \"a , b\" it automatically changes the value to \"a, b\" (this is reflected in inputSpec.js#989 change)\r\n', '5', null, null, 'gonzaloruizdevilla', '2013-09-04T02:03:20Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2977', '37', '3866', 'Hierarchical log level support', 'Enhances the existing \"debugEnabled\" support in $log by providing the ability to configure a log level via $logProvider. The log level works on a hierarchy system where the priority is:\r\n \'off\', \'error\', \'warn\', \'info\', \'log\', \'debug\', \'all\'\r\n\r\nFor example, when setting the log level to \'info\', error, warn, and info messages are logged to the console (following the existing logic for checking if the console exists/etc). For backwards compatibility, the existing debugEnabled logic was left in (marked deprecated) and simply delegated to the appropriate log level.\r\n\r\nTest cases can be found in test/ng/logSpec.js including (again, legacy debug test cases were left in).', '2', null, null, 'sparty02', '2013-09-04T03:15:17Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2978', '37', '3873', 'test($browser): correct false positive in ApplicationSpec.js', 'Previously, the check that Application should return a new $window and\r\n$document had the arguments reversed in the first call to navigateTo;\r\nthus, the subsequent check of inequality of $window and $document in the\r\nnext navigateTo call would always pass.\r\n\r\nThis corrects the argument order, which makes this test not succeptible\r\nto false positives.', '1', null, null, 'woahdae', '2013-09-04T15:30:00Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2979', '37', '3876', 'fix(directive/select/ngOptions): ignore properties which start with $ or $$ when iterating over an object for ng-options', 'When using ```<select ng-options ...``` with an object, the directive renders properties of the object even if they begin with ```$``` or ```$$```. This means that when using ```$resource``` to ```query()``` a REST service for example, the directive renders the private ```$then``` and ```$resolved``` properties of the response object as ```<option>```s. The ```ng-repeat``` directive includes a check to make sure it doesn\'t render properties beginning with ```$``` or ```$$```, and this PR adds a similar check for ```ng-options```.', '9', null, null, 'baconmania', '2013-09-04T18:53:36Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2980', '37', '3877', 'Added \"replace\" filter', 'This PR adds a \"replace\" filter to replace substrings inside a string:\r\n\r\n {{ \'Hello %name%\' | replace:{\'%name%\': \'AngularJS\'} }} // Will display \"Hello AngularJS\"\r\n\r\nThe filter accepts a plain JavaScript object as the only parameter with one or more key value pairs and also supports expressions as values like this:\r\n\r\n {{ \'Hello %firstName% %lastName%\' | replace:{\'%firstName%\': user.firstName, \'%lastName%\', user.lastName} }} \r\n\r\nThis is very handy for websites that need to support different languages and need to replace substrings in translations.\r\n\r\nReplacements are also updated on-the-fly when the value expression(s) are changed thanks to the 2-way binding of AngularJS.\r\n\r\nThis PR also includes the unit tests for the filter.', '8', null, null, 'jvandemo', '2013-09-04T20:16:08Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2981', '37', '3882', 'refactor($animate): use CSS3 transition/animation events instead of $timeouts to track ongoing animations', 'Closes #3629\r\nCloses #3874', '19', null, null, 'matsko', '2013-09-05T00:05:26Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2982', '37', '3888', 'Update resource.js', 'Changed parameter name to @userId, as otherwise User.get({userId:123},...) would not cause to replace the placeholder :userId with the value 123', '1', null, null, 'davincho', '2013-09-05T10:40:05Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2983', '37', '389', 'Fix scenario runner on IE7, IE8', 'I did only remove config attribute from docs-scenario.html (`ng:scenario-output=\"json\"`) as I don\'t think we want this change. We could use just `html` output, as that\'s actually the only output being used, but using `json` output wouldn\'t display any result and scenario runner wouldn\'t work with JSTD.\r\n\r\nCouple of failing tests on both IE7, IE8 had been fixed with that commit.\r\nThe issue with input.enter() is fixed.\r\n\r\n* add ng:disabled, ng:checked, ng:multiple, ng:readonly, ng:selected\r\n* fetch fixed cookbook/advancedform (use ng:disabled)\r\n* fire keydown instead of change on input\r\n* remove frame when test finishes', '0', null, null, 'vojtajina', '2011-06-14T18:04:44Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2984', '37', '3890', 'Example in live docs doesn\'t work due to typo, it\'s also ugly', 'Basically, the html was pointing at the wrong controller, and the unstyled container for the scroll looked ugly because it was too tall.\r\n\r\nThis should fix that.', '5', null, null, 'blesh', '2013-09-05T13:47:55Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2985', '37', '3892', 'fix($animate): ensure that animations are not disabled after $rootElement is animated', '', '0', null, null, 'matsko', '2013-09-05T16:27:46Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2986', '37', '3895', 'Remove timeout.flushNext()', '', '5', null, null, 'vojtajina', '2013-09-05T20:22:39Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2987', '37', '3896', 'docs(docs.js): change deps array join to fix jsfiddle/plunkr examples', 'Change return value of docsApp.serviceFactory.prepareDefaultAppModule to include empty array `[]` instead of array containing one empty string element `[\'\']`, for situations when the deps array is empty.\r\n\r\nThis will benefit plunkr/jsfiddle examples which lack animation or other dependencies, such as [ngChecked](http://docs.angularjs.org/api/ng.directive:ngChecked).\r\n\r\nCurrent script.js sent to plunkr/jsfiddle when no deps exist: \r\n```javascript\r\nangular.module(\'App\', [\'\']);\r\n```\r\n\r\nNew script.js sent to plunkr/jsfiddle when no deps exist:\r\n```javascript\r\nangular.module(\'App\', []);\r\n```', '8', null, null, 'jamesdaily', '2013-09-05T20:55:18Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2988', '37', '3897', 'fix($httpBackend): remove Content-Type header on DELETE requests', 'Sending empty string with `XMLHttpRequest`\'s `post` method causes browsers adding unneeded `Content-Type` request header on `DELETE` requests. Chrome adds `Content-Type:application/xml`, Firefox and IE adds `Content-Type text/plain`. Sending `null` insted of empty string fixes the problem.\r\n\r\nMore detail: https://github.com/angular/angular.js/issues/2149#issuecomment-22664501', '4', null, null, 'muratcorlu', '2013-09-05T22:12:48Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2989', '37', '3898', 'docs($anchorScroll) change example controller name to ScrollCtrl and add...', '... styling\r\n\r\nChanged controller name in example html to ScrollCtrl to match name in example js.\r\n\r\nAdd styling to example html so scrollable area is not obtrusive to documentation page design.', '6', null, null, 'blesh', '2013-09-06T02:15:35Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2990', '37', '390', 'Double line#to#single', 'Closes #384', '0', null, null, 'Codier', '2011-06-15T00:00:06Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2991', '37', '3900', 'Update select.js', '`\\w` matches `[a-zA-Z0-9_]` and `\\d` matches `[0-9]`, using both in a character set is simply redundant.', '2', null, null, 'hrbonz', '2013-09-06T07:24:02Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2992', '37', '3902', 'Fix animation progress event handling in browsers / devices tests.', 'Calling `event.elapsedTime` is correct in every browser and device I\'ve tested on, `event.originalEvent.elapsedTime` seems only to be required for passing unit tests.', '3', null, null, 'gunn', '2013-09-06T09:16:26Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2993', '37', '3903', 'refactor(select): options regexp simplification', '\\w matches [a-zA-Z0-9_] and \\d matches [0-9], using both in a character set is\r\nsimply redundant.', '3', null, null, 'hrbonz', '2013-09-06T09:24:45Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2994', '37', '3904', 'feat(filterFilter): array filter comparator receives an index', 'If a comparator function is passed to a filter of an array, it receives the index as an argument.\r\n\r\nCloses 654', '5', null, null, 'd-simon', '2013-09-06T09:39:43Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2995', '37', '3908', 'refactor($animate): use single variables for handling transition/animati...', '...on events & properties\r\n\r\nTo avoid code duplication, use single variables for keeping properties/events\r\nnames to use. Also, fix some errors that have happened after the rewrite from moment ago.', '16', null, null, 'mzgol', '2013-09-06T14:08:43Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2996', '37', '391', 'Removed double line break from Google docs', 'Closes #384', '0', null, null, 'Codier', '2011-06-15T00:08:38Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2997', '37', '3911', 'Update reloadOnSearch documentation for hash fragment changea', 'reloadOnSearch also affects reloads due to $location.hash() changes', '5', null, null, 'fredsa', '2013-09-06T18:16:07Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2998', '37', '3913', 'fix(core): provide animation triggering support for browserTrigger', '', '1', null, null, 'matsko', '2013-09-06T19:59:01Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('2999', '37', '3919', 'Encoding of arrays in GET params.', '**fix($http) change buildUrl to allow for better array support**\r\n\r\nArrays of length one would be sent a key-value pair (`{a:[1]}` -> `a=1`). On the server side an additional check would be required. Not all third party APIs have a check/autofix for this. Adding in `[]=` when value is an array fixes this issue (`{a:[1]}` -> `a[]=1`).', '3', null, null, 'willfarrell', '2013-09-07T17:17:30Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3000', '37', '3920', 'docs(scope): clean up grammar and improve clarity', 'Noticed a spelling mistake in the scope documentation. Fixed that mistake and decided to take a quick pass over the rest of the page at the same time.', '3', null, null, 'sdornan', '2013-09-07T19:33:43Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3001', '37', '3921', 'feat(compile): replace of type `attributes`', 'Found myself needing to create a form of *alias* of a collection of attributes/directives to be applied to an element. Currently there is no way to cleanly create this alias, so make the compiler understand the value `\'attribute\'` for the property `replace` that, when present at a directive will:\r\n* Take the attributes from the template and apply them to the element\r\n* Keep the content of the element unmodified\r\n* Ignore anything that is not an attribute at the template\r\n', '2', null, null, 'lgalfaso', '2013-09-07T21:47:50Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3002', '37', '3927', 'Fix $compile (remove templateUrl directive splitting)', 'How did compiling a templateUrl (async) directive with `replace:true` work before this commit?\r\n\r\n1. apply all directives with higher priority than the templateUrl directive\r\n2. partially apply the templateUrl directive (create `beforeTemplateNodeLinkFn`)\r\n3. fetch the template\r\n4. apply second part of the templateUrl directive on the fetched template\r\n(`afterTemplateNodeLinkFn`)\r\n\r\nThat is, the templateUrl directive is basically split into two parts (two `nodeLinkFn` functions),\r\nwhich has to be both applied.\r\n\r\nNormally we compose linking functions (`nodeLinkFn`) using continuation - calling the linking\r\nfunction of a parent element, passing the linking function of the child elements as an argument. The\r\nparent linking function then does:\r\n\r\n1. execute its pre-link functions\r\n2. call the child elements linking function (traverse)\r\n3. execute its post-link functions\r\n\r\nNow, we have two linking functions for the same DOM element level (because the templateUrl directive\r\nhas been split).\r\n\r\nThere has been multiple issues because of the order of these two linking functions (creating\r\ncontroller before setting up scope locals, running linking functions before instantiating\r\ncontroller, etc.). It is easy to fix one use case, but it breaks some other use case. It is hard to\r\ndecide what is the \"correct\" order of these two linking functions as they are essentially on the\r\nsame level.\r\n\r\nRunning them side-by-side screws up pre/post linking functions for the high priority directives\r\n(those executed before the templateUrl directive). It runs post-linking functions before traversing:\r\n```js\r\nbeforeTemplateNodeLinkFn(null); // do not travers\r\nafterTemplateNodeLinkFn(afterTemplateChildLinkFn);\r\n```\r\n\r\nComposing them (in any order) screws up the order of post-linking functions. We could fix this by\r\nhaving post-linking functions to execute in reverse order (from the lowest priority to the highest)\r\nwhich might actually make a sense.\r\n\r\n**My solution is to remove this splitting.** This commit removes the `beforeTemplateNodeLinkFn`. The\r\nfirst run (before we have the template) only schedules fetching the template. The rest (creating\r\nscope locals, instantiating a controller, linking functions, etc) is done when processing the\r\ndirective again (in the context of the already fetched template; this is the cloned\r\n`derivedSyncDirective`).\r\n\r\nWe still need to pass-through the linking functions of the higher priority directives (those\r\nexecuted before the templateUrl directive), that\'s why I added `preLinkFns` and `postLinkFns`\r\narguments to `applyDirectivesToNode`.\r\n\r\nThis also changes the \"$compile transclude should make the result of a transclusion available to the\r\nparent directive in post- linking phase (templateUrl)\" unit test. It was testing that a parent\r\ndirective can see the content of transclusion in its pre-link function. That is IMHO wrong (as the\r\n`ngTransclude` directive inserts the translusion in its linking function). This test was only passing because of\r\nc173ca412878d537b18df01f39e400ea48a4b398, which changed the behavior of the compiler to traverse\r\nbefore executing the parent linking function. That was wrong and also caused the #3792 issue, which\r\nthis change fixes.\r\n\r\nCloses #3792', '7', null, null, 'vojtajina', '2013-09-08T17:23:14Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3003', '37', '3929', 'fix(ngdoc.js): update default directive @restrict to \'A\' + add appropriate docs for ng.directives', 'The default restrict of a directive has been changed from `AC` to `A` awhile ago (and the guides have been updated to reflect that). \r\nBut `ngdocs.js` still has it\'s default restrict set to `AC`\r\n\r\nThis generated a lot of wrong documentation, like [ngShow](http://code.angularjs.org/1.2.0rc1/docs/api/ng.directive:ngShow#Usage), where it\'s stated that it can be used as `AC`, when it\'s actually just `A` ([plunk](http://plnkr.co/edit/jRRqNuO1ikoTae0pv6kt?p=preview)).\r\n\r\n------\r\n\r\nThis PR fixes the restrict in `ngdocs.js`. It also adds the correct `@restrict` to directives that need it.\r\n\r\nSince I was fixing the usage of directives, I also fixed the `ngChange` usage, and simplified the `restrict` declaration of `form/ngForm`, all separated in their respective commits.\r\n\r\n\r\nI\'ve signed the CLA as Rodric Haddad\r\n', '2', null, null, 'rodyhaddad', '2013-09-08T21:56:45Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3004', '37', '3930', 'Cleanup forms.ngdoc spacing in example', '', '3', null, null, 'anthonypt87', '2013-09-09T00:14:09Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3005', '37', '3931', 'ngsanitize problems with doctype', 'Fixes #902.\r\n\r\nngSanitize removes the doctype element.', '5', null, null, 'paolodm', '2013-09-09T02:22:55Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3006', '37', '3934', '[ADD] Dashboard link', '', '2', null, null, 'EpokK', '2013-09-09T09:00:22Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3007', '37', '3937', 'data-on should not be considered an onclick like event listener', '', '4', null, null, 'dahlb', '2013-09-09T17:30:51Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3008', '37', '394', 'Fix failing unit tests in IE7 (Binder, select widget)', 'The fix does not change any production code, we only need to ignore couple of attributes that IE7 should not display:\r\n* value attribute for LI\r\n* selected attribut for SELECT\r\n\r\nSimplified condition in compiler test, this should have been part of f9f0905f4ad7b1d0bb9b606a6d25fb1f88354a78', '1', null, null, 'vojtajina', '2011-06-17T20:50:45Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3009', '37', '3942', 'fix(ngRepeat): allow multiple spaces before `in`', 'Allow ng-repeat to have multiple spaces between the identifier and the `in` keyword', '5', null, null, 'lgalfaso', '2013-09-09T19:54:05Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3010', '37', '3943', 'Update q.js', 'Documentation fix', '1', null, null, 'naorye', '2013-09-10T07:58:06Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3011', '37', '3945', 'Update docs for corner cases', '', '1', null, null, 'jakub-bochenski', '2013-09-10T11:23:20Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3012', '37', '3946', 'docs: update angular.copy for corner cases', 'The behaviour when null or undefined was passed was not clear.\r\nThe exception thrown when source == destination was not documented.', '2', null, null, 'jakub-bochenski', '2013-09-10T11:37:56Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3013', '37', '3947', 'feat($compile): support tel: links', 'Allow tel: links so that click-to-call works in mobile browsers', '7', null, null, 'benmccann', '2013-09-10T11:49:37Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3014', '37', '3951', 'Fix infinite digest loop triggered by changing $location.path()', '_Web apps that use the $route module will typically not work on Android 2.x without this fix._\r\n\r\nOn Android 2.x, using `$location.path()` to change the url occasionally triggers an infinite digest iterations exception for no good reason. \r\n\r\nThe problem is caused by a faulty assumption in `$browser.onUrlChange()`. The assumption is that the `hashchange` event will fire only as a result of non-Angular actions, e.g. a human editing the browser\'s url. Unfortunately in Android 2.2 and 2.3, this event occasionally fires when Angular\'s own `$browser.url()` changes the url.\r\n\r\nThe knock-on effect is a race condition between $location\'s two monitoring loops: \r\n* One uses `$browser.onUrlChange()` to get notified about non-Angular url changes and synchs `$location`\'s inner data.\r\n* The other, `$locationWatch()`, watches for changes in `$location.absUrl()` and synchs them to `$browser`. \r\n\r\nThey end up reversing each other\'s changes in a vicious cycle until Angular cuts them off. Meanwhile the browser gets stuck and goes nowhere.\r\n\r\nCloses #3814 ', '16', null, null, 'isabo', '2013-09-10T15:00:42Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3015', '37', '3952', 'revert(validate-commit-msg): fix incorrect comment', '`../../` is needed for the symlink to work', '4', null, null, 'daniellmb', '2013-09-10T16:02:09Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3016', '37', '3953', 'fix(ngdoc): add default values to ngdoc template', 'ngDoc did not add default value to template, even though it was present\r\nin the documentation. This change adds the default value to the\r\ndescription column in the parameters table.\r\n\r\nCloses #3950', '6', null, null, 'dagingaa', '2013-09-10T16:19:12Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3017', '37', '3957', 'docs(Attributes): Add missing documentation for $observe method', '- Add proper ngdoc annotations to existing $observe documentation\r\n- Add link to directive guide for usage example of $observe\r\n- Add note about $observe function parameter signature', '3', null, null, 'butchpeters', '2013-09-11T01:23:27Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3018', '37', '3958', 'Update example to have proper ctrl', 'Currently the html includes MainCtrl but the js defines ScrollCtrl. I updated the example so they match.', '3', null, null, 'bsiddiqui', '2013-09-11T01:30:45Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3019', '37', '3972', 'Angular\'s Server link incorrect link to step-8', 'incorrect link to Angular\'s Server link, where it should be step-10 not step-8', '2', null, null, 'cjmling', '2013-09-11T17:12:50Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3020', '37', '3973', 'docs(ngModel): provide link for best practices.', 'The documentation for ngModel suggests the total opposite of the best practices outlined here: https://github.com/angular/angular.js/wiki/Understanding-Scopes\r\n\r\nI added a link to the best practices in the docs.', '2', null, null, 'paxtonhare', '2013-09-11T17:54:21Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3021', '37', '3974', 'docs(guide/concepts): removed div-clear-tags breaking the formatting', 'The concepts page of the docs (http://docs.angularjs.org/guide/concepts) is half unreadable due to formatting not being parsed properly.\r\n\r\nIt can be solved by removing &lt;div class=\"clear\"&gt;&lt;/div&gt; from the concepts.ng, which I did in this PR.', '4', null, null, 'Silwing', '2013-09-11T19:21:24Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3022', '37', '3978', 'Clarifying .enter searches by ng-model not by selector', '', '4', null, null, 'brakon', '2013-09-12T05:54:19Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3023', '37', '3979', 'jsonp httpBackend callback fix if no data sent from the server throws an error ie9 failed', 'added a default for data passed to the callback if the call of httpBackend is of type jsonp and there is null or undefined or empty string from the server to set the data to empty array - [], to avoid an error being thrown inside angular js - fixed broken test', '9', null, null, 'kierenhughes90', '2013-09-12T11:02:24Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3024', '37', '3983', 'docs(Forms): clarify sentence wording a little more', 'A word like \"controls\" can be interpreted as a noun or a verb: \"[this] controls\" / \"controls [are]\". So it shouldn\'t be isolated from its context.', '6', null, null, 'ts-web', '2013-09-12T16:16:47Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3025', '37', '3985', 'docs(Forms): Added comma for clarity', '', '3', null, null, 'ts-web', '2013-09-12T16:55:12Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3026', '37', '3986', 'docs(ngRoute): Fix $routeChangeError parameters ', 'The first parameter in $routeChangeError is the event object.\r\n\r\n {\r\n currentScope: Scope,\r\n defaultPrevented: false.\r\n name: \"$routeChangeError\".\r\n preventDefault: function,\r\n targetScope: Scope\r\n }', '3', null, null, 'umurkontaci', '2013-09-12T17:05:14Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3027', '37', '3990', 'Adds request and requestError interceptors to ngResource.', 'My first angular PR, so I need a little help with testing the interceptors. :)', '4', null, null, 'haihappen', '2013-09-12T20:55:25Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3028', '37', '3993', 'docs(ngSwitch): fixed minor typo', 'Fixed a typo `ngSwtich` -> `ngSwitch`.', '2', null, null, 'jogloran', '2013-09-13T03:21:30Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3029', '37', '3995', 'Chrome extensions are sane', 'You can\'t use ng-scr in Chrome extensions without this.', '2', null, null, 'Pitel', '2013-09-13T10:25:34Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3030', '37', '3996', 'Update http.js documentation for $http not making the request immediatel...', '...y\r\n\r\nI came across this issue today and after researching has found out this thread on so: \r\nhttp://stackoverflow.com/questions/17039998/angular-not-making-http-requests-immediately.\r\n\r\nIt took me quite sometimes to figure out this so I hope the addition in documentation could save somebody else some times and frustration.', '2', null, null, 'wakandan', '2013-09-13T10:37:56Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3031', '37', '3998', 'docs(ngController): rephrased the description for clarity', '', '2', null, null, 'ProLoser', '2013-09-13T12:35:20Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3032', '37', '4004', 'docs(ng.Browser): Documentation for ng.$browser#baseHref, typo in ng.$browser#cookies', '', '4', null, null, 'btesser', '2013-09-13T18:56:00Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3033', '37', '4005', 'fix(ng-if): make ng-if evaluate things using javascript logic', 'Make ng-if evaluate things using javascript logic\r\nDo not reevaluate everything contained within an ng-if when there\r\nis a change of the value of the ng-if, but the truthy of falsy value\r\ndoes not change\r\n\r\nFixes #3969\r\n\r\nBREAKING CHANGE: The expressions\r\n* `<div ng-if=\"[]\">X</div>`\r\n* `<div ng-if=\"\'f\'\">X</div>`\r\n* `<div ng-if=\"\'[]\'\">X</div>`\r\n\r\nused to be evaluated to `false`', '27', null, null, 'lgalfaso', '2013-09-13T18:57:41Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3034', '37', '4008', 'fix for ngList: separator does not work - comma is used all the time', 'ng-list=\"<separator>\" does not work.\r\ncomma is hard-coded in formatters and is used all the time.', '12', null, null, 'ptsurko', '2013-09-14T10:58:01Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3035', '37', '4009', 'Update bootstrap.ngdoc to include a mention of NG_DEFER_BOOTSTRAP!', 'The technique for late bootstrapping is not mentioned in the doc, but I found it here\r\n\r\nhttps://github.com/tnajdek/angular-requirejs-seed/blob/master/app/js/main.js', '8', null, null, 'jamie-pate', '2013-09-14T21:39:31Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3036', '37', '401', 'Dfa issues', '', '2', null, null, 'mhevery', '2011-06-20T23:38:21Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3037', '37', '4012', 'Update dev_guide.e2e-testing.ngdoc', '', '2', null, null, 'themihai', '2013-09-15T17:42:08Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3038', '37', '4014', 'Update ngEventDirs.js', '', '3', null, null, 'jdavisp3', '2013-09-16T04:05:31Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3039', '37', '4015', 'Update a.js', '', '3', null, null, 'jdavisp3', '2013-09-16T04:15:22Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3040', '37', '4016', 'feat(ngResource): serialize resouce before any request', '', '10', null, null, 'bolasblack', '2013-09-16T13:33:03Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3041', '37', '4019', 'Update resource.js', 'Make $save method check id field to call $create if it\'s undefined, or $update otherwise', '2', null, null, 'atomAltera', '2013-09-16T17:14:53Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3042', '37', '402', 'Update fixed docs content (guide)', 'Couple of typos fixed:\r\n\r\n* indentation\r\n* batchLogbatchLog -> batchLog\r\n* start periodic checking\r\n* missing brace', '1', null, null, 'vojtajina', '2011-06-21T14:24:33Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3043', '37', '4021', 'Don\'t send empty String in place of no body', 'XMLHttpRequest.send spec defines different semantics for an empty string as compared to null, any string, whether empty or not, should be sent with a Content-Type of text/plain, whereas null should have no Content-Type header set. Since the user hasn\'t passed in content to send, the latter should be used.\r\n\r\nSee http://www.w3.org/TR/XMLHttpRequest/#the-send()-method\r\n\r\nCombined with this bug in WebKit based browsers:\r\n\r\nhttps://code.google.com/p/chromium/issues/detail?id=172802\r\n\r\nThis means when no body is supplied, the `Content-Type` ends up being application/xml, which for an empty String, means the body is invalid according to the content type. This causes issues for web servers that automatically parse the body according to the declared content type, such as this issue in Play framework:\r\n\r\nhttps://github.com/playframework/playframework/issues/1676', '7', null, null, 'jroper', '2013-09-17T04:28:14Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3044', '37', '4032', 'fix(test): fixed toThrow usage', '', '1', null, null, 'chirayuk', '2013-09-17T23:11:46Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3045', '37', '4033', 'Update step_03.ngdoc', 'The existing documentation for this step could have people find themselves unable to run the `e2e-test.sh` script. The note added regarding `karma-ng-scenario` will minimize confusion and allow people to run the script.', '3', null, null, 'kulte', '2013-09-17T23:42:52Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3046', '37', '4034', 'Improve limitTo filter handling of non-integer limit values', 'Improve handling of non-integer limit values in limitTo filter, and simplify implementation. \r\n\r\nSee https://github.com/angular/angular.js/issues/3560', '4', null, null, 'bryanrsmith', '2013-09-18T06:26:43Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3047', '37', '4037', 'Fix Argentina Spanish currency', 'Argentina doesnt use the euro and currency labels are not post-fixed. \r\nhttp://en.wikipedia.org/wiki/Argentine_peso', '2', null, null, 'firstdoit', '2013-09-18T13:57:23Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3048', '37', '4039', 'fix(ngScenario): click() and dblclick() no longer follow \"void\" hrefs', 'Add check for anchors where the href starts with \"javascript:void(0)\" and do\r\nnot navigate to such \"locations\"\r\n\r\nCloses #4038', '10', null, null, 'manuelkiessling', '2013-09-18T14:49:22Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3049', '37', '4042', 'fix($compile): ng-attr to support dash separated attribute names', 'When compiling:\r\n```html\r\n<div ng-attr-data-src=\"value\"></div>\r\n``` \r\nCurrently Angular will output:\r\n```html\r\n<div datasrc=\"value\"></div>\r\n``` \r\nThis pull request and tests propose that Angular should output:\r\n```html\r\n<div data-src=\"value\"></div>\r\n``` \r\nPlease note that ahead of making my amends, there were 3 failing tests elsewhere in master, as per my comment on the mailing list at https://groups.google.com/d/msg/angular/54olurwDWJw/_b-6_G-hl74J.\r\n\r\nThank you.\r\n\r\nNote: this is a new submission of #3798, fao: @petebacondarwin', '7', null, null, 'JamieMason', '2013-09-18T15:31:28Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3050', '37', '4043', 'fix(docs): remove statement about isolated scopes and ngModelController', 'It\'s obviously possible to use ngModelController in a directive that uses an isolated scope, so this sentence seems to be outdated.\r\n\r\nE.g. the bootstrap datepicker does that:\r\n\r\nhttps://github.com/angular-ui/bootstrap/blob/master/src/datepicker/datepicker.js#L131', '18', null, null, 'cburgdorf', '2013-09-18T16:00:47Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3051', '37', '4045', 'fix($sce): make trustAs watchable', '068d8615d245a70bfde9007606b08a54c6e1cfec made changes to ngBindHtml, making it watch `attr.ngBindHtml` instead of `$sce.parseAsHtml(attr.ngBindHtml)`. (landed in 1.2.0rc2)\r\n\r\nSince the `attr.ngBindHtml` expressions returned the result of calling `$sce.trustAs`, we would get a `[$rootScope:infdig]` error (#3932, #3980), because `.trustAs` always returns a new object.\r\n\r\nThis PR solves the problem by caching the trustedValues returned by `$sce.trustAs`', '10', null, null, 'rodyhaddad', '2013-09-18T16:59:15Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3052', '37', '4047', 'feat($interval) add a service wrapping setInterval', 'The $interval service simplifies creating and testing recurring tasks.\r\nThis service does not increment $browser\'s outstanding request count,\r\nwhich means that scenario tests and Protractor tests will not timeout\r\nwhen a site uses a polling function registered by $interval. Provides\r\na workaround for #2402.\r\n\r\nFor unit tests, repeated tasks can be controlled using ngMock$interval\'s\r\ntick(), tickNext(), and tickAll() functions.', '45', null, null, 'juliemr', '2013-09-18T23:15:31Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3053', '37', '4050', 'docs(ngForm): fix grammar', '', '1', null, null, 'jdavisp3', '2013-09-19T00:06:45Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3054', '37', '4053', 'de-ge locale does not exist', 'Changed de-ge locale references to de-de', '3', null, null, 'maartenst', '2013-09-19T08:09:37Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3055', '37', '4055', 'Add a couple of paragraphs that explains services in plain words.', '* from http://docs.angularjs.org/guide/dev_guide.services.understanding_services#comment-1002821035', '5', null, null, 'anilgulecha', '2013-09-19T10:38:43Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3056', '37', '4057', 'Update input.js', 'Docs(NgModelController): Fixed spelling error and reworded a sentence for clarity', '2', null, null, 'ts-web', '2013-09-19T14:02:14Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3057', '37', '4058', 'doc(ngApp): fix grammar', '', '2', null, null, 'jdavisp3', '2013-09-19T16:23:38Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3058', '37', '4060', 'docs(input): fix grammar', '', '5', null, null, 'jdavisp3', '2013-09-20T05:11:32Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3059', '37', '4061', 'docs(ngClassEven,ngClassOdd): fix grammar', '', '1', null, null, 'jdavisp3', '2013-09-20T05:21:06Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3060', '37', '4063', 'Image has spelling error', 'img/guide/concepts-view.png has a spelling error where \"wold\" should be written out as \"world\"', '3', null, null, 'ruparocks', '2013-09-20T06:37:56Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3061', '37', '4066', 'Add a $setDirty() method to NgModelController', 'As it was done for FormController.$setPristine, I would like to propose to add the $setDirty() method on NgModelController.\r\n\r\nThere is one concrete case where this is useful: Suppose you have a form with different inputs, some being required/minlength/pattern-based/... If the user clicks the Submit button, he won\'t see which inputs are actually invalid.\r\n\r\nSee example:\r\nhttp://jsfiddle.net/lastnico/P6gh5/\r\n\r\nNote that the CSS is designed on purpose to only mark .ng-dirty.ng-invalid inputs as red, just to not scare the user immediately with tons of red things while he did not even click anything.\r\n\r\nBy having a way to do a $setDirty() programmatically on each NgModelController, we will give the user a feedback on what\'s wrong (An even better solution would be to have a FormController.$setDirty() function that would notify deeper elements instead of going up in its hierarchy (as it currently does)).\r\n\r\n', '17', null, null, 'lastnico', '2013-09-20T13:53:56Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3062', '37', '4067', 'encode uri: Matrix urls, semicolons fix 4065', 'Solved issue 4065, Support for Matrix URIs\r\nhttps://github.com/angular/angular.js/issues/4065\r\n\r\n- added ; to the list of replacements\r\n- added a unit test', '17', null, null, 'eonlepapillon', '2013-09-20T14:09:41Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3063', '37', '4072', 'fix(ngView): IE8 regression due to expando on non-element nodes', 'This fixes the \"TypeError: Object doesn\'t support this property or method\" error on IE8.\r\n\r\nCloses #3971', '2', null, null, 'IgorMinar', '2013-09-20T17:51:23Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3064', '37', '4073', 'fix(ngInclude): fix regression when ngInclude is present on an element with interpolated attributes', 'Not sure what the right priority should be. `100` was too low, `1000` would have put this as the same priority as `ngRepeat`, `500` made the tests happy.\r\n\r\nI also added a regression test.\r\n\r\nCloses #3793', '12', null, null, 'btford', '2013-09-20T18:07:56Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3065', '37', '4074', 'Add ordinal suffix option to date filter.', 'I added the S character option for ordinal date suffixes, which let\'s you do things like `September the 3rd` or `December the 15th`. (It seems like [quite a few other people wanted it](http://docs.angularjs.org/api/ng.filter:date#comment-708492975) too.)\r\n\r\nCheers, Dave.', '3', null, null, 'kzar', '2013-09-20T18:17:09Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3066', '37', '4075', 'feat(dateFilter): add ordinal suffix option to date filter', 'I added the S character option for ordinal date suffixes, which lets you output dates with the \"st\", \"nd, \"rd\" or \"th\". For example `September the 3rd` or `December the 15th`. (It seems like [quite a few other people wanted it](http://docs.angularjs.org/api/ng.filter:date#comment-708492975) too.)\r\n\r\nCheers, Dave.', '5', null, null, 'kzar', '2013-09-20T18:49:58Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3067', '37', '4076', 'doc(ngCloak): fix grammar, clarity', '', '1', null, null, 'jdavisp3', '2013-09-20T18:55:41Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3068', '37', '4077', 'fix($location): $locationChangeStart/preventDefault bug', 'When a $locationChangeStart that results from a url change is canceled, it should reset the browser url with a replaceState rather than a pushState.', '3', null, null, 'ashaffer', '2013-09-20T19:14:09Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3069', '37', '4078', 'feat(jqLite): implement width() and height()', 'Target milestone: After 1.2 release.\r\n\r\nThese are fairly commonly used DOM manipulation methods, which are sorely missing from jqLite.\r\n\r\nThe implementations provided here are much simpler than jQuery\'s implementations, relying only on offsetWidth and offsetHeight, and performing no special operation for document elements or other special cases.\r\n\r\nHowever, they do provide some basic essentials, and this is a good thing.\r\n\r\nAlso implemented in this patch: jqLite.css() will now leverage `getComputedStyle` if it is available, before relying on the inline style. This is necessary to provide a more robust means of determining whether or not an element is visible or not, which `height()`/`width()` need to know.', '12', null, null, 'caitp', '2013-09-20T19:21:05Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3070', '37', '4081', 'docs(ngController): fix grammar', '', '2', null, null, 'jdavisp3', '2013-09-20T21:08:23Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3071', '37', '4083', 'fix(ngAnimate): fix regression with animations on translate properties', '1.2.0rc1 induced a fix that prevented animations from running twice, but this had the unintended consequence of causing animations on translate, translateX, and translateY to sometimes not run. This fix checks for those cases and only applies the work-around when appropriate.\r\n\r\nMy only issue is that I\'m not sure how to (or if we even can) test this.\r\n\r\nCloses #3933', '1', null, null, 'btford', '2013-09-20T22:12:32Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3072', '37', '4084', 'docs(ngCsp): fix grammar', '', '2', null, null, 'jdavisp3', '2013-09-20T22:12:33Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3073', '37', '4085', 'docs(dblClick): fix grammar', '', '2', null, null, 'jdavisp3', '2013-09-20T22:54:16Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3074', '37', '4086', 'fix(ngInput): When \'name\' attribute is a property name, \'$name\' should be evaluated to the property value', 'Not exactly sure if this is a bug fix or a feature enhancement. For simple cases such as the following, it works:\r\n```html\r\n<form name=\"myForm\">\r\n User name: <input type=\"text\" name=\"userName\" ng-model=\"user.name\" required>\r\n <span class=\"error\" ng-show=\"myForm.userName.$error.required\">Required!</span>\r\n</form>\r\n```\r\n\r\nBut if the `<input>` is dynamically generated and the `name` is a scope property, it run into issue:\r\n\r\n```html\r\n<form name=\"myForm\">\r\n <div ng-repeat=\"field in formFields\">\r\n <span>{{field.label}}</span>\r\n <input type=\"text\" name=\"{{field.name}}\" required>\r\n <span class=\"error\" ng-show=\"myForm[field.name].$error.required\">Required!</span>\r\n </div>\r\n</form>\r\n```', '6', null, null, 'blai', '2013-09-20T23:45:19Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3075', '37', '4087', 'fix(ng-bind-html): watch string value instead of wrapper', 'Ref: https://github.com/angular/angular.js/pull/4045\r\n\r\nI have this sinking feeling that support this use case sort of\r\nencourages binding to function that blindly trust some html. For now,\r\nI\'m fixing the issue while I think about the use cases some more.\r\n\r\nIn the case of a function that performs any non-trivial work before\r\nwrapping the value (e.g. the showdown filter in issue #3980, or the\r\nbinding to a simply wrapper function in issue #3932 if it did anything\r\nmeaty), this fix makes it \"work\" - but performance is going to suck -\r\nyou should bind to some other thing on scope that watches the actual\r\nsource and adjusts itself when that changes (e.g. the showdown filter.)\r\nFor the case of the wrapper in #3932, if one isn\'t performing\r\nsanitization or some such thing - then you the developer has insight\r\ninto why that value is safe in that particular context - and it should\r\nbe available simply by name and not as a result of a function taking any\r\narbitrary input to make auditing of security a little saner.\r\n\r\nCloses #3932, #3980', '1', null, null, 'chirayuk', '2013-09-20T23:49:21Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3076', '37', '4088', 'fix(log): no longer emitting \'undefined\' for $log.info/err/etc in IE', 'Closes #1705', '3', null, null, 'colincasey', '2013-09-21T00:37:13Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3077', '37', '4089', 'test(ng-non-bindable): test sibling bindings', 'Ref: https://github.com/angular/angular.dart/blob/master/test/directives/ng_non_bindable_spec.dart', '1', null, null, 'chirayuk', '2013-09-21T01:05:55Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3078', '37', '4091', 'feat(filter): allow map of filters to be registered in $FilterProvider', 'This feature adds similar functionality to what `$ControllerProvider.register` and `$CompileProvider.directive` currently provide by allowing a map of filter name/factories to be passed as the sole argument to `$FilterProvider.register` to register all of the specified filters.\r\n\r\nCloses #4036', '1', null, null, 'colincasey', '2013-09-21T04:25:57Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3079', '37', '4092', 'Updated example to be in line with best practices', 'Changing the example documentation to be in line with best practices. This seems to be a popular complaint:\r\n\r\nhttp://docs.angularjs.org/guide/dev_guide.mvc.understanding_controller#comment-831705214\r\n\r\nI\'ll update the rest of the docs if this gets approved.', '7', null, null, 'James-Dunn', '2013-09-21T04:51:33Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3080', '37', '4093', 'chore(angular.toJson): use charAt instead of regexp', 'Regular Expressions is an expensive operation and this case can be simplified. Here\'s a comparison: http://jsperf.com/check-first-char\r\nUsing charAt is better than using brackets, explanation of this can be found here http://stackoverflow.com/questions/5943726/string-charatx-or-stringx/5943760#5943760', '9', null, null, 'just-boris', '2013-09-21T09:09:26Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3081', '37', '4094', 'Changed . to ; on line 208', '', '4', null, null, 'ishanray', '2013-09-21T12:06:03Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3082', '37', '4095', 'docs(ngDisabled): clarify', '', '2', null, null, 'jdavisp3', '2013-09-21T16:27:14Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3083', '37', '4096', 'feat(filter): Array.filter function should receive a value and index', 'Modification of filter.filter to pass the index of the current iteration as the second argument which is similar to how the native implementation of array.filter behaves.\r\n\r\nCloses #654', '4', null, null, 'colincasey', '2013-09-21T19:44:26Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3084', '37', '4098', 'fix($location): compatibility with SVG anchors', 'In SVGs, the `href` property of an anchor element is a `SVGAnimatedString`, so it needs to be unpacked.\r\n\r\nDemonstration of this problem: http://jsfiddle.net/sirhc/MKQnM/\r\n\r\nFixes #1420 .', '3', null, null, 'chrisirhc', '2013-09-21T23:58:52Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3085', '37', '4099', 'docs(ngShowHide): clarity', '', '1', null, null, 'jdavisp3', '2013-09-22T00:22:24Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3086', '37', '41', 'Issue ng controller', 'Implement $new() and $inject support. Remove support for .init() on scopes entirely.\r\n', '1', null, null, 'esprehn', '2010-10-07T22:39:29Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3087', '37', '4100', '\"than => then\" typo fix', '', '1', null, null, 'janhartigan', '2013-09-22T09:28:30Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3088', '37', '4101', 'Update http.js', '.get[\'My-header\'] = \'value\' will never work when .get is undefined.', '1', null, null, 'MrRaindrop', '2013-09-22T12:34:19Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3089', '37', '4103', 'Cleaned up confusing use of the term URL to refer to $location as well a...', '...s \'URL in the browser\'', '1', null, null, 'gdennie', '2013-09-22T15:35:27Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3090', '37', '4104', 'Replace method needs a title', '', '1', null, null, 'gdennie', '2013-09-22T15:56:29Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3091', '37', '4105', 'Fixed a lil typo', 'Here was the previous sentence:\r\n\r\n\"This can be used to clean up and 3rd party bindings to the DOM element before it is removed.\"\r\n\r\nChanged \"and\" to \"any\"', '1', null, null, 'lorint', '2013-09-22T16:24:26Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3092', '37', '4106', 'docs(ngHref): fix formatting, clarify', '', '1', null, null, 'jdavisp3', '2013-09-22T20:03:08Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3093', '37', '4112', 'fixed typo', '', '1', null, null, 'MichaelKueller', '2013-09-23T09:54:21Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3094', '37', '4114', 'Prevent <code> elements from wrapping to the next line', 'Prevent code wrapping to the next line like here:\r\n![code_nowrap](https://f.cloud.github.com/assets/259753/1190611/a802c1d8-2439-11e3-95aa-083d83776dc9.png)\r\n', '1', null, null, 'moroshko', '2013-09-23T10:23:46Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3095', '37', '4115', 'MSIE documentMode detection', 'I guess we could delete the user-agent detection, but as I\'m not sure, I left it.', '4', null, null, 'SebC99', '2013-09-23T10:27:59Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3096', '37', '4116', 'Fix ngSwipeSpec for MSIE documentMode detection', '', '4', null, null, 'SebC99', '2013-09-23T10:53:55Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3097', '37', '4117', 'Fix browserTrigger.js for MSIE documentMode detection', '', '4', null, null, 'SebC99', '2013-09-23T10:54:48Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3098', '37', '4118', 'Fix swipeSpec.js for MSIE documentMode detection', '', '4', null, null, 'SebC99', '2013-09-23T10:55:47Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3099', '37', '4119', 'Fix Angular.js for MSIE documentMode detection', '', '5', null, null, 'SebC99', '2013-09-23T10:56:47Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3100', '37', '4122', 'chore(select): fix migrate warning for jQuery.fn.attr(\'selected\')', 'Full listing of jQuery migrate warning can be found here - [https://github.com/jquery/jquery-migrate/blob/master/warnings.md](https://github.com/jquery/jquery-migrate/blob/master/warnings.md)\r\n\r\nCloses #4107', '2', null, null, 'colincasey', '2013-09-23T17:56:19Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3101', '37', '4125', 'fix($routeProvider): when redirectTo exist should return', 'After check redirectTo exist, we should return to prevent below code load unnecessarity requests.', '2', null, null, 'MQuy', '2013-09-23T18:34:53Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3102', '37', '4126', 'docs(ngRoute): $routeChangeStart event, add angularEvent param', 'added missing implied first argument, angularEvent, to match other $routeChange event documentation', '3', null, null, 'fotomut', '2013-09-23T18:56:13Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3103', '37', '4128', 'fix(a): make anchors in SVGs work', 'Previously, anchors in SVGs with any prefix namespace for the href attribute wouldn\'t work because jqLite uses getAttribute to retrieve the href attribute and is unaware of namespaces.\r\n\r\nAdd a check for the xlink namespaced `href` in case it exists.\r\n\r\nRight now the tests are just checking IE version for SVG support. However, it probably should use SVG feature detection. Or alternatively, tests shouldn\'t even use the `svg` element and just apply the namespaces without regard to SVG support.\r\n\r\nExample of this (remove `ng-app` and the example will work):\r\nhttp://jsfiddle.net/sirhc/2WLZx/', '4', null, null, 'chrisirhc', '2013-09-23T21:15:32Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3104', '37', '4129', 'fix(jqLite): use get/setAttribute so that jqLite works on SVG', 'jqLite previously used `elt.className` to add and remove classes from a DOM Node, but because the className property is not writable on SVG elements, it doesn\'t work with them. This patch replaces accesses to `className` with `get/setAttribute`.\r\n\r\nNote that jQuery still uses `className`, so developers who include jQuery will have this functionality broken. The solution for them is to have jQuery fix it. :)\r\n\r\n`classList` was also considered as a solution, but because only IE10+ supports it, we have to wait.\r\n\r\nCloses #3858', '19', null, null, 'btford', '2013-09-24T00:40:54Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3105', '37', '4130', 'fix small typo in overview.ngdoc', '` it(\'should show of angular binding\', function() { `\r\nto \r\n` it(\'should show off angular binding\', function() { `', '4', null, null, 'builtbylane', '2013-09-24T01:17:50Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3106', '37', '4131', 'docs(angular.Module): fix controller and directive method parameters', 'Both controller and directive methods on angular.Module support object maps for adding multiple controllers/directives at once.\r\n\r\nNote: I patched \"master\", but the feature is also available and undocumented in 1.0.x.', '3', null, null, 'dbinit', '2013-09-24T02:01:54Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3107', '37', '4132', 'fix(compile): directive require doesn\'t throw without link', 'Closes #3941', '2', null, null, 'colincasey', '2013-09-24T02:07:14Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3108', '37', '4139', 'Consider \'unknown\' COM objects equal (fix for #4138)', 'This is a proposed fix for #4138', '8', null, null, 'sjmulder', '2013-09-24T15:17:38Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3109', '37', '4140', 'chore(package.json): update npm packages', 'Some of node dependencies have much newer versions; one of them is Lo-Dash\r\nthat has recently released the 2.0.0 version bringing in new useful methods.', '4', null, null, 'mzgol', '2013-09-24T17:43:40Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3110', '37', '4141', 'chore(grunt): switch to the new //# sourceMappingURL pragma', 'All browsers except from Chrome implemented both the old\r\n\"//@ sourceMappingURL\" and the new \"//# sourceMappingURL\" pragmas\r\nin the same version so the only reason to keep the old one was Chrome.\r\nHowever, Chrome 29, i.e. current stable version already supports\r\nthe new pragma so there\'s no need to wait any longer.', '4', null, null, 'mzgol', '2013-09-24T17:52:29Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3111', '37', '4143', 'fix($location): Ensure appUrl begins with a \'/\' when falling back to hashbang mode', '', '4', null, null, 'bstruthers', '2013-09-24T18:13:40Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3112', '37', '4144', 'feat(bindFilter): filter to perform a bind on a function', 'New filter to perform a bind on a function. This is helpful for `orderBy` filter that requires a function as a parameter and the function to be bound to the right object\r\n\r\nCloses #4097', '5', null, null, 'lgalfaso', '2013-09-24T19:52:14Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3113', '37', '4145', 'fix(ngRepeat): should correctly track elements even when the collection is initially undefined', 'Closes #3964', '5', null, null, 'jankuca', '2013-09-24T21:44:22Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3114', '37', '4146', 'docs(deeplinking.ngdoc): correct and enhance deep linking demo', '\r\nAdd \"#/\" linking\r\nImplement ability to add and remove contacts\r\nUse semantic tags\r\n\r\nCloses #3870', '2', null, null, 'jamesdaily', '2013-09-24T22:45:01Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3115', '37', '4148', 'feat($sce): simpler patterns for $sceDelegateProviders white/blacklists', 'Closes #4006', '34', null, null, 'chirayuk', '2013-09-25T02:04:14Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3116', '37', '4149', 'style($compile): fix comment of Attributes.$observe', 'The current comment of `Attributes.$observe` doesn\'t state correctly the behavior when the attribute contains no interpolation. Specifically, it states that the observer function will never be invoked if the attribute contains no interpolation. However, the actual behavior in this case is that the observer will be invoked once during the next digest loop.', '7', null, null, 'buunguyen', '2013-09-25T03:01:17Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3117', '37', '4150', 'fix(ngAnimate): ensure that delays are always considered before an animation closes', 'Closes #4028', '7', null, null, 'matsko', '2013-09-25T05:45:47Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3118', '37', '4153', 'fix(input): `false` is no longer an empty value by default', 'This builds upon and improves @lgalfaso\'s PR https://github.com/angular/angular.js/pull/3658, without resorting to hard-coding fixes across directives.\r\n\r\n\r\n`checkboxInputType` and `ngList` directives need to have special logic for whether\r\nthey are empty or not. Previously this had been hard coded into their\r\nown directives or the `ngRequired` directive. This made it difficult to handle\r\nthese special cases.\r\n\r\nThis change factors out the question of whether an input is empty into a method\r\n`$isEmpty` on the `ngModelController`. The `ngRequired` directive now uses this\r\nmethod when testing for validity and directives, such as `checkbox` or `ngList`\r\ncan override it to apply logic specific to their needs.\r\n\r\nCloses #3490, #3658, #2594\r\n', '11', null, null, 'petebacondarwin', '2013-09-25T12:22:43Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3119', '37', '4154', 'Fix minor typo', '', '2', null, null, 'rixrix', '2013-09-25T12:41:05Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3120', '37', '4155', 'msie: documentMode detection to replace userAgent sniffing', 'To close issue https://github.com/angular/angular.js/issues/4113 and replace PR https://github.com/angular/angular.js/pull/4115, https://github.com/angular/angular.js/pull/4116, https://github.com/angular/angular.js/pull/4117, https://github.com/angular/angular.js/pull/4118, https://github.com/angular/angular.js/pull/4119\r\n\r\n', '8', null, null, 'SebC99', '2013-09-25T13:46:37Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3121', '37', '4156', 'docs(angular.module) pass more than one service on controller init', 'Information regarding how to pass more than one service during controller init.', '15', null, null, 'jeserkin', '2013-09-25T14:58:17Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3122', '37', '4157', 'feat(ngRepeat): use block separator comments', 'This change allows the use of ngRepeat in combination with directives that use transclusion and directives that replace its original elements or add more elements to ngRepeat blocks.', '9', null, null, 'jankuca', '2013-09-25T17:59:25Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3123', '37', '4159', 'fix($compile): work around issue in jQuery 1.10.2', 'jQuery 1.10.2 does not attach data to comment nodes, which previously broke `$compile`.\r\nThis changes how elements with \"transclude element\" and a controller are compiled to\r\navoid the issue.\r\n\r\nCloses #3764', '4', null, null, 'btford', '2013-09-25T20:31:17Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3124', '37', '4160', 'fix($compile): allow multiple directives on a single element even if one works with a multi-element range', 'Closes #4002', '5', null, null, 'jankuca', '2013-09-25T22:36:42Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3125', '37', '4161', 'docs(ngIf): formatting, clarity', '', '3', null, null, 'jdavisp3', '2013-09-25T23:13:23Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3126', '37', '4162', 'fix(ngTranslude): detect ngTranslude usage without a translusion directive', 'Closes #3759', '12', null, null, 'jankuca', '2013-09-25T23:38:50Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3127', '37', '4163', 'fix(mock): Added a way to preserve initally-bound events', 'Some third-party libraries, such as bootstrap, rely on\r\nevents that were initially added to the document in order\r\nto function properly. Since angularMock automatically\r\nclears data and events after each test, testing angular\r\ncomponents built with these third-party libraries becomes\r\nimpossible.\r\n\r\nThe solution is to preserve events that were added before\r\nthe first test, and let the angularMocks continue to do\r\nits automatic cleanup for everything that is added thereafter.\r\n\r\nFixes #3916', '12', null, null, 'jeffbcross', '2013-09-25T23:58:38Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3128', '37', '4165', 'fixed and tested issue #3737 - \'.reject() has no method catch\'', 'In response to issue #3737 - https://github.com/angular/angular.js/issues/3737', '14', null, null, 'datarhyne', '2013-09-26T09:22:38Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3129', '37', '4166', 'fixes #2235: fix docs for directive replace:false', 'As discussed in #2235, the documentation for how directives behave regarding `replace: false` falls short of explaining what will happen to the contents of the current element.\r\n\r\nThis pull request has a minor change to the documentation to make explicit what happens in this case.', '3', null, null, 'jokeyrhyme', '2013-09-26T11:27:04Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3130', '37', '4167', 'fix(ng-option): allow new line after _collection_', 'Changed the regular expression to allow new line after _collection_\r\n\r\nCloses #4142', '11', null, null, 'esarbanis', '2013-09-26T14:13:01Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3131', '37', '4171', 'fix($animate): ensure transition-property is not changed when only keyframe animations are in use', 'Closes #3933', '3', null, null, 'matsko', '2013-09-26T18:32:37Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3132', '37', '4172', 'Add an ngCopy directive', '', '10', null, null, 'benmccann', '2013-09-26T18:47:33Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3133', '37', '4173', 'Fix filter demo concepts.ngdoc', 'The code generating the plunkr from <example> tags is broken when no top level module is defined. I fixed this for the filters demo, but a better fix would update the code generator.', '2', null, null, 'flowhamster', '2013-09-26T19:26:46Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3134', '37', '4175', 'fix(parse): changed the functionCall method to parse filters', 'Added a condition to allow the parser to understand whether the parameter is actually a filter\r\n\r\nCloses #4168', '2', null, null, 'esarbanis', '2013-09-26T22:10:41Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3135', '37', '4176', 'fix(parse): fix context when using parentheses', 'Fix the way parentheses keep the context on an expression using the same logic as JavaScript\r\n\r\nThis patch fixes expressions like\r\n* `(obj.getA)()`\r\n* `(obj[\'getA\'])()`\r\n* `(this[\'obj\'].x.getB)()`', '2', null, null, 'lgalfaso', '2013-09-26T22:11:54Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3136', '37', '4179', 'docs(angular.copy): add a form example with the 2 possible arguments', 'Copied from another example but it\'s relevant here and also added the two possible argument signatures\r\n', '2', null, null, 'Urigo', '2013-09-27T13:10:52Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3137', '37', '4180', 'docs($timeout): add a $timeout example (gxlcl\'s example)', '', '5', null, null, 'Urigo', '2013-09-27T15:28:46Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3138', '37', '4183', 'fix syntax error in angular.mock documentation', '\r\n![screen shot 2013-09-27 at 3 40 51 pm](https://f.cloud.github.com/assets/909156/1228878/c48a3f68-27ac-11e3-9191-24459efbf943.png)\r\nFixing documentation for the angular.mock.inject api as seen on http://docs.angularjs.org/api/angular.mock.inject\r\nLine 30 in the attached screenshot should contain a bracket to properly end the function.', '3', null, null, 'rcullito', '2013-09-27T19:42:18Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3139', '37', '4186', 'updates grammar in http.js comments', '', '2', null, null, 'martco', '2013-09-28T03:55:15Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3140', '37', '4187', 'docs($compile) fix doc comment being displayed as code segment', 'Look at the returns section on this page : http://docs.angularjs.org/api/ng.$compile', '3', null, null, 'basarat', '2013-09-28T04:11:07Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3141', '37', '4188', 'Fix small grammar mistake', '', '2', null, null, 'thomastuts', '2013-09-28T13:16:55Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3142', '37', '4191', 'docs(deeplinking.ngdoc): correct and enhance deep linking demo', 'Correct \"#/\" linking\r\nImplement ability to add and remove contacts\r\nUse semantic tags\r\nInclude working e2e tests\r\n\r\nCloses #3870', '8', null, null, 'jamesdaily', '2013-09-29T02:35:27Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3143', '37', '4192', 'feature (ngRoute) expose #parseRoute as public function', '`$route.parseRoute` should be public, allowing you to determine which route a given path will resolve to. This lets you store meta data in your routes config, and take action (e.g. cancel route) before the route changes.\r\n\r\nExample use case: before navigating, check if the route\'s feature is feature-switched on or off. If off, cancel the route and display a \"feature disabled\" popup.\r\n\r\nAdd a `feature` property to each route:\r\n\r\n```js\r\n$routeProvider.when(\'/profile\',\r\n feature: \'profile\',\r\n template: \'profile.html\',\r\n controller: \'ProfileCtrl\'\r\n});\r\n```\r\n\r\nIn a main controller, cancel routing and display popup when a route\'s feature is disabled.\r\n\r\n```js\r\n$scope.$on(\'$locationChangeStart\', function(e) {\r\n // determine the route the user is trying to navigate to\r\n var nextRoute = $route.parseRoute($location.path());\r\n // get the feature metadata from the route\r\n var nextFeature = nextRoute.$$route.feature;\r\n // check if the feature is set to disabled using an app-specific\r\n // service\r\n var status = AppFeatures.status(nextFeature);\r\n if (status === \'disabled\'){\r\n // cancel the route\r\n e.preventDefault();\r\n // display popup\r\n $scope.showFeatureDisabledModal();\r\n }\r\n});\r\n```\r\n\r\nMaking `parseRoute` public gives your application a lot of flexibility and control over routing.', '19', null, null, 'geddski', '2013-09-29T07:38:32Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3144', '37', '4193', 'Isolated scope properties are not available in \'pre\' link function when using \'templateUrl\'', 'Fix for #2064.\r\n', '4', null, null, 'trask', '2013-09-29T10:13:50Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3145', '37', '4194', 'fix(jqLite): clone wrapNode in jqlite/wrap', 'Change jqLite\'s implementation of wrap() to clone the wrapNode before\r\nwrapping the target element in it.\r\n\r\nMatch jQuery\'s wrap() behavior and prevent accidentally attaching\r\ntarget element to the DOM as a side effect.\r\n\r\nCloses #3860', '12', null, null, 'chrisrhoden', '2013-09-29T20:26:41Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3146', '37', '4196', 'Removed junk from one of the examples', 'There was some raw junk in one of the code examples which I am pretty sure is unintentional. Fixed it.', '1', null, null, 'akagr', '2013-09-30T10:56:29Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3147', '37', '42', 'Fixed calculator examples', 'No change in source code, only fixed calculator examples (include current version of jquery, correct method names, etc...)', '2', null, null, 'vojtajina', '2010-10-08T18:24:18Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3148', '37', '4200', 'use defined function instead of duplicate code', 'You already have concat function and I think that you could use it.', '2', null, null, 'antoniopuero', '2013-09-30T16:01:48Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3149', '37', '4201', 'fix($location): re-assign location after BFCache back', 'In the Android browser, the BFCache maintains\r\nthe state of JavaScript applications even when\r\nnavigating to another app, so that going\r\nforward and back, to and from an application\r\nis very fast.\r\n\r\nUnfortunately, this can have undesired side\r\neffects. In this instance, the location\r\nvariable was holding a reference to a stale\r\nwindow.location, and was throwing errors\r\nwhen going back to an Angular app after\r\nbrowsing to another site.\r\n\r\nThis fix makes sure that location.url()\r\nincludes a check to make sure that location\r\nis referencing the current window.location.\r\n\r\nCloses #4044', '3', null, null, 'jeffbcross', '2013-09-30T19:18:38Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3150', '37', '4202', 'docs($injector): Reword `fn` param docs and link to DI information', 'The documentation for $injector.invoke is currently very unclear, and contains a typographic error.\n\nI\'d like to link to the more detailed DI docs instead of simply stating \"function annotation\" as though that means something out of context.\n\n---\n\n**note**: I\'m not sure if I need to specify this link as an external link or not. If it\'s possible, please let me know so I can correct this.', '4', null, null, 'caitp', '2013-09-30T23:00:53Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3151', '37', '4204', 'fix(event.stopPropagation()): sibling event handlers should not be cancelled by event.stopPropagation()', 'This fix addresses an issue where event.stopPropagation() prematurely ends execution of event listeners assigned to the same scope from which they are $emit-ted.\r\n\r\nFor example you assign 2 listeners to the same scope:\r\na)\r\n\r\nscope.on(\'myEvent\', function(evt) {\r\n evt.stopPropagation();\r\n //Do something\r\n});\r\nb) Somewhere else on the same scope, perhaps inside other directive or controller\r\n\r\nscope.on(\'myEvent\', function(evt) {\r\n //Do something else\r\n});\r\nCurrently handler in \'a\' will prevent handler \'b\' from executing even though they are on the same exact scope, but this is not the intention of the stopPropagation() function. Intention is to prevent \'myEvent\' from bubbling into $parent scope.\r\n\r\nIf we take jQuery or just plain DOM eventing model, we\'ll see that stopPropagation does NOT prevent multiple handlers that are attached to the same node from firing.', '3', null, null, 'stsvilik', '2013-10-01T05:02:42Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3152', '37', '4206', 'Replace host.com addresses with example.com', 'I clicked one of the host.com links on this angular documentation page and ended up on an ad page of dubious content. I changed those to example.com, according to RFC 2606', '1', null, null, 'fwielstra', '2013-10-01T11:17:51Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3153', '37', '4207', 'fix($compile): merge attributes safely to avoid upsetting IE8', 'Merging an `<input>` with an `<input>` in IE8 will automatically break because the \"type\" attribute may not be set automatically on in-document elements. This change makes Angular replace only unchanged attributes. Additionally, source and target attributes are only merged by concatenation if their values differ, to avoid unexpected results such as \'type=\"text text\"\'.\r\n\r\nCloses #4029\r\n\r\nCLA has been submitted electronically.\r\n\r\n(Note that a further logical related change might be to only merge attribute values by concatenation in the case of \"style\" or \"class\": see https://github.com/purcell/angular.js/commit/f919241a79f5c73dfcfb6511d0aa8b42e7f578e0, which is omitted from this pull request.)', '4', null, null, 'purcell', '2013-10-01T13:15:25Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3154', '37', '4208', 'docs($http): Add missing brace', 'A brace is missing in the register example of an interceptor as a service.', '5', null, null, 'ojacquemart', '2013-10-01T15:00:48Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3155', '37', '4213', 'fix($animator): avoid completing the animation asynchronously unless CSS transtiions/animations are present', 'Closes #4023\r\nCloses #3940', '4', null, null, 'matsko', '2013-10-01T18:38:35Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3156', '37', '4215', 'The dollar sign is a bit deceptive.', 'It could just be me, but I thought $save() was a hidden Angular method of ngModelController. Quick find in the source code was good enough to find out it isn\'t, but it might be better to use another example here...', '5', null, null, 'mstaessen', '2013-10-01T19:40:51Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3157', '37', '4217', 'fix($compile): check clashing directives before compilation', 'Clashing directive check was not working correctly when two directives requested `\'element\'` transclusion because one would start a new compilation (a recursive sub procedure) with any duplicate info being reset.\r\n\r\nThis PR moves the checking to its own loop which is executed before the actual compilation.', '5', null, null, 'jankuca', '2013-10-01T21:29:07Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3158', '37', '4220', 'docs(ngClass): clarity', '', '1', null, null, 'jdavisp3', '2013-10-02T03:50:25Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3159', '37', '4221', 'BUG REPRO: ie8 bug when module() inside it() throws and exception (thrown during in...', 'ie8 bug when module() inside it() throws and exception (thrown during inject() call)\r\n\r\nThis is a bug where my exception object is getting lost. Here\'s the\r\nresult from a Karma trace:\r\n\r\n Running \"autotest:jqlite\" (autotest) task\r\n INFO [karma]: Karma v0.11.0 server started at http://localhost:9876/\r\n WARN [web-server]: 404: /favicon.ico\r\n INFO [IE 8.0.0 (Windows XP)]: Connected on socket hfE_1IJ4LeFwf6RJcVOe\r\n INFO [watcher]: Changed file \"/Users/chirayu/work/angular.js/test/ng/sceSpecs.js\".\r\n INFO [karma]: Delaying execution, these browsers are not ready: IE 8.0.0 (Windows XP)\r\n IE 8.0.0 (Windows XP) SCE CKCK: IE8 TypeError FAILED\r\n Expected function to throw CKCK: foo , but it threw Object doesn\'t support this property or method\r\n IE 8.0.0 (Windows XP): Executed 1 of 2225 (1 FAILED) (skipped 2224) ERROR (7.738 secs / 0.031 secs)\r\n\r\nI don\'t see the real exception but get a TypeError. There is only one\r\nstack frame between when the exception object is the one I want and the\r\none where it\'s been replaced by TypeError. No code executes between\r\nthose two frames afaik from looking at the IE8 debugger.\r\n\r\nIn the inject() call:\r\n\r\n if (!injector) {\r\n injector = currentSpec.$injector = angular.injector(modules);\r\n }\r\n\r\nthe exception is thrown in \"injector = currentSpec.$injector = angular.injector(modules);\"\r\n\r\nmaking injector undefined. The caller frame is the anonymous function\r\nin the expect() line:\r\n\r\n expect(function() { inject(angular.nop); }).toThrow(\'CKCK: foo\');\r\n\r\nWhen control reaches that frame through, the exception object is no\r\nlonger \"CKCK: foo\" but a TypeError. :(', '2', null, null, 'chirayuk', '2013-10-02T04:44:48Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3160', '37', '4222', 'docs(ngInclude): clarity, formatting', '', '1', null, null, 'jdavisp3', '2013-10-02T05:00:34Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3161', '37', '4233', 'feat(input.email): add support for the multiple attribute', 'If present will allow for multiple email addresses, separated with comma (,)', '7', null, null, 'quazzie', '2013-10-02T14:38:08Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3162', '37', '4234', 'docs(rootScope): grammar, clarity', '', '2', null, null, 'jdavisp3', '2013-10-02T16:05:13Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3163', '37', '4235', 'Fix punctuation.', '...add a period. Thanks for @angular!', '2', null, null, 'simeonwillbanks', '2013-10-02T16:09:59Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3164', '37', '4236', 'docs($rootScope): fix comment of Scope.$evalAsync', 'The current comment of Scope.$evalAsync contains two errors. First, it states that the expression will be executed on the current scope. In fact, the expression will be executed on whichever scope whose digest loop will run next. Second, it states that the function passed in this method will be invoked with the current scope being the first argument. However, the scope passed in is the scope whose digest loop is being run. The fix states the actual behaviors and warns users that the current scope might not be used for evaluation.', '5', null, null, 'buunguyen', '2013-10-02T16:50:10Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3165', '37', '4237', '(1) Clarified directive e2e test result and (2) template referencing exa...', '...mples\r\n\r\nIn the first case, the use of \'angular\' as sample text is confusing to the newbie (of which I am) in that they are force to confirm that the text \'angular\' is not a keyword or otherwise referring to a system component. It is useful to ensure that sample text are obviously sample text.\r\n\r\nIn the second case, the introduction to the list of ways of referring to directives from the template was in obvious need to repair. I have also moved the most common example to the top of the list in companionship with the use close by of ng-model.', '2', null, null, 'gdennie', '2013-10-02T19:10:04Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3166', '37', '4239', 'Update Angular.js', 'the bind function reflects the definition of \"partial application\", which reduces a function\'s arity rather than transforming a function with n args into a chain of n functions, each having a single arg.\r\n\r\ncurry :\r\nf(x,y,z) -> f(x)(y)(z)\r\n\r\npartial application :\r\nf(x,y,z) -> f(x)(y,z)', '3', null, null, 'jhanink', '2013-10-02T22:53:26Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3167', '37', '4240', 'feature(ngEnabled): define ngEnabled directive as negation of ngDisabled', 'Provide a negated form of the `ngDisabled` directive as `ngEnabled` in\r\nthe same vein as the `ngHide`/`ngShow` pair. Allow for slightly clearer\r\ntemplates by avoiding double negatives, as in:\r\n\r\n <input ng-disabled=\'!(predicate1 && predicate2)\'/>\r\n <input ng-enabled=\'predicate1 && predicate2\'/>\r\n\r\nCloses #1252', '5', null, null, 'chrisrhoden', '2013-10-02T23:16:42Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3168', '37', '4241', 'Fix indentation in example code.', '', '2', null, null, 'mtaran-google', '2013-10-02T23:20:38Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3169', '37', '4242', 'feat(ngRoute): route params support in controller definition', '', '3', null, null, 'willmendesneto', '2013-10-03T02:55:07Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3170', '37', '4244', 'docs(ngList): grammar, clarity', '', '2', null, null, 'jdavisp3', '2013-10-03T03:42:17Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3171', '37', '4245', 'duplicate - ignore', '', '1', null, null, 'James-Dunn', '2013-10-03T04:38:50Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3172', '37', '4246', 'Updated example to be in line with best practices', 'See pull request https://github.com/angular/angular.js/pull/4092', '1', null, null, 'James-Dunn', '2013-10-03T04:43:29Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3173', '37', '4247', 'Updated example to be in line with best practices', 'See pull request https://github.com/angular/angular.js/pull/4092', '1', null, null, 'James-Dunn', '2013-10-03T04:52:08Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3174', '37', '4248', 'Updated example to be in line with best practices', 'See pull request https://github.com/angular/angular.js/pull/4092', '1', null, null, 'James-Dunn', '2013-10-03T04:54:34Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3175', '37', '4249', 'Updated example to be in line with best practices', 'See pull request https://github.com/angular/angular.js/pull/4092', '1', null, null, 'James-Dunn', '2013-10-03T04:56:33Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3176', '37', '4250', 'Updated example to be in line with best practices', 'See pull request https://github.com/angular/angular.js/pull/4092', '1', null, null, 'James-Dunn', '2013-10-03T05:03:28Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3177', '37', '4251', 'Updated example to be in line with best practices', 'See pull request https://github.com/angular/angular.js/pull/4092', '1', null, null, 'James-Dunn', '2013-10-03T05:05:11Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3178', '37', '4252', 'Updated example to be in line with best practices', 'See pull request https://github.com/angular/angular.js/pull/4092', '1', null, null, 'James-Dunn', '2013-10-03T05:09:35Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3179', '37', '4253', 'Updated example to be in line with best practices', 'See pull request https://github.com/angular/angular.js/pull/4092', '1', null, null, 'James-Dunn', '2013-10-03T05:11:33Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3180', '37', '4254', 'Updated example to be in line with best practices', 'See pull request https://github.com/angular/angular.js/pull/4092', '1', null, null, 'James-Dunn', '2013-10-03T05:12:55Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3181', '37', '4255', 'Updated example to be in line with best practices', 'See pull request https://github.com/angular/angular.js/pull/4092', '1', null, null, 'James-Dunn', '2013-10-03T05:14:54Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3182', '37', '4256', 'Updated example to be in line with best practices', 'See pull request https://github.com/angular/angular.js/pull/4092', '1', null, null, 'James-Dunn', '2013-10-03T05:17:53Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3183', '37', '4257', 'Clarification', 'The wording seems confusing and these adjustments seem to capture the intent with less turbulence.', '1', null, null, 'gdennie', '2013-10-03T06:11:05Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3184', '37', '4263', 'docs(guide): use consistent naming in examples', '', '3', null, null, 'adamdonahue', '2013-10-03T16:12:06Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3185', '37', '4264', 'feat($injector): add dependencies method for getting providers and their dependencies', 'I\'m using this method to generate a dependency graph with graphviz.\r\nThe code ~~isn\'t portable and has no tests or documentation~~ so I don\'t expect this to get merged.\r\nHowever, I think it would be useful to add this type of functionality to angular.\r\n\r\nexample usage:\r\n\r\n``` html\r\n<html>\r\n <head>\r\n <script src=\"angular.js\"></script>\r\n <script type=\"text/javascript\">\r\n\r\n angular.module(\"App\", []).run(function ($injector) {\r\n $injector.dependencies().forEach(function (item) {\r\n console.log(item.name, item.requires);\r\n });\r\n });\r\n\r\n </script>\r\n </head>\r\n <body ng-app=\"App\"></body>\r\n</html>\r\n```', '7', null, null, 'icholy', '2013-10-03T17:33:44Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3186', '37', '4266', 'fix($compile): fix (reverse) directive postLink fn execution order', 'previously the compile/link fns executed in this order controlled via priority:\r\n\r\n- CompilePriorityHigh, CompilePriorityMedium, CompilePriorityLow\r\n- PreLinkPriorityHigh, PreLinkPriorityMedium, PreLinkPriorityLow\r\n- link children\r\n- PostLinkPriorityHigh, PostLinkPriorityMedium, PostLinkPriorityLow\r\n\r\nThis was changed to:\r\n\r\n- CompilePriorityHigh, CompilePriorityMedium, CompilePriorityLow\r\n- PreLinkPriorityHigh, PreLinkPriorityMedium, PreLinkPriorityLow\r\n- link children\r\n- PostLinkPriorityLow, PostLinkPriorityMedium , PostLinkPriorityHigh\r\n\r\nUsing this order the child transclusion directive that gets replaced\r\nonto the current element get executed correctly (see issue #3558),\r\nand more generally the order of execution of post linking function\r\nmakes more sense. The incorrect order was an oversight that has\r\ngone unnoticed for many suns and moons.\r\n\r\n(FYI: postLink functions are the default linking functions)\r\n\r\nBREAKING CHANGE: the order of postLink fn is now mirror opposite of\r\nthe order in which corresponding preLinking and compile functions\r\nexecute.\r\n\r\nVery few directives in practice rely on order of postLinking function\r\n(unlike on the order of compile functions), so in the rare case\r\nof this change affecting an existing directive, it might be necessary\r\nto convert it to a preLinking function (look at the diff of this\r\ncommit to see how an internal attribute interpolation directive\r\nwas adjusted).\r\n\r\nCloses #3558', '7', null, null, 'IgorMinar', '2013-10-03T18:33:48Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3187', '37', '4267', 'docs(ngValue): add docs for ngValue directive', 'I think this could be worded better, but I\'m having a hard time producing better words.', '4', null, null, 'btford', '2013-10-03T20:31:22Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3188', '37', '4269', 'feat(ngAttr): implement conditional/interpolated attributes directive', 'Based on ngClass, this directive allows for attributes to be conditionally \r\napplied to an element. It also supports attributes with interpolated values.\r\n\r\n1. Simple case: `ng-attr=\"{checked: isChecked}\"`\r\n - The `checked` attribute is added (with no value) when isChecked is\r\ntruthy,\r\n and removed when isChecked is falsy.\r\n\r\n2. With values: `ng-attr=\"\'data-whatever={{value}}\'\"`\r\n - data-whatever has the value of `value` from scope\r\n\r\n3. Set of attributes with interpolated values: `ng-attr=\"[\'attr1={{a}}\', \'attr2={{b()}}\']\"`\r\n - Space separation isn\'t quite enough, but this still allows for some\r\ninteresting stuff.\r\n\r\n4. Conditional attributes with values: `ng-attr=\"{\'data-whatever=shmee\': showWhatever&&!flurp()}\"`\r\n - I\'m sure someone has a reason for doing this, I\'m not sure what it is. But it\'s out there.\r\n\r\n---\r\n\r\nSomeone asked about a way to do this the other night in #angularjs, so I wrote\r\nthis directive just for fun. I thought I\'d submit it just in case anyone felt\r\nit would be useful in any way.\r\n\r\nIf it feels useful, I\'m happy to write up some good documentation for it --\r\nHowever, I\'m not totally sure what the real use cases for this are.', '25', null, null, 'caitp', '2013-10-03T22:20:04Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3189', '37', '4270', 'fix($parse): optional promise unwrapping via an `unwrapPromises:true`', 'Closes #4158', '2', null, null, 'jankuca', '2013-10-03T22:48:22Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3190', '37', '4271', 'feat(jQuery): upgrade to jQuery to 2.0 [WIP]', 'jQuery 2.0 removes `jQuery.cache` which prevents the angular-mocks logic to clean up after each test (to remove element data). There are two tests that fail because of this change. One way to fix this might be monkey-patching `jQuery#data` with a proxy which would keep track of all elements and data that need to be cleaned.', '20', null, null, 'jankuca', '2013-10-03T23:14:05Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3191', '37', '4273', 'Added missing semicolon', 'I was curious as to how Angular was searching for a substring in its array filter, when I came across a missing semicolon.', '2', null, null, 'ilovecomputers', '2013-10-04T01:11:32Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3192', '37', '428', 'eager', 'fix:angular.scope - reintroduce support for eager services: \r\n\r\nCloses #403', '2', null, null, 'Codier', '2011-06-22T18:26:02Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3193', '37', '4281', 'fix(ngResource): Remove request body from $delete', 'Prevent the obj.$delete instance method from sending the resource as the request body. This commit uses the existing hasBody boolean to only set httpConfig.data for methods which should have a request body.\r\n\r\nCloses #4280', '8', null, null, 'bourey', '2013-10-04T19:04:37Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3194', '37', '4282', 'feat(orderBy): speed optimization', 'Closes #4177.', '8', null, null, 'agentcooper', '2013-10-04T19:35:32Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3195', '37', '4283', 'Update step_07.ngdoc', 'Needed to change phonecat for phonecatApp in 2 places in order to get the application to run.', '1', null, null, 'thinklarge', '2013-10-04T22:02:19Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3196', '37', '4284', 'feat(ngParse): support bitwise shift operators', 'Fixes #3834.\n\nProvides support for the signed left-shift \'<<\' operator, signed right-shift\n\'>>\' operator, and unsigned right-shift \'>>>\' operator. The order of\noperations should be sound, according to \nhttps://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Operator_Precedence\n\nI\'m not sure if unsigned right-shift \'>>>\' is particularly useful for many\napplications which would need to $evaluate the expression from a string, so\nit may be removed.\n\nThere are a couple added, however these might be improved with review.', '4', null, null, 'caitp', '2013-10-04T23:31:12Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3197', '37', '4286', 'style(): only instantiate lex/parse once', 'There is no need to instantiate a new lexer and parser for every call to $parse.\r\n\r\n[In fact, since these objects are really singletons in Angular, the optimisation of moving stuff into prototypes for these objects, could have been done less verbosely by putting the shared data and methods into closure]', '1', null, null, 'petebacondarwin', '2013-10-05T10:29:38Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3198', '37', '4287', 'docs($resource): remove extra \"to\" from $resource docs', 'Tiny change to fix wording in the $resource docs.', '2', null, null, 'kzar', '2013-10-05T11:15:36Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3199', '37', '4289', 'Use strict equality when comparing RegExe strings in equals helper', 'I understand that this is not following the commit message syntax. So either close this and re-open with proper syntax, or just merge this PR.', '3', null, null, 'L8D', '2013-10-05T19:16:18Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3200', '37', '4291', 'docs(ngModel): grammar, clarity', '', '1', null, null, 'jdavisp3', '2013-10-05T22:01:02Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3201', '37', '4292', 'Fixed broken anchorScroll documentation demo', '', '3', null, null, 'jbruni', '2013-10-06T01:53:22Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3202', '37', '4293', 'fix(input): determine input[type=number] validity with ValidityState', 'Fixes #2144\r\n\r\n**What happens**:\r\n\r\n```html\r\n<form name=\"form\">\r\n <input type=\"number\" ng-model=\"value\" name=\"value\" />\r\n Number is valid: {{form.value.$valid}}\r\n</form>\r\n```\r\n\r\n- **Chromium** / **Safari** / **Opera**\r\n 1. Non-numeric evaluates to empty string\r\n 2. Empty-string is considered valid unless `require` flag is set\r\n 3. False positive: invalid number reported as valid\r\n\r\n- **Firefox** / **Internet Explorer**\r\n 1. Non-numeric string entered, string is not transformed by native code\r\n 2. Regex tests string for validity\r\n 3. Regex test fails, invalid number reported as invalid\r\n\r\n**This patch should**:\r\n\r\n1. Listen to input\'s `ValidityState` on browsers which implement `ValidityState`\r\n2. Allow the differentiation between \"invalid\" empty strings and \"valid\" empty strings\r\n3. Not need `require` flag to validate number inputs correctly.\r\n4. Provide (kind of gross) framework for adding `ValidityState` support to other InputTypes', '11', null, null, 'caitp', '2013-10-06T04:14:40Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3203', '37', '4295', 'Fix(input): make it work with ngList.', 'Tried to solve Issue #4185.\r\nRight now I managed to pass all the email & url specs by introducing plain check for every email in value array (in case it\'s array) and regular check (if it\'s not).\r\n\r\nShould we just add by-pass validator, so that either default regexp or that set by `pattern` attribute should be used? How will this affect dirty-check? \r\n', '8', null, null, 'sudodoki', '2013-10-06T09:25:32Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3204', '37', '43', 'Fixes issue with angular lexer not understanding numbers in exponential form or numbers starting with .', '', '1', null, null, 'shyamseshadri', '2010-10-09T00:22:09Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3205', '37', '430', 'feat: angularFilter.date: date filter can show day/mon string', ' Support new date format, specifically day of week/Month of year in string\r\n e.g. {{ someDate | data:\"EEE, MMM d, yyyy\" }} -> \"Wed, Jul 10, 2011\"\r\nCloses #396', '2', null, null, 'Codier', '2011-06-23T18:00:57Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3206', '37', '4300', 'Using wrong ctrl name.', 'I changed MainCtrl to ScrollCtrl in the example because MainCtrl is not defined anywhere.\r\n\r\nhttp://plnkr.co/edit/9EXs1KtFQnjMh1nb32xW?p=preview', '2', null, null, 'clouddueling', '2013-10-06T20:01:03Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3207', '37', '4301', '\"unexpected token ;\" syntax error while running tests on non-global controller', 'I assume you could have left it on purpose as you wrote \"Yay! The test passed! Or not...\". Nevertheless, Karma unit test throws \"SynthaxError: Unexpected token ;\" without having inject method close bracket at it\'s place. Best regards!', '2', null, null, 'pzajdel', '2013-10-06T20:25:46Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3208', '37', '4302', 'docs($provider): new example, more guidance on factory() vs service()', 'I was quite confused by `$provide`\'s documentation - it wasn\'t very explicit on which method (`factory()` vs `service()` etc) to use when, and the example given had no good reason to be a singleton.\r\n\r\nI\'ve updated the docs to be explicit. I\'ve also provided a more real-world example that uses an injected service, and has a good reason to be a singleton.\r\n\r\n[It\'s not just me who\'s confused](http://stackoverflow.com/search?q=angularjs+service+vs+factory) by $provide, so I thought it\'d be good to make this page clearer.\r\n\r\nI\'ve made an [external test](http://jsbin.com/EMabAv/1/edit?js,output) for the new documented example.', '10', null, null, 'timruffles', '2013-10-06T22:15:30Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3209', '37', '4304', 'Removes px declaration from x,y coordinates in svg element', 'px is the default unit for x and y coordinates in svg elements.\r\n\r\nhttp://www.w3.org/TR/SVG/coords.html#InitialCoordinateSystem', '3', null, null, 'mrmrs', '2013-10-07T03:30:35Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3210', '37', '4308', 'feat(expressions): allow non-English Unicode letters in identifiers', 'Allow most of the non-English Unicode letters in identifiers inside AngularJS expressions. Please see #2174 for the discussion.\r\n\r\nCloses #2174', '2', null, null, 'gurdiga', '2013-10-07T11:51:32Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3211', '37', '4309', 'Added note about how configuring $locationProvider is mandatory in order...', '... to retrieve URL params', '3', null, null, 'jelling', '2013-10-07T13:06:44Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3212', '37', '4311', 'chore(git): added *.swp to .gitignore', 'Ignore vim swap files.', '7', null, null, 'icholy', '2013-10-07T17:23:00Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3213', '37', '4312', 'Store support object function in variable', 'Storing the supportObject function in a variable so only that references needs to be changed if the function is swapped out.', '2', null, null, 'buddhamagnet', '2013-10-07T17:29:03Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3214', '37', '4317', 'fix($parse): make promise unwrapping opt-in', 'Previously promises found anywhere in the expression during expression\r\nevaluation would evaluate to undefined while unresolved and to the\r\nfulfillment value if fulfilled.\r\n\r\nThis is a feature that didn\'t prove to be wildly useful or popular,\r\nprimarily because of the dichotomy between data access in templates\r\n(accessed as raw values) and controller code (accessed as promises).\r\n\r\nIn most code we ended up resolving promises manually in controllers\r\nanyway and thus unifying the model access there.\r\n\r\nOther downsides of automatic promise unwrapping:\r\n\r\n- when building components it\'s often desirable to receive the\r\n raw promises\r\n- adds complexity and slows down expression evaluation\r\n- makes expression code pre-generation unattractive due to the\r\n amount of code that needs to be generated\r\n- makes IDE auto-completion and tool support hard\r\n- adds too much magic\r\n\r\nCloses #4158\r\nCloses #4270', '4', null, null, 'IgorMinar', '2013-10-07T19:05:10Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3215', '37', '432', 'Browser API refactor for poll() and startPoll()', '', '4', null, null, 'Codier', '2011-06-24T21:21:58Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3216', '37', '4320', 'Improved advanced form documentation example', 'Pass the `$index` directly to the `removeContact` function, instead of searching for it in an expensive `forEach` loop.', '1', null, null, 'jbruni', '2013-10-08T03:09:27Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3217', '37', '4321', 'fix(ngTouch): add $event to ng-swipe', 'Existing documentation implies that an Event object should be available\r\nas $event on swipe directives, which previously was only working for\r\nng-click.\r\n\r\nCloses #4071', '2', null, null, 'akent', '2013-10-08T03:51:01Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3218', '37', '4323', 'Fix simple typo in angular.equals docs', 'JavasScript -> Javascript', '3', null, null, 'mjtamlyn', '2013-10-08T09:42:58Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3219', '37', '4324', 'More strict checking for isNumber() function and isObject() function', 'Simple typeof checking is not enough for isNumber and isObject functions. Because typeof NaN == \"number\" will give true and typeof [] == \"object\" also will give true.\r\n\r\nI think we need these checks because, the developers who is going to use angular.isObject and angular.isNumber functions will be expecting this.', '6', null, null, 'shidhincr', '2013-10-08T12:55:29Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3220', '37', '4327', 'Update dsl.js for select().options() function', 'The select().options() function for multiple options selector does not work at all, also it doesn\'t support input value with option text. Update a fix and also support select options by text.', '3', null, null, 'ransha', '2013-10-08T16:01:42Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3221', '37', '4329', 'docs(ng-tutorial step11): correct Jasmine Matcher url (404)', 'docs(ng-tutorial step11): Corrected Jasmine Matcher link (404)\r\n\r\nChange invalid Jasmine Matcher link:\r\nWas: http://pivotal.github.com/jasmine/jsdoc/symbols/jasmine.Matchers.html\r\nNow: http://github.com/pivotal/jasmine/wiki/Matchers\r\n', '3', null, null, 'mbonaci', '2013-10-08T19:11:59Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3222', '37', '4333', 'test(filters): fix timezone-dependent test', 'Closes #4218', '2', null, null, 'btford', '2013-10-08T23:52:50Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3223', '37', '4335', 'docs(input) Update the name param\'s description to explain its side effect', '', '4', null, null, 'frankamp', '2013-10-09T01:04:21Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3224', '37', '4336', 'feat(ngRoute): route params support in controller definition', '', '5', null, null, 'willmendesneto', '2013-10-09T03:21:05Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3225', '37', '4337', 'feat(rootScope): stopImmediatePropagation method', 'Adding stopImmediatePropagation method to allow stopping of all immediate listeners on the scope. This is similar in behavior to jQuery\'s stopImmediatePropagation. Decision to put it together came out of this thread - https://github.com/angular/angular.js/issues/3564#issuecomment-23607481. Issue #3564', '3', null, null, 'stsvilik', '2013-10-09T04:08:03Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3226', '37', '434', 'fix:SiteMap(docs) in SiteMap.js: SiteMap.xml was wrongly generated', 'doc.id should be used instead of doc.name, otherwise links are wrongly\r\ngenerated', '1', null, null, 'Codier', '2011-06-25T01:25:55Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3227', '37', '4343', 'fix(ngLocale): Turkish shortDate fix', 'The Turkish shortDate format was wrong, [it should be][1] `dd.MM.yyyy`. I don\'t know why the Google closure [has it separated with spaces][2].\r\n[1]: http://en.wikipedia.org/wiki/Date_and_time_notation_in_Turkey\r\n[2]: https://code.google.com/p/closure-library/source/browse/closure/goog/i18n/datetimesymbolsext.js#17471', '5', null, null, 'frapontillo', '2013-10-09T09:23:20Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3228', '37', '4344', 'fix(input): make ngList honor custom separators', 'Remove support for regexp separators, and correctly use custom separator when formatting values into the control.\r\n\r\nFollows @IgorMinar\'s suggestions from #2561, as suggested by @petebacondarwin in #4008.\r\n\r\nThe existing \"should allow custom separator\" test was incomplete, since it did not check that the custom separator was used to format the values in the control.\r\n\r\nNotes:\r\n\r\n1. The behaviour is still not perfect, because when using a custom separator containing whitespace, e.g. `\" | \"`, the spaces should be rendered into the control. Even with my changes, this is not the case, because the `attr.ngList` value has already been trimmed prior to being passed to the directive. I have omitted the failing test for this case. How would we handle this?\r\n\r\n2. The whitespace behaviour should arguably be affected by the value of `ng-trim` where present: I\'d suggest that when it is present, the values between the separators should not be trimmed.', '10', null, null, 'purcell', '2013-10-09T09:52:28Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3229', '37', '4346', 'Missing whenHEAD method', 'That method should exists, please look at:\r\nhttp://docs.angularjs.org/api/ngMock.$httpBackend', '6', null, null, 'artur-trzesiok', '2013-10-09T11:35:04Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3230', '37', '4348', 'Update log.js', 'I saw that the doc shows debugging level, but without explaining that it have dependency issues.\r\n', '2', null, null, 'henry-hz', '2013-10-09T13:56:24Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3231', '37', '435', 'Fix $browser.xhr (JSONP)', 'Creating &lt;script&gt; tags would require a lot of extra work if we want all browsers\r\nto load and execute these scripts. We decided to not implement that in jqLite.\r\n\r\nSee #369 for more information.\r\n\r\nCloses #369', '1', null, null, 'vojtajina', '2011-06-27T17:05:24Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3232', '37', '4351', 'Fixing missing dependency in Step 5 of tutorial', '', '5', null, null, 'tolgaek', '2013-10-09T15:05:35Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3233', '37', '4353', 'fix(ngMock): add missing angular. prefix to isDefined calls in $interval', 'The newly introduced `$interval` mock service for ngMock calls `isDefined`\r\nin the global namespace which fails when used within unit tests.\r\n\r\nThis change adds the missing `angular.` prefix to such `isDefined` calls.\r\n\r\nCloses #4334', '4', null, null, 'mjtko', '2013-10-09T15:32:29Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3234', '37', '4356', 'fix($anchorScroll): fix broken example code with correct controller name', 'The demo does not work\r\nhttp://docs.angularjs.org/api/ng.$anchorScroll\r\n![screenshot 2013-10-09 13 03 40](https://f.cloud.github.com/assets/1016365/1301180/e97f04dc-311d-11e3-9114-bb2d13a4892c.png)\r\n\r\nRename \"MainCtrl\" ng-controller to correct controller name \"ScrollCtrl\"', '3', null, null, 'gdi2290', '2013-10-09T20:05:08Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3235', '37', '4359', 'refactor(ngRepeat): use &1 instead of %2 for even odd checking', 'use \r\n```\r\nindex&1==0\r\n```\r\ninstead of \r\n```\r\nindex%2==0\r\n```\r\nfor even odd checking', '6', null, null, 'demike', '2013-10-10T06:27:45Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3236', '37', '4360', 'fix(modules): stop leaking global variables in tests', 'The routeUtils.js file was declaring a number of functions that were\r\nleaking into other modules such as ngMocks causing tests to pass\r\nincorrectly.', '2', null, null, 'petebacondarwin', '2013-10-10T08:12:27Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3237', '37', '4366', 'docs(ngInit): add note on best practices', 'Adds a note to the docs about acceptable use cases for `ngInit` versus when you should just use a controller.', '8', null, null, 'btford', '2013-10-10T18:51:14Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3238', '37', '4369', 'Update step_05', 'This is missing in the source downloaded for step 5 and in the documentation for step 5.', '2', null, null, 'TheAustinMunro', '2013-10-10T19:51:25Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3239', '37', '437', 'test:ng#class: added a better unit test for ng:class', '', '1', null, null, 'Codier', '2011-06-27T23:46:22Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3240', '37', '4372', 'Animation Performance Fixes', 'Closes #3215\r\nCloses #4011\r\nCloses #4124', '2', null, null, 'matsko', '2013-10-10T20:21:17Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3241', '37', '4373', 'Update dev_guide.mvc.understanding_controller.ngdoc', 'Just added `.controller` syntax to the examples. Feel free to accept this changes. I just feel that for new learners (as me) is more comfortable the controller syntax.', '2', null, null, 'felixcriv', '2013-10-10T21:51:29Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3242', '37', '4374', 'Missing age', 'This needs to be changed in the sample code as well.', '1', null, null, 'jeffkile', '2013-10-10T23:14:53Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3243', '37', '4375', 'Documentation cleanup', '', '3', null, null, 'liebeskind', '2013-10-11T00:26:38Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3244', '37', '4376', 'Update ngClass link to correct page.', 'Link was set to ngShow and it should be set to ngClass.', '3', null, null, 'poeticninja', '2013-10-11T00:56:19Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3245', '37', '4377', 'fix($rootScope): make $digest loop works correctly with $sce trusted values', 'When using `$watch(..., ..., false)` to watch a `$sce` trusted value that is constructed dynamically, $digest comparison fails to recognize that while the trusted value instance may be different, the value being wrapped is the same. This results in the \"10 $digest() iterations reached. Aborting!\" error. A common use case is using a filter to transform HTML and wrap the result with `$sce.trustAsHtml()`. This plunker demonstrates the issue: http://plnkr.co/edit/Q04wTEgMwr7HnSsG0xVs?p=preview.\r\n\r\nThis fix modifies $digest comparison loop to use `$sce.valueOf()` to unwrap values. To save one unwrap operation per comparison, instead of invoking that method to unwrap both the current value and last values, the method is only invoked for the current value and just let the unwrapped value stored in last value.', '16', null, null, 'buunguyen', '2013-10-11T03:54:26Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3246', '37', '4378', 'grunt-contrib-jasmine-node doesnt exist anymore and performance isArray', 'it looks like grunt-contrib-jasmine-node is renamed to grunt-jasmine-node, since it isnt being maintained by the grunt team. npm install will fail because of this.\r\nhttps://npmjs.org/package/grunt-contrib-jasmine-node\r\nhttps://npmjs.org/package/grunt-jasmine-node\r\n\r\nI have also changed the isArray method by a faster one, see benchmarks at the jsperf site:\r\nhttp://jsperf.com/array-isarray-vs-angular-isarray/2\r\n\r\n\r\n\r\n', '7', null, null, 'jtangelder', '2013-10-11T12:04:32Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3247', '37', '4379', 'fix($animate): use getElementsByClassName instead of querySelectorAll', '', '3', null, null, 'matsko', '2013-10-11T12:11:58Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3248', '37', '438', 'doc:angular.mock.browser: added and improved doc for mock browser', '', '1', null, null, 'Codier', '2011-06-28T02:08:31Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3249', '37', '4380', 'chore(npm): grunt-contrib-jasmine-node changed name', '', '6', null, null, 'jtangelder', '2013-10-11T12:39:12Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3250', '37', '4381', 'refact(angular.js): use isArray if available', 'Big improvement, and method is available since IE9...\r\nhttp://jsperf.com/array-isarray-vs-angular-isarray/2\r\n', '8', null, null, 'jtangelder', '2013-10-11T12:40:52Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3251', '37', '4382', 'chore(npm): grunt-jasmine-node travis build', '#4380', '2', null, null, 'jtangelder', '2013-10-11T13:30:35Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3252', '37', '4384', 'Fix small typo in ngInit tutorial instructions', '', '2', null, null, 'tylermcginnis', '2013-10-11T22:59:18Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3253', '37', '4385', 'error on element transclusion collisions', '', '3', null, null, 'IgorMinar', '2013-10-12T00:03:55Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3254', '37', '4386', 'Update directive.ngdoc', 'Attempted to make it easier to read with some minor grammatical adjustments.', '1', null, null, 'sflahave', '2013-10-12T16:15:23Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3255', '37', '4387', 'fix($animate): ensure that a timeStamp is created if not provided by the browser event', 'Firefox and (sometimes) Opera may not provide a timeStamp value in their event when passed\r\nto the event handler. This may cause animations not to close properly. This fix will automatically\r\ncreate a timeStamp value for the event in this situation when missing.\r\n\r\nBroken example (use firefox):\r\nhttp://plnkr.co/edit/jDbt7gJqxe0Y4G5hnogu?p=preview\r\n\r\nWorking example (use firefox)\r\nhttp://plnkr.co/edit/06IKn2WWq0ttvhAdf2Iq?p=preview\r\n\r\nCloses #3053', '5', null, null, 'matsko', '2013-10-12T16:45:39Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3256', '37', '4388', 'feat(ngRoute): route params support in controller definition', '', '9', null, null, 'willmendesneto', '2013-10-12T20:07:36Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3257', '37', '4389', 'refactor(ngSanitize): avoiding setting \'last\' property on array', 'If \'last\' property on \'stack\' array is defined by Object.defineProperty with setter, assigning to \'last\' uses setter and assigns function into array instead of adding it as a method, then htmlParser always fails. Defining it outside of array avoids the conflict on \'last\' property alltogether.', '4', null, null, 'capaj', '2013-10-12T21:43:50Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3258', '37', '439', 'feat:scope: event bus', 'Added two methods: $onEvent and $fireEvent to the scope implementing event bus. Unit tests included.', '1', null, null, 'witoldsz', '2011-06-28T09:39:14Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3259', '37', '4390', 'Update step_07.ngdoc', 'Fixed a typo <scipt> --> <script>', '1', null, null, 'commonlisp', '2013-10-12T22:06:03Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3260', '37', '4391', 'docs(ngNonBindable): clarity', '', '3', null, null, 'jdavisp3', '2013-10-12T22:38:29Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3261', '37', '4392', 'docs(booleanAttrs): grammar, clarity', '', '1', null, null, 'jdavisp3', '2013-10-13T00:34:02Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3262', '37', '4395', 'Update step_04.ngdoc', '', '2', null, null, 'colonelchlorine', '2013-10-13T12:30:32Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3263', '37', '4399', 'Fix incomplete sentence in step_05.ngdoc', '', '1', null, null, 'pzatrick', '2013-10-13T23:51:55Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3264', '37', '44', 'Leak fix + .init compatibility patch', '', '2', null, null, 'IgorMinar', '2010-10-11T21:39:36Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3265', '37', '4400', 'Actually add an `age` property to each phone :) in step_04.ngdoc', '', '2', null, null, 'pzatrick', '2013-10-13T23:59:52Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3266', '37', '4403', 'add <pre/> tags to format code lines', '', '3', null, null, 'royling', '2013-10-14T03:13:58Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3267', '37', '4404', 'Edited typo on line 151', 'Edited typo of \'programatically\' to \'programmatically\'.', '3', null, null, 'davegonzalez', '2013-10-14T06:25:49Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3268', '37', '4405', 'Edited a sentence to be clearer', 'Changed the sentence to be clearer, as the wording seems to be off.', '1', null, null, 'davegonzalez', '2013-10-14T06:46:00Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3269', '37', '4406', 'refactor(angular.js): improve trim performance', 'According to Flagrant Badassery\'s blog http://blog.stevenlevithan.com/archives/faster-trim-javascript and this comparision http://jsperf.com/trim-function, this trim method is faster.', '7', null, null, 'sunnylost', '2013-10-14T07:10:30Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3270', '37', '4408', 'add ngPoster directive for VIDEO tag. ', 'A teeny tiny commit adding support for poster\'s video attribute (http://dev.w3.org/html5/spec-author-view/video.html#attr-video-poster).\r\n`\r\n<video ng-poster=\"{{super-poster-url}}\"></video>\r\n`\r\n\r\nThanks for this awesome front end framework :-)', '10', null, null, 'mfo', '2013-10-14T13:01:28Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3271', '37', '4409', 'Add clarification on defining a controller in both the $routeProvider an...', '...d ng-controller\r\n\r\nA common mistake for beginners is to define a controller in both the $routeProvider and also in the html document under the ng-controller directive. This clarification hopes to prevent developers from doing this in the future.', '1', null, null, 'tylermcginnis', '2013-10-14T16:48:48Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3272', '37', '441', 'feat:$xhr: provide access to $xhr header defaults', '$xhr header defaults are now exposed as $xhr.defaults.headers.common and\r\n$xhr.default.headers.<httpmethod>. This allows applications to configure\r\ntheir defaults as needed.\r\n\r\nThis commit doesn\'t allow headers to be set per request, only per\r\napplication. Per request change would require api change, which I tried\r\nto avoid *for now*.', '2', null, null, 'IgorMinar', '2011-06-29T07:48:41Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3273', '37', '4410', 'docs (tutorial/step_07): Correcting a type-o', 'Changing the spelling of probably.', '2', null, null, 'joshmcadams', '2013-10-14T18:57:26Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3274', '37', '4411', 'fix: don\'t inline css in csp mode.', 'Also add `angular-csp.css` to the resulting build.', '9', null, null, 'tbosch', '2013-10-14T19:09:00Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3275', '37', '4412', 'Moving the creation of a DOM element into the correct scope to prevent detached DOM tree', 'There is a creation of an : a : tag inside the urlUtils however it is created in the outer scope of the only function that uses it which seems to cause that a tag to show up as a detached DOM tree. I have move the creation of that DOM element into the function that uses it in order to prevent the detached DOM tree from happening.', '4', null, null, 'ryanzec', '2013-10-14T19:34:14Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3276', '37', '4415', 'docs(tutorial) Change ctrls to not have name twice in tutorial', 'Naming both the controller and the function passed in to it with the\r\ncontroller name both seems unessecery and confusing to beginners. This\r\ncommit removes the name from the function, as it is in the rest of the\r\ndocs.', '11', null, null, 'VictorBjelkholm', '2013-10-14T21:26:32Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3277', '37', '4417', 'fix($parse): function call context should be safe', '', '7', null, null, 'chirayuk', '2013-10-14T23:06:30Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3278', '37', '4418', 'Update modulerr.ngdoc', '', '1', null, null, 'gh-naylor', '2013-10-15T00:30:00Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3279', '37', '4420', 'docs($provide): Fix minor typo in $provide.factory documentation', 'The docs for $provide.service have factory linked as factor. The link is correct, but the text is wrong.', '2', null, null, 'lord2800', '2013-10-15T02:17:25Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3280', '37', '4421', 'fix($compile): fix missing error handling when new-scope directive is applied before isolated-scope directive', 'Given `dirA`, which requests new scope, and `dirB`, which requests new & isolated scope. If `dirA` is applied *after* `dirB`, `$compile` reports an error (\'Multiple directives [dirB, dirA] asking for new/isolated scope\'), which is expected. However, if `dirA` is applied *before* `dirB`, e.g. because `dirA` has higher priority, then no error is thrown and `dirA` shares the isolated scope created for `dirB`. This is inconsistent and can break `dirA`, which might need to access to parent scope\'s members. This fix addresses this situation by throwing error regardless of order of directive application.\r\n\r\nCloses #4402', '4', null, null, 'buunguyen', '2013-10-15T03:36:12Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3281', '37', '4422', 'docs(guide/animations): markup fix', 'The asterisks make every line a list item even when it meant to be a description paragraph as in this case.', '2', null, null, 'gurdiga', '2013-10-15T03:38:57Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3282', '37', '4424', 'docs(ngNonBindable): punctuation', '', '1', null, null, 'jdavisp3', '2013-10-15T04:21:03Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3283', '37', '4426', 'docs(ngDirective): improve description for `template` and `replace`', 'Improve description for the `template` and `replace` attributes in the “Directive Definition Object” section.', '2', null, null, 'gurdiga', '2013-10-15T07:36:40Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3284', '37', '4427', 'update ngBind.js documentation example', 'Improved doc for ngBind', '3', null, null, 'nicolasbrugneaux', '2013-10-15T07:51:40Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3285', '37', '4429', 'Update step_00.ngdoc', 'Changed \r\n\r\n> The {@link api/AUTO.$injector injector} that will be used for dependency injection when app is created.\r\n\r\nTo\r\n\r\n> The {@link api/AUTO.$injector injector} that will be used for dependency injection is created.', '1', null, null, 'walterhiggins', '2013-10-15T11:29:05Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3286', '37', '4433', 'fixed typo', 'chose -> choose', '1', null, null, 'wiebl', '2013-10-15T15:17:53Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3287', '37', '4443', 'fix(location): check for existence before using', 'Check to see if the value exists before attempting to use it to avoid throwing unnecessary errors\r\n\r\nPartially fixes #4442', '5', null, null, 'eddiemonge', '2013-10-15T22:01:32Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3288', '37', '4444', 'fix(csp): fix csp auto-detection and stylesheet injection', 'When we refactored , we broke the csp mode because the previous implementation\r\nrelied on the fact that it was ok to lazy initialize the .csp property, this\r\nis not the case any more.\r\n\r\nBesides, we need to know about csp mode during bootstrap and avoid injecting the\r\nstylesheet when csp is active, so I refactored the code to fix both issues.\r\n\r\nPR #4411 will follow up on this commit and add more improvements.\r\n\r\nCloses #917\r\nCloses #2963\r\nCloses #4394', '9', null, null, 'IgorMinar', '2013-10-15T22:02:04Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3289', '37', '4446', 'docs($location): add documentation of $location\'s events', 'Added documentation for $locationChangeStart and $locationChangeSuccess\r\n\r\nCloses #1569', '2', null, null, 'olostan', '2013-10-15T22:49:27Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3290', '37', '4447', 'docs($routeProvider): document route.resolve rejection', 'Add documentation that the $routeChangeError event is fired when a route resolve promise is rejected', '3', null, null, 'joshschumacher', '2013-10-15T23:57:38Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3291', '37', '4448', 'Add shorthand dependency declaration to allow for minification of angular-mocks', 'Related to #2250', '4', null, null, 'hammerdr', '2013-10-16T00:20:31Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3292', '37', '4449', 'docs($compile) Updated the sentence fluency', 'In the error reference.\r\nhttp://docs.angularjs.org/error/$compile:multidir?p0=drag&p1=resizeable&p2=isolated%20scope&p3=%3Cdiv%20drag%3D%22%22%20drag-left%3D%22element.left%22%20drag-top%3D%22element.top%22%20resizeable%3D%22%22%20resizeable-height%3D%22element.height%22%20resizeable-width%3D%22element.width%22%20ng-repeat%3D%22element%20in%20card.canvas.elements%22%20class%3D%22element%20ng-isolate-scope%20ng-scope%22%3E', '1', null, null, 'clouddueling', '2013-10-16T01:06:14Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3293', '37', '445', 'Jquery', '', '3', null, null, 'Codier', '2011-07-01T00:07:35Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3294', '37', '4450', 'docs($ngmodel) demonstrate that $parent can be used for isolate scope directives', 'demonstrate that $parent can be used for isolate scope directives', '3', null, null, 'basarat', '2013-10-16T01:14:43Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3295', '37', '4451', 'docs($rootScope) Added example for using a listener function for scope.$watch', 'Added an example for using a listener function for scope.$watch - it has been my experience that this functionality not immediately obvious to many developers.', '3', null, null, 'wesleycho', '2013-10-16T04:07:29Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3296', '37', '4456', 'removed seemingly random text inside api docs', '', '5', null, null, 'maartenst', '2013-10-16T12:59:18Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3297', '37', '4457', 'perf(jqLite): implement and use the `empty` method in place of `html()`', 'jQuery\'s elem.html(\'\') is way slower than elem.empty(). As clearing\r\nelement contents happens quite often in certain scenarios, switching\r\nto using .empty() provides a significant performance boost when using\r\nAngular with jQuery.\r\n\r\nAn example benchmark: http://jsperf.com/html-vs-empty shows extreme performance gains.\r\n\r\nIt would be great to have it for 1.2.0, especially that it doesn\'t introduce any breaking changes.\r\n\r\nOn our current app on a very heavy page the load time was lowered from 2.6s to 2s after applying this patch which gives >20% performance boost.', '16', null, null, 'mzgol', '2013-10-16T13:18:27Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3298', '37', '446', 'doc:markup: wrong spelling for Vojta, all DI\'s fault.', '', '0', null, null, 'Codier', '2011-07-01T03:18:44Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3299', '37', '4461', 'Update step_02.ngdoc', 'fix(test): add beforeEach to load module\r\n\r\nThe non-global controller test throws an error because the test does not know about the module and so can not find the controller. This change tells the test about the module so the test can find the controller.', '2', null, null, 'DanS', '2013-10-16T15:31:53Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3300', '37', '4466', 'Fix(ng:repeat,ng:controller): Change priority order of ng:repeat and add priority to ng:controller', 'Ensure priority is given to ng:controller when using ng:include/ng:repeat in conjuction with ng:controller.\r\n\r\nCloses #4431\r\nCloses #4521', '23', null, null, 'asilluron', '2013-10-16T18:40:27Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3301', '37', '4468', 'fix($injector): allow a constructor function to return a function', 'This change makes `$injector.instantiate` (and thus `$provide.service`) to behave the same as native\r\n`new` operator.', '4', null, null, 'vojtajina', '2013-10-16T19:17:13Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3302', '37', '447', 'doc:$route: Fix $route example and couple of typos in docs', 'Rewrite $route example a bit, as it required $location and $route services\r\nto be eager published in the root scope.\r\n\r\nAdd missing partials (move them to docs/examples directory)\r\n\r\nFix small typos in formatter and ng:options docs.', '2', null, null, 'vojtajina', '2011-07-01T23:41:40Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3303', '37', '4470', 'docs(guide): rewrite guide landing page', 'Change landing page to include a set of curated links with subject\r\nheadings as a guide through Angular\'s docs and other resources.', '1', null, null, 'bradlygreen', '2013-10-16T20:47:22Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3304', '37', '4471', 'docs(ngClass): fix typo', 'demostrates -> demonstrates', '2', null, null, 'sdornan', '2013-10-16T21:09:55Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3305', '37', '4472', 'docs(guide/expression): fixing ng-repeater duplicate key error', 'Issue occurs when the same expression is added twice or more. After that no new expressions can be added.\r\n\r\nThis can be resolved by adding: \"track by $index\" to ng-repeater. This way items are keyed by their position. For reference see:\r\nhttp://docs.angularjs.org/error/ngRepeat:dupes', '2', null, null, 'mmieszek', '2013-10-16T21:19:56Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3306', '37', '4477', 'wrong link for services', 'i thought there might be api/ng/services so in lieu of that, the proposed link seems to have the intended information.', '1', null, null, 'phamdt', '2013-10-17T00:00:56Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3307', '37', '4479', 'fix(ngShowHide): stop ngShow and ngHide applying animations incorrectly', 'Fix ngShow and ngHide so they don\'t animate in/out their classes every time the watch expression is evaluated. These directives now only change when the watch expression\'s boolean value actually changes.\r\n\r\nCloses #4401', '3', null, null, 'grantyb', '2013-10-17T02:27:46Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3308', '37', '4480', 'feat(docs): provide index pages for each angular module', 'Add some nice module pages into the docs areas.\r\n\r\nhttps://s3.amazonaws.com/angularjs-dev/docs-module-pages/docs/index.html', '4', null, null, 'matsko', '2013-10-17T02:54:20Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3309', '37', '4481', 'docs(ngSwitch): rectify the description', 'The previous one was incorrectly stating that “ngSwitch simply choses one of the nested elements and makes it visible”, which is not accurate: it actually removes or inserts the elements.', '4', null, null, 'gurdiga', '2013-10-17T03:49:00Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3310', '37', '4483', '<style>(injectorSpec): fix typo from proved -> provide', '', '2', null, null, 'arunisrael', '2013-10-17T07:00:59Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3311', '37', '4485', 'Fix logic error', '', '2', null, null, 'Augus', '2013-10-17T07:43:54Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3312', '37', '4487', 'fix(ngAnimate):getElementAnimationDetails() function logic error.', '', '2', null, null, 'Augus', '2013-10-17T09:08:26Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3313', '37', '4489', 'docs(tutorial/step_02.ngdoc) Add beforeEach to load module', 'The non-global controller test throws an error because the test does not know about the module and so can not find the controller. This change tells the test about the module so the test can find the controller.', '2', null, null, 'DanS', '2013-10-17T14:05:41Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3314', '37', '4492', 'feat($rootScope): support registration of listener for multiple events', 'Adds support for registering multiple events within a single call, either as a\r\nstring containing space-separated event names, or else as an array of strings.\r\nThe same listener is registered for each name.\r\n\r\nCloses #4432', '6', null, null, 'caitp', '2013-10-17T16:55:49Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3315', '37', '4495', 'fix(ngView): ensure the new view element is placed after the old view element', 'Closes #4362', '4', null, null, 'matsko', '2013-10-17T18:31:19Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3316', '37', '4496', 'Update directive.ngdoc', 'Places list of possible directive names into a list', '1', null, null, 'martco', '2013-10-17T18:32:04Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3317', '37', '4497', 'fix(loader): rename window parameter', 'fix(loader): rename window parameter\r\n\r\nThe parameter name of `window` causes problems with \r\ncode coverage tools.\r\n\r\nCloses #3449', '7', null, null, 'floyd-may', '2013-10-17T18:38:18Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3318', '37', '4498', 'fix(loader): rename window parameter', 'fix(loader): rename window parameter\r\n\r\nThe parameter name of `window` causes problems with \r\ncode coverage tools.\r\n\r\nCloses #3449', '3', null, null, 'floyd-may', '2013-10-17T18:40:11Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3319', '37', '4499', 'Update directive.ngdoc', 'Organizes list of possible directive names into a `<ul>`.\r\n\r\n## Before\r\n![screen shot 2013-10-17 at 1 40 47 pm](https://f.cloud.github.com/assets/420959/1354861/bd7ebae6-375b-11e3-9ad3-e7ed75338312.png)\r\n\r\n## After\r\n![screen shot 2013-10-17 at 1 40 37 pm](https://f.cloud.github.com/assets/420959/1354862/c3164e10-375b-11e3-97a2-1f7ec1657d66.png)\r\n', '2', null, null, 'martco', '2013-10-17T18:42:44Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3320', '37', '4500', 'feat($timeout): Add debouncing support', 'This feature allows resetting the timer on an ongoing `$timeout` promise. The implementation is really simple (see the diff) and fully backwards compatible. Documentation and tests are included. It adds just 98 bytes to the current minified build.\r\n\r\nThe PR adds a fourth optional argument to `$timeout` which is the old promise to be reset.\r\n\r\nWith this feature you can debounce events. In the following example, `doRealSave()` will only be called 2 seconds after the last model change:\r\n```js\r\nvar debounce;\r\nvar doRealSave = function() {\r\n // Save model to DB\r\n}\r\n$scope.save = function() {\r\n // debounce call for 2 seconds\r\n debounce = $timeout(doRealSave, 2000, false, debounce);\r\n}\r\n```\r\nAnd in the form:\r\n```html\r\n<input type=\"text\" ng-model=\"name\" ng-change=\"save()\">\r\n```\r\n\r\nThis PR has been extracted from a bigger one: https://github.com/angular/angular.js/pull/2129', '13', null, null, 'lrlopez', '2013-10-17T19:32:39Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3321', '37', '4501', 'feat($q): add Promise.progress shorthand for notifyCallbacks', 'Shorthand method for $q promises that allows attaching a progress\r\ncallback. Provides the same type of convenience as the existing\r\ncatch shorthand method, and matches functionality existing in the Q\r\nlibrary.\r\n\r\nThis should resolve the only remaining concern addressed in #1998\r\n\r\nCloses #1998', '7', null, null, 'chrisrhoden', '2013-10-17T20:21:31Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3322', '37', '4502', 'Docs generate anchors for headers', 'Each header has now id (which [works as linkable anchor](http://stackoverflow.com/a/484781/531342)).\r\nNested headers have their ancestors in the id, but `h1` is ignored, because that\'s title of the page and so it\'s already contained in the url.\r\n\r\n```html\r\n<h1>$http</h1>\r\n<h2 id=\"description\">Description</h2>\r\n<h3 id=\"description_general-usage\">General usage</h2>\r\n<h2 id=\"methods\">Methods</h2>\r\n<h3 id=\"methods_post\">post</h3>\r\n<h4 id=\"methods_post_parameters\">Parameters</h4>\r\n```\r\n\r\nIt also reports broken links:\r\n```\r\nWARNING: guide/directive (defined in docs/content/guide/directive.ngdoc) points to a non existing anchor \"guide/directive#attributes\"!\r\n```\r\n\r\nIt also collects anchors, so it is possible to use `<a name=\"xxx\"></a>` in the markup and then link to it and it won\'t be reported as a broken link.', '2', null, null, 'vojtajina', '2013-10-17T21:37:52Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3323', '37', '4503', 'Clarification stemming from my own issues', 'It is instructive to give literal examples that reflect common (my) experience of the problem. :)', '5', null, null, 'gdennie', '2013-10-18T00:08:55Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3324', '37', '4506', 'fix($animate): only cancel class-based animations if the follow-up class contains CSS transition/keyframe animation code', 'Closes #4463\r\nCloses #3784', '2', null, null, 'matsko', '2013-10-18T02:39:40Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3325', '37', '4507', 'feat(jqLite): Add automatic prefixing to CSS properties', 'jQuery 1.8 added the automatic CSS property prefixing.\r\n\r\nLess code to write when you don\'t have to worry about managing\r\nprefixes.\r\n\r\nHandles setting prefixed values so is backwards compat.', '19', null, null, 'ryanseddon', '2013-10-18T03:33:54Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3326', '37', '4508', 'Don\'t copy server response to resource value if they are already the same object', 'EXPLANATION\r\n-----------------------\r\nAn $http response interceptor may be used to compare the value sent **to** the server--available via `response.config.data`--to the value returned **from** the server--available via `response.data`--BEFORE logic inside `$resource` copies `response.data` to the resource instance value. The logic of this response interceptor *MAY*, in some cases (see use case below), set the value of `response.data` to `response.config.data` which, when using `$resource` also happens to be a resource instance value.\r\n\r\nThis very simple pull request simply skips `$resource`\'s attempt to copy the `response.data` to the resource value *if* the two already reference the same object. Without this change, the `copy()` function will throw when called from within the resource.\r\n\r\nUSE CASE\r\n----------------\r\nThe use case leading to this pull request is as follows. In an application implementing auto-save, `$resource` is used to periodically persist in-progress changes (identified using `FormController.$dirty`) to the server. While that save request is outstanding, the user may continue to make changes. Because `$resource`\'s default logic will discard any changes made between the time the save request was issued and it returns using `copy(data, value);`, a response interceptor has been implemented with custom application logic to merge three states of the object being saved:\r\n 1. at the time request was issued\r\n 2. the object\'s current state (possibly modified by the user since request was issued) \r\n 3. the object state returned from the server (wherein the server may have made changes e.g. optimistic concurrency, etc.)\r\n\r\nThe application\'s custom merge logic, to avoid firing unnecessary watches or losing the user\'s changes, merges states (1) and (3) onto the existing object which is `response.config.data` and then sets `response.data` to `response.config.data`. This currently causes `$resource` to throw and requires the very minor customization in this pull request. I\'d *LOVE* to NOT have a customized copy of `ngResource` in my app.', '4', null, null, 'jamesandersen', '2013-10-18T03:36:15Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3327', '37', '4509', 'feat($parse): secure expressions by hiding \"private\" properties', '## BREAKING CHANGE:\r\nThis commit introduces the notion of \"private\" properties (properties\r\nwhose names begin and/or end with an underscore) on the scope chain.\r\nThese properties will not be available to Angular expressions (i.e. {{\r\n}} interpolation in templates and strings passed to `$parse`) They are\r\nfreely available to JavaScript code (as before).\r\n\r\nMotivation\r\n----------\r\nAngular expressions execute in a limited context.  They do not have\r\ndirect access to the global scope, Window, Document or the Function\r\nconstructor.  However, they have direct access to names/properties on\r\nthe scope chain.  It has been a long standing best practice to keep\r\nsensitive APIs outside of the scope chain (in a closure or your\r\ncontroller.)  That\'s easier said that done for two reasons: (1)\r\nJavaScript does not have a notion of private properties so if you need\r\nsomeone on the scope chain for JavaScript use, you also expose it to\r\nAngular expressions, and (2) the new \"controller as\" syntax that\'s now\r\nin increased usage exposes the entire controller on the scope chain\r\ngreatly increaing the exposed surface.  Though Angular expressions are\r\nwritten and controlled by the developer, they (1) typically deal with\r\nuser input and (2) don\'t get the kind of test coverage that JavaScript\r\ncode would.  This commit provides a way, via a naming convention, to\r\nallow publishing/restricting properties from controllers/scopes to\r\nAngular expressions enabling one to only expose those properties that\r\nare actually needed by the expressions.', '133', null, null, 'chirayuk', '2013-10-18T03:54:06Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3328', '37', '4512', 'docs(directive): fixed a minor typo', 'Fixed a minor typo:\r\n- eleent => element', '5', null, null, 'suhajdab', '2013-10-18T12:06:11Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3329', '37', '4514', 'fix(angular.js): wrong $httpBackend status code', 'If I run html document as a file in browser (e.g. file:///index.html), then all ajax responses have a protocol \"file\" (and therefore response status code can be 200 or 404)\r\n```\r\n(protocol == \'file\') ? (response ? 200 : 404)\r\n```\r\nlocationProtocol has higher priority in completeRequest function.\r\n\r\nIt\'s critical in mobile hybrid applications which use angularjs (index.html run from local filesystem)', '27', null, null, 'c0rrupt', '2013-10-18T13:06:37Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3330', '37', '4526', 'toJsonReplacer() patch to support Badgerfish Json format', 'Hello,\r\n\r\nsome strange backends, like ours, may accept only Badgerfish Json format which expects text leave nodes to be sent with a single \'$\' key, ref: http://badgerfish.ning.com.\r\nI have seen toJsonReplacer() has been changed from rc2 to rc3 in a way which makes it ease to get it working (by adding the key length as qualification), this is a patch that introduces the change:\r\n--- angular.js 2013-10-18 07:06:34.000000000 +0000\r\n+++ angular.js.patched 2013-10-18 07:03:29.000000000 +0000\r\n@@ -888,7 +888,7 @@\r\nfunction toJsonReplacer(key, value) {\r\nvar val = value;\r\n\r\nif (typeof key === \'string\' && key.charAt(0) === \'$\') {\r\nif (typeof key === \'string\' && key.length > 1 && key.charAt(0) === \'$\') { val = undefined; } else if (isWindow(value)) { val = \'$WINDOW\';\r\nWould it be possible to make it in the stable path?\r\nMany thanks in any case!\r\n\r\nBest regards\r\nRoman', '4', null, null, 'RomanManz', '2013-10-18T22:24:08Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3331', '37', '4527', 'fix($httpbackend): ie11 api changes for jsonp', 'IE11 changed their script api and no longer uses onreadystatechange. It\r\nnow follows other browsers with onload and onerror\r\n\r\nFixes #4523', '11', null, null, 'eddiemonge', '2013-10-19T00:25:56Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3332', '37', '4529', 'fix($httpBackend): Fix for IE9 AJAX request aborting error.', 'Aborting AJAX requests in IE9 makes the XHR object\'s properties inaccessible and throws the following error:\r\n```\r\nSCRIPT575: Could not complete the operation due to error c00c023f.\r\n```', '6', null, null, 'lucassp', '2013-10-19T16:32:19Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3333', '37', '453', 'injector not compatible with Rhino (HtmlUnit)', 'See this discussion:\r\nhttp://groups.google.com/group/angular/browse_thread/thread/d80617f2d8e9255c\r\n\r\nExample project here:\r\nhttps://github.com/mdolk/angular-java-server-midi', '3', null, null, 'mdolk', '2011-07-06T14:10:08Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3334', '37', '4530', 'Docs(tutorial): Corrected a spelling mistake in step 7', 'rpobbaly -> probably', '4', null, null, 'sanketsaurav', '2013-10-19T17:14:49Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3335', '37', '4532', 'Correcting a spelling mistake in step 7 of the tutorial.', '', '3', null, null, 'greenie', '2013-10-19T18:59:44Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3336', '37', '4534', 'fix(isElement): return boolean value rather than `truthy` value.', 'angular.isElement currently returns a truthy object/function, or false. This \npatch aims to correct this behaviour by casting the result of the isElement \nexpression to a boolean value via double-negation.\n\nCloses #4519', '5', null, null, 'caitp', '2013-10-19T19:45:04Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3337', '37', '4535', 'typo fix in tutorial step 7 docs', '', '3', null, null, 'dound', '2013-10-19T20:19:26Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3338', '37', '4536', 'The Git URL for cloning erros out', 'Current path to github gives the following error on Mac (10.8.5) with git 1.7.9.6 (Apple Git-31.1)\r\n\r\n```\r\n$ git clone git://github.com/angular/angular-phonecat.git\r\nCloning into \'angular-phonecat\'...\r\nfatal: unable to connect to github.com:\r\ngithub.com[0: 192.30.252.129]: errno=Connection refused\r\n```', '2', null, null, 'akiani', '2013-10-19T21:07:55Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3339', '37', '4540', 'feat($compile): optionally get controllers from ancestors only', 'Implement option to strengthen require \'^\' operator, by adding another \'^\'.\r\n\r\nWhen a second \'^\' is used, the controller will only search parent nodes for the matching controller, and will throw or return null if not found, depending on whether or not the requirement is optional.\r\n\r\n---\r\n\r\nIt might be good to simply make this strengthened behaviour the default, since given what the original docs were saying, it really is the expected behaviour.\r\n\r\nCloses #4518', '23', null, null, 'caitp', '2013-10-20T07:31:15Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3340', '37', '4541', 'refact(jqLite.js): use classList if available', 'This speeds up the class functions of jqLite.\r\n\r\nhttp://jsperf.com/jqlite-class-methods-vs-classlist', '4', null, null, 'jtangelder', '2013-10-20T11:40:41Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3341', '37', '4544', 'docs(tutorial): Fixing a typo in step_07.ngdoc', 's/rpobbaly/probably/g', '3', null, null, 'smessing', '2013-10-20T18:04:35Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3342', '37', '4545', 'Fixing possible bug in initialization of value', 'Hello, I think I found a bug in initialisation of `value` value in `angular-resource.js`.\r\n\r\nI tried to fetch a Json array from my Api server and was getting the following error:\r\n\r\n```\r\nTypeError: Object #<Resource> has no method \'push\'\r\n``` \r\n\r\nI compared code from `v1.0.6` (which is working okay) with the code from `v1.2.0-rc.3` and found the following difference:\r\n\r\n```Javascript\r\nv1.0.6:\r\nvar value = this instanceof Resource ? this : (action.isArray ? [] : new Resource(data));\r\n\r\nv1.2.0-rc.3:\r\nvar isInstanceCall = data instanceof Resource;\r\nvar value = isInstanceCall ? data : (action.isArray ? [] : new Resource(data));\r\n```\r\n\r\nAnd indeed, `data` is the second parameter to the `Resource[name] = function(a1, a2, a3, a4)` which is called from `Resource.prototype[\'$\' + name] = function(params, success, error)` as:\r\n\r\n```Javascript\r\nvar result = Resource[name](params, this, success, error);\r\n```\r\n\r\nSo `this` in the scope of `Resource.prototype` will, presumably, be always instance of `Resource` and `var isInstanceCall = data instanceof Resource;` will be always set to true.\r\n\r\nI am, most likely, wrong, but the following change fixed my problem. I think it is worth for someone from the team to take a look at what is going in there.', '8', null, null, 'sanyax7', '2013-10-20T18:38:30Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3343', '37', '4547', 'refact(jqLite.js): use classList if available in the hasClass method', 'Should speed up the code. At first I tried to rewrite the other class methods aswell, but things go mad when no class attribute is set. Maybe refactor this also later.\r\n\r\nhttp://jsperf.com/jqlite-class-methods-vs-classlist', '1', null, null, 'jtangelder', '2013-10-20T19:53:24Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3344', '37', '4549', 'fix(ngList):Make ngList work with input of type email, url', 'Validity for inputs are checked for single value using static regexp, which won\'t work with ngList directive on the input, since it\'s getting us an array of attributes.\r\n\r\nJust like [https://github.com/angular/angular.js/pull/4295], but introducing ```every``` helper function, just as I mentioned at my last comment there.', '24', null, null, 'sudodoki', '2013-10-20T20:46:21Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3345', '37', '455', 'feat:gen-docs: enable caching the whole site', 'With the new manifest template, the whole doc site will be cached\r\n', '1', null, null, 'Codier', '2011-07-06T16:57:30Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3346', '37', '4551', '$slide tolerances.', 'This is an example of implementing a configuration for $slide tolerances. Issue #4550.', '4', null, null, 'CWSpear', '2013-10-20T22:02:06Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3347', '37', '4552', 'Update step_07.ngdoc', '', '2', null, null, 'jesselpalmer', '2013-10-20T22:02:26Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3348', '37', '4553', 'fix(input): keep track of min/max attrs on-the-fly', 'Now input[type=button] keeping track of both min and max attrs even if they change over time.', '15', null, null, 'runk', '2013-10-21T03:11:00Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3349', '37', '4556', 'refactor($interpolate): optimize watched $interpolate functions performance', 'This PR improves the performance of watched $interpolate functions: http://jsperf.com/ng-interpolation-optimization/8\r\n\r\nThis is the related Google groups thread, I explain my PR there: https://groups.google.com/forum/#!msg/angular-dev/QmcwYVkfsbo/8Y_pMsal0kYJ\r\n\r\nIf any changes are unclear, point them out and I\'d be happy to elaborate on them :)\r\n\r\nSigned the CLA as Rodric Haddad', '16', null, null, 'rodyhaddad', '2013-10-21T05:12:52Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3350', '37', '4563', 'Linting - Apply Static Analysis to the source code', 'A basic set of jshint rules have been implemented in this PR and the code base has been updated to ensure it passes all the rules.\r\n\r\n- The **chore** commits update the build and implement the jshint rules\r\n- The **style** commits are changes to the code to pass the implemented rules - they are grouped by module.\r\n- There is a jshint task, which does a pass of the code\r\n- Each module has its own .jshintrc config file in its source folder, which allows jshint CLI and editor plugins to check the code separately from the Grunt task.\r\n- Only the src folder has been considered at this stage\r\n- The maxlen rule has been set high purposefully initially, there is a lot of \"over-length\" documentation that needs to be fixed up.', '6', null, null, 'petebacondarwin', '2013-10-21T15:20:35Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3351', '37', '4564', 'style(directive): add line breaks in directives guide', '\r\nadd linebreaks to comments which seem like they were lost before', '4', null, null, 'tkothe', '2013-10-21T15:48:06Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3352', '37', '4567', 'Fix spelling error', '', '4', null, null, 'ahamal', '2013-10-21T18:26:47Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3353', '37', '4570', 'Replaced ng\\\\:view with ng\\:view (Error in the CSS selector!)', 'Replaced ng\\\\:view {\r\n With ng\\:view {\r\n\r\nhttp://docs.angularjs.org/guide/ie#long-version_css-styling-of-custom-tag-names', '2', null, null, 'komputist', '2013-10-21T23:42:34Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3354', '37', '4571', 'Described a semi-new method for “enabling” unknown elements in IE8 the...', '... namespaced “end element” method\r\n\r\nFor completeness, added description of a JavaScript free way (that is: markup based) way of “enabling” support for unknown/custom elements in IE8 (including IE8,IE9,IE10 and IE11 in compatibility mode).\r\n\r\nThe method is basd on an unknown, namespaced “end element” — </x xmlns=\"x\"/>, which goes right after the DOCTYPE, and which disappaers from the DOM (in legacy IE as well as in conforming HTML5 parsers), but which has as effect that all unknown elements (except elements with a colon:prefix) are handled “properly” by IE (that is: it makes IE recognize them as elements, just like the document.createElement(\'foo\'); method does), except that it (unlike the createElement method) doesnt “update” the CSS selector engine, with the consequence that the author must instead use attribute based selectors.', '5', null, null, 'komputist', '2013-10-22T02:25:44Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3355', '37', '4572', 'fix(ngdocs): remove the side search bar', 'BREAKING CHANGE\r\n\r\nThe side search bar on the docs page has been removed in favor of the\r\ntop search bar.', '3', null, null, 'matsko', '2013-10-22T04:17:39Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3356', '37', '4573', 'Animation fixes', 'Closes #4463\r\nCloses #3784\r\nCloses #4397\r\nCloses #4231', '2', null, null, 'matsko', '2013-10-22T06:34:47Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3357', '37', '4577', 'docs(guide/directive): properly wrap `link` in backticks', '', '3', null, null, 'arty-name', '2013-10-22T10:03:15Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3358', '37', '4578', 'docs(guide/bootstrap): fixes typo', '', '2', null, null, 'arty-name', '2013-10-22T10:22:11Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3359', '37', '4580', 'feat(ngMock.$httpBackend): added support for function as URL matcher', 'It\'s now possible to pass a function to match the URL in $httpBackend mocked\r\nexpectations. This gives a more sophisticate control over the URL matching\r\nwithout requiring complex RegExp mantainance or the workaround of creating\r\nan object with a `test` function in order to mimic RegExp interface. Docs\r\nwere also updated.\r\n\r\n\r\n\r\nThis approach was suggested in [this thread](https://groups.google.com/d/msg/angular/3QsCUEvvxlM/Q4C4ZIqNIuEJ)', '15', null, null, 'caiotoon', '2013-10-22T13:44:12Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3360', '37', '4583', 'fix(ngTouch): ngClick directive does not use correct event with jQuery', 'The ngClick directive is not using the correct touch object when jQuery is loaded. This caused the coordinates to get mapped to undefined instead of the actual x and y coordinates. This logic was happening in multiple places so I extracted it into a function to help with simplicity.', '8', null, null, 'steelsojka', '2013-10-22T15:29:30Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3361', '37', '4586', 'fix(ngAnimate): fix cancelChildAnimations throwing exception', 'fix ngAnimate throwing exception in cancelChildAnimations on deletion of\r\nelement (ngAnimate\'s leave decorator) of repeated element when using\r\nng-include on this element.\r\n\r\nCloses #4548', '8', null, null, 'gregolsky', '2013-10-22T18:15:20Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3362', '37', '4589', 'Fixed typo in \'Attributes\' docs', '\'Attributes\' docs, main Description, contain the following typo: \'The the\'.', '1', null, null, 'BrainCrumbz', '2013-10-22T21:59:33Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3363', '37', '459', 'Couple of jqLite fixes', '', '3', null, null, 'vojtajina', '2011-07-07T23:57:41Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3364', '37', '4594', 'feat(directives): Implements the \"notIsolated\" variant of directives with a child scope.', 'When declaring a directive definition object with a truthy notIsolated field, then whatever scope attributes the directive declares won\'t be bound to an isolated child scope, but a normal child scope. This is a necessary feature if Angular is to support directives that transclude their contents into the trascluded content of other transcluding directives, each of which may have bound directive scope attributes. Without this change, for a say high level directive with bound scope attributes whose template includes another say low level directive that transcludes its content, and the high level directive transcludes its content into the transcluded content of the low level directive in its template, then there\'s no way for the high level directive\'s transcluded content to have access to its desired scope as its scope will be a child of the isolate scope of the high level directive that transcludes into the transcluded content of the low level directive, which may or may not have isolate or notIsolated scope attributes. With this change, developers will be able to more richly develop hierarchies of transcluding directives that use other transcluding directives in their templates. It\'s a new feature that should be used sparingly as the transcluded contents of such a high level directive that doesn\'t isolate its scope will be able to modify values on that directive\'s scope, which frankly flies in the face of the philosophy behind directives as small, highly encapsulated pieces of markup and behavior. However, when you think of directives as an encapsulation tool that can scale to any extent of encapsulation, a feature such as this in the face of transclusion becomes quite necessary. Regardless, it\'s certainly one avenue of making Angular easily capable of truly high level encapsulation for the primary authors to take under consideration.', '17', null, null, 'OlenDavis', '2013-10-23T00:54:07Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3365', '37', '4599', 'refactor($parse): refactor repeated code', '', '4', null, null, 'mofas', '2013-10-23T07:08:30Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3366', '37', '460', 'fix:bootstrap: Fix bootstrap on IE<8', 'No reason for including ie-compat in bootstrap, it\'s included during angularInit.\r\n\r\nFix including ie-compat even for production.', '1', null, null, 'vojtajina', '2011-07-08T02:52:03Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3367', '37', '4601', 'Update dev_guide.unit-testing.ngdoc', 'fix a typo.', '1', null, null, 'gabriel-tessier', '2013-10-23T09:51:44Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3368', '37', '4602', 'fix($animate): prevent leaving animate classes after animation is done', 'In some cases ngAnimate transitional classes (like *-remove & *-remove-active) were left after animation was over. Change introduced in this commit prevent such situations.\r\n\r\nCloses #4490', '2', null, null, 'jrencz', '2013-10-23T12:03:24Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3369', '37', '461', 'test:ng:repeat: add test to check $position of second element when array ', 'test:ng:repeat: add test to check $position of second element when array has length 2', '2', null, null, 'Codier', '2011-07-08T16:18:25Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3370', '37', '4610', 'docs(contributing page, localization problem)', 'Changed the contributing page to reflect the fact that angular uses the I18N library, and all changes to localization would be lost', '3', null, null, 'micole', '2013-10-23T18:19:41Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3371', '37', '4611', 'docs(input): fix \"usage as element\" attribute names', 'Docs for input, select, and textarea were incorrectly using camelCase for attribute names.\r\n\r\nAlso fixes ngForm parameters that were causing the usage docs to be incorrect.', '2', null, null, 'dbinit', '2013-10-23T19:18:30Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3372', '37', '4612', 'fix($animate): skip unnecessary addClass/removeClass animations', 'Skip addClass animations if the element already contains the class that is being\r\nadded to element. Also skip removeClass animations if the element does not contain\r\nthe class that is being removed.\r\n\r\nCloses #4401\r\nCloses #2332', '3', null, null, 'matsko', '2013-10-23T20:49:31Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3373', '37', '4614', 'docs($rootScope): added $eval `locals` parameter documentation', 'Added documentation for `locals` parameter of `$eval` method.', '7', null, null, 'caiotoon', '2013-10-24T00:03:01Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3374', '37', '4615', 'Fixed typo: controller -> directive', '', '1', null, null, 'jorganisak', '2013-10-24T00:42:44Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3375', '37', '4616', 'fix($compile): instantiate controlers when re-entering compilation', 'When we re-enter compilation either due to async directive templates or element transclude directive\r\nwe need to keep track of controllers to instantiate during linking.\r\n\r\nThis piece of info was missing when re-entering compilation and that\'s what this commit fixes.\r\n\r\nI also reordered the properties in the previousCompileContext object.\r\n\r\nCloses #4434', '2', null, null, 'IgorMinar', '2013-10-24T05:37:24Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3376', '37', '4618', 'Clarification re angular.mock.module', 'Make it explicit that it is calling the `angular.mock.module()` and not the `angular.module()` function. Same for `angular.mock.inject()`. This was not clear when I read the page.\r\n\r\nIt would be great if somebody could add a better explanation or a few comments to this page. I found it very hard to understand. I\'d do it myself but I still don\'t really understand this code example ;)', '3', null, null, 'KevinSheedy', '2013-10-24T10:50:08Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3377', '37', '462', 'fix(ng:class): ng:class{,-odd,-even} shouldn\'t reset element classes', '- ng:class resets element classes and any classes added after compilation\r\nget lost during $eval()\r\n- add test to show this problem and fix the bug\r\n\r\nCloses #355', '3', null, null, 'Codier', '2011-07-08T16:19:17Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3378', '37', '4621', 'Include missing brace in the second interceptors example', '', '1', null, null, 'mgechev', '2013-10-24T12:59:28Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3379', '37', '4622', 'docs(angular.equals): fix an important error in the description', 'angular.equals calls itself recursively.', '2', null, null, 'thorn0', '2013-10-24T13:38:49Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3380', '37', '4623', 'Allow blob urls in images', 'Urls created using URL.createObjectURL are currently marked unsafe, lets fix this.\r\n\r\nsee #3889', '12', null, null, 'mcfedr', '2013-10-24T13:53:53Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3381', '37', '4625', 'feat($rootScope): implement non-propagating event dispatcher', '$dispatch provides a mechanism to dispatch events to a single scope without worrying about having to terminate propagation. This is useful for many directives which need to communicate with an immediately adjacent scope, but do not wish to propagate the events beyond that point.\r\n\r\nThis patch also (experimentally) combines the event dispatch logic from $broadcast and $emit into a shared routine, so that $dispatch can easily share the same code. Unfortunately the shared code is not super clean, which is\r\nsort of a downside.\r\n\r\nThis is really just an experiment, however a strategy like $dispatch would be useful in a lot of cases, so I\'m interested to see what people think of it.\r\n\r\nThe good news is that, in combination with the \"shared logic\" patch, `$dispatch()` is a one-liner.', '6', null, null, 'caitp', '2013-10-24T14:20:37Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3382', '37', '4628', 'fix: grunt-contrib-jasmine-node non-existant', 'rename package grunt-contrib-jasmine-node to grunt-contrib-jasmine, as the former does not exist\r\n\r\nCloses #4626', '3', null, null, 'mattisfrommars', '2013-10-24T14:24:20Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3383', '37', '4630', 'Update ngIf.js', 'Typo correction for eleent to element', '2', null, null, 'oller', '2013-10-24T15:38:48Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3384', '37', '4631', 'Break sentences for easy digestion.', 'Its always better to keep the sentences small so that the reader can pause and assimilate.', '2', null, null, 'ganarajpr', '2013-10-24T16:30:05Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3385', '37', '4632', 'docs($q): promises are no longer recognized by templating engine.', '', '3', null, null, 'rjferguson21', '2013-10-24T16:54:38Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3386', '37', '4633', 'docs (tutorial) update step 11: angular.module in app.js section', 'Added in \'ngRoute\' and \'phonecatControllers\', which is missing in the text of the tutorial but is in the source for app.js', '1', null, null, 'seanfahey', '2013-10-24T18:10:11Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3387', '37', '4634', 'docs understanding_controller: Rename \'baby\' example to \'grandchild\'', '\r\nThe BabyCtrl was a bit confusing to me and GrandChildCtrl seems to make more sense with the whole \"scope inheritance\" concept, especially alongside the established \"MainCtrl\" and \"ChildCtrl.\"', '2', null, null, 'andrewstuart', '2013-10-24T18:20:14Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3388', '37', '4637', 'chore(grunt): add jshint to the test task', 'It is very easy to let jshint failures slip into the master build if\r\nthe jshint task is not part of the standard local grunt tasks.', '3', null, null, 'petebacondarwin', '2013-10-24T21:50:03Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3389', '37', '4638', 'docs: Grammar fix', '', '2', null, null, 'georgebonnr', '2013-10-25T01:21:23Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3390', '37', '4639', 'docs(guide/overview): grammar corrections and readability improvements', 'George Edward Bonner', '3', null, null, 'georgebonnr', '2013-10-25T04:56:28Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3391', '37', '4642', 'docs(guide/directive): fix a typo', 'use module.directive to register a directive (instead of controller).', '2', null, null, 'royling', '2013-10-25T09:32:54Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3392', '37', '4643', 'feat(locale): Add zipCode Regex to locale', 'Heyho,\r\n\r\nin my current Project I need Regex validation for zipCodes.\r\nI think this problem is generic for many developers.\r\n\r\nSo maybe we should add this to the locale definitions?\r\nI added a example for the de-de locale.\r\n\r\n\r\nLet\'s discuss this :)', '3', null, null, 'robinboehm', '2013-10-25T09:34:41Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3393', '37', '4644', 'docs(guide/e2e-testing): add note about Protractor replacement', 'Added a note to warn people starting new projects about Protractor replacing the current way of doing E2E testing.', '2', null, null, 'bbhoss', '2013-10-25T11:40:13Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3394', '37', '4646', 'docs(ngif): fixes minor typo', 'Fixes minor misspelling in the Parameters detail section', '3', null, null, 'andrewvida', '2013-10-25T13:51:13Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3395', '37', '4647', 'docs(guide/directive):typo', 'Changed directive name from ngBind to myDir as that is what is used in the example.', '1', null, null, 'jgrund', '2013-10-25T13:58:54Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3396', '37', '4648', 'Improved grammar.', '', '1', null, null, 'supercobra', '2013-10-25T14:50:00Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3397', '37', '4649', 'fix($compile): attribute bindings should not break due to terminal directives', 'Recently we changed the priority of attribute interpolation directive to -100\r\nto ensure that it executes early in the post linking phase. This causes issues\r\nwith when terminal directives are placed on elements with attribute bindings\r\nbecause the terminal directive will usually have 0 or higher priority which\r\nresults in attr interpolation directive not being applied to the element.\r\n\r\nTo fix this issue I\'m switching the priority back to 100 and making moving the\r\nbinding setup into the pre-linking function.\r\n\r\nThis means that:\r\n\r\n- terminal directives with priority lower than 100 will not affect the attribute\r\n binding\r\n- if a directive wants to add or alter bindings it can do so in the pre-linking\r\n phase, as long as the priority of this directive is more than 100\r\n- all post-linking functions will execute after the attribute binding has been\r\n set up\r\n- all pre-linking functions with directive priority lower than 100 will execute\r\n after the attribute bindings have been setup\r\n\r\nBREAKING CHANGE: the attribute interpolation (binding) executes as a directive\r\nwith priority 100 and the binding is set up in the pre-linking phase. It used\r\nto be that the priority was -100 in rc.2 (100 before rc.2) and that the binding\r\nwas setup in the post-linking phase.\r\n\r\nCloses #4525\r\nCloses #4528', '4', null, null, 'IgorMinar', '2013-10-25T15:47:36Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3398', '37', '4650', 'Fix for getElementByTagName invoked on Text node.', 'This is a fixed for the problem with the find method when it tries to invoke getElementsByTagName on a TextNode causing the following error:\r\n<code>TypeError: Object #<Text> has no method \'getElementsByTagName\'</code>\r\n\r\nBug report:\r\nhttps://github.com/angular/angular.js/issues/4120', '2', null, null, 'fmoggia', '2013-10-25T17:01:03Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3399', '37', '4651', 'fix(jqLite): ignore incompatible nodes on find()', 'When a jqLite collection contains text nodes, find() does not work :-(\r\n\r\nThis fix ignores all nodes than can\'t do getElementsByTagName()\r\n\r\nIt seems a little bit faster than testing nodeType : http://jsperf.com/nodetype-vs-duck-typing\r\n\r\nCloses #4120', '4', null, null, 'hsablonniere', '2013-10-25T19:56:04Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3400', '37', '4652', 'Update swipe.js, in order to access in Angular controllers to complete e...', '...vent object\r\n\r\nFor example, if the angular application needs to access to pageX and pageY attributes of event object.', '5', null, null, 'manuelpradal', '2013-10-25T20:20:04Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3401', '37', '4653', 'feat(ngAnimate): provide support for staggering animations with CSS', 'https://s3.amazonaws.com/angularjs-dev/ng-stagger/example/animate.html\r\n\r\nhttps://s3.amazonaws.com/angularjs-dev/ng-stagger/example/animate2.html', '11', null, null, 'matsko', '2013-10-25T21:57:37Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3402', '37', '4654', 'WIP fix($compile): don\'t instantiate controllers twice for element transclud...', '...e directives', '6', null, null, 'IgorMinar', '2013-10-26T02:11:32Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3403', '37', '4655', ' prevent confusion about args of input function (e2e testing)', 'Updating docs to prevent confusion about args of input() function being an ng-model vs HTML \"name\" attribute: http://docs.angularjs.org/guide/dev_guide.e2e-testing#comment-941247365, http://docs.angularjs.org/guide/dev_guide.e2e-testing#comment-734673956, http://docs.angularjs.org/guide/dev_guide.e2e-testing#comment-898079915', '2', null, null, 'netpoetica', '2013-10-26T02:45:59Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3404', '37', '4656', 'chore(ngdocs): improve the docs search placeholder text', '', '2', null, null, 'matsko', '2013-10-26T03:59:21Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3405', '37', '4657', 'Fix for style attribute interpolation in templates for directives with replace: true', 'We encountered a bug when attempting to interpolate values in the style attribute on the top level DOM node of directives that set replace: true. \r\n\r\nThe problem appears to stem from templateMergeAttributes() in compile.js, where the style attribute is special cased, but its value is never copied to the `dst` object for use by the attrInterpolatePreLinkFn. Since attrInterpolatePreLinkFn gets an attrs object with no style property, $interpolate() throws an exception when it receives `undefined` as its text arg and attempts to dereference its `length` property. \r\n\r\nI\'ve fixed this by doing the copy to the `dst` object in templateMergeAttributes(). \r\n\r\nJoe has written a unit test in test/ng/compileSpec.js for the issue, which fails for the previous commit and passes with my patch. ', '1', null, null, 'casebeer', '2013-10-26T04:32:03Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3406', '37', '4658', 'doc(directives): fix error: controller used instead of directive', '', '2', null, null, 'jnizet', '2013-10-26T07:59:57Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3407', '37', '466', 'chore:configs: Update test configs, add test-jquery.sh', 'Added test-jquery.sh.\r\nInclude services by /*.js instead of having to name them all.\r\n\r\nWhat do you think about adding **chore** / maintain type into our commit message convention ?', '6', null, null, 'vojtajina', '2011-07-09T09:11:32Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3408', '37', '4660', 'feat($rootScope): optionally limit depth of $watch recursion', 'New parameter to `angular.equals` limits depth of recursion (default is infinite recursion).\r\n\r\n$watch allows a new parameter to limit the depth of equals() when objectEquality is true. Only effects simple objects or array-like objects.\r\n\r\nWhile creating many $watches is not a totally performant feature, this is useful in the case of many nested directives which look at nested properties of the same object, and only really need to care about a single \"level\" of nested properties, or perhaps several levels.', '7', null, null, 'caitp', '2013-10-26T11:33:06Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3409', '37', '4662', 'Allow directive\'s require to be passed an object instead of an array', 'so instead of [\'^country\', \'^state\'], you can now use:\r\nrequire : { countryCtrl: \'^country\', stateCtrl: \'^state\'}\r\n\r\nand then in the link function:\r\n//much better syntax than relying on array locations\r\n link : function (scope, element, attrs, ctrls) {\r\n ctrls.countryCtrl.makeAnnouncement(\'from city\');\r\n ctrls.stateCtrl.makeLaw(\'Jump higher!\');\r\n }', '3', null, null, 'pgilad', '2013-10-26T13:25:03Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3410', '37', '4663', 'add maxlength minlength fix so that value is read in validator', 'This change moves the min and max length attribute value read within the validator rather than outside. This is useful if you need to dynamically change the min and max length values later (i.e. the values are not baked).', '5', null, null, 'ettysekhon', '2013-10-26T13:59:17Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3411', '37', '4665', 'doc(directive): Directive instead of controller', 'Fix mistakenly referenced controller in the sentence', '3', null, null, 'Urigo', '2013-10-26T15:14:36Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3412', '37', '4667', 'typo in \'How directives are compiled\'', '', '1', null, null, 'douglascalhoun', '2013-10-26T16:57:53Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3413', '37', '4668', 'fixed typo in \"Understanding How Scopes Work with Transclused Directives...', '...\"', '2', null, null, 'douglascalhoun', '2013-10-26T17:35:41Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3414', '37', '4670', 'Fixed typo: \'method\' should be \'methods\'.', '', '1', null, null, 'jarrettch', '2013-10-27T05:46:49Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3415', '37', '4671', 'typo fix', '', '1', null, null, 'bilogub', '2013-10-27T08:14:26Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3416', '37', '4674', 'docs(guide/compiler): fixed a typo', 'from \'Transclused\' to \'Transcluded\'', '1', null, null, 'royling', '2013-10-28T01:53:43Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3417', '37', '4676', 'added link to \"developing an angularjs edge\"', '', '2', null, null, 'boneskull', '2013-10-28T03:13:52Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3418', '37', '4677', 'docs(guide): added link to book \"Developing an AngularJS Edge\"', 'Hi, I\'m the author of this book published in April. Please add it to the list of links here. Thanks.\r\n\r\nChristopher Hiller (signed the CLA)', '1', null, null, 'boneskull', '2013-10-28T03:23:16Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3419', '37', '4682', 'feat($rootScope): add possibility to disable temporarily a scope', 'I have a use case in mobile applications when I need to keep complex DOM nodes hidden. These should be shown fast (if the user swipes left for example), and because of that I cannot $destroy the scope or remove the DOM completely, or the user experiences a performance impact. So basically they are kept hidden, with watchers and $digests being triggered with no use. They don\'t need to be updated so frequently, only when they are shown.\r\n\r\nSo I created this solution, where it creates the possibility to disable the scope temporarily, making the $digest and $broadcast skip it and its children.\r\n\r\nI know that the $digest cycle is quite fragile and should be extremely performant, so I sincerely didn\'t know how to change the behavior without adding the new functions. I\'ve tried using an inline while loop, but the code got really ugly. Maybe a perfomance/logic guru can help making this better.', '10', null, null, 'jolealdoneto', '2013-10-28T14:17:52Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3420', '37', '4685', 'handle composition events in NgModelController textInputType', 'Closes #4684', '10', null, null, 'clkao', '2013-10-28T17:07:55Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3421', '37', '4687', 'docs(guide/directive): fix myDraggable for zoomed page', 'Replace screenX/Y with pageX/Y in the myDraggable directive to fix dragging on a zoomed page.', '2', null, null, 'gaborcs', '2013-10-28T21:07:19Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3422', '37', '4688', 'fix($animate): ensure enable/disable animations work when the document node is used', 'Closes #4669', '2', null, null, 'matsko', '2013-10-28T21:08:32Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3423', '37', '4690', 'Improved grammar', '', '1', null, null, 'JoeLeCodeur', '2013-10-28T22:34:36Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3424', '37', '4693', 'docs(CONTRIBUTING.md): add more info for contributors', 'Closes #4636', '2', null, null, 'petebacondarwin', '2013-10-28T22:49:43Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3425', '37', '4694', 'feat($injector): ability to load new modules after bootstrapping', 'Added new method to $injector called loadNewModules.\r\nAdded corresponding unit tests for new method.\r\n\r\n$injector.loadNewModules can be called any time after bootstrap so that any new angular modules defined after bootstrap can still function correctly. Please see https://groups.google.com/d/msg/angular/w0ZEBz02l8s/YK3H0eMmlxcJ for a detailed justification and explanation of this simple but powerful change.', '36', null, null, 'cleyshan', '2013-10-29T02:18:46Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3426', '37', '4695', 'fix($animate): ensure former nodes are fully cleaned up when a follow-up structural animation takes place', 'Closes #4435', '4', null, null, 'matsko', '2013-10-29T04:06:27Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3427', '37', '4696', 'fix($animate): use direct DOM comparison when checking for $rootElement', 'Closes #4679', '3', null, null, 'matsko', '2013-10-29T05:16:57Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3428', '37', '4698', 'Update dev_guide.mvc.understanding_controller.ngdoc', 'Add the word \"to\" on line 66 to change the sentence from:\r\n\r\n\"We add behavior the scope by attaching methods to the `$scope` object.\"\r\n\r\nto:\r\n\r\n\"We add behavior to the scope by attaching methods to the `$scope` object.\"', '2', null, null, 'aevange', '2013-10-29T06:57:26Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3429', '37', '47', 'Feature scope $new and injection', '', '1', null, null, 'mhevery', '2010-10-12T21:58:01Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3430', '37', '4700', 'docs(guide/e2e-testing): fix typo', 'currrent -> current', '2', null, null, 'JulianMayorga', '2013-10-29T18:42:46Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3431', '37', '4702', '(docs: $location) Change name of module in example.', 'The name of the example module is \"ngView\", which might cause needless confusion. Changed name to \"ngViewExample\", which might make it clear that it\'s not attached to the ng-view directive below.', '0', null, null, 'amj', '2013-10-29T20:54:47Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3432', '37', '4704', 'docs(tutorial): add instructions to install karma plugins', 'I followed the tutorial and couldn\'t make karma run in the second step. So I figured out that I needed a `npm install` to get karma plugins. I couldn\'t find instructions about it in the tutorial, so I added it to the first page.', '1', null, null, 'renanivo', '2013-10-29T22:05:22Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3433', '37', '4705', 'Update index.ngdoc', 'Fix broken Directives links in Angular JS API Docs (http://docs.angularjs.org/api/)', '1', null, null, 'fredsa', '2013-10-29T22:40:27Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3434', '37', '4707', 'Make \'Improve this doc\' functionality more discoverable', 'Change button text to \'EDIT\' since that\'s how developers think', '0', null, null, 'fredsa', '2013-10-30T00:23:14Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3435', '37', '4708', '\'Improve this doc\' functionality should be more discoverable for developers', '...rs\r\n\r\nChange button text to \'Edit\'', '3', null, null, 'fredsa', '2013-10-30T00:41:53Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3436', '37', '471', 'fix(bootstrap): fix bootstrap on IE<8 and including ie-compat.js', 'No reason for including ie-compat in bootstrap, it\'s included during angularInit.\r\n\r\nFix including ie-compat even for production.', '1', null, null, 'vojtajina', '2011-07-13T11:26:31Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3437', '37', '4712', 'added required angular version', 'In order to get this working, you need to use the right angular version. So I added it in the docs. This prevents comments like: \'DIDNT WORK\'', '3', null, null, 'xtrasmal', '2013-10-30T13:22:15Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3438', '37', '4714', 'Fix indentation in example', '', '0', null, null, 'adamnbowen', '2013-10-30T14:16:03Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3439', '37', '4717', 'fix(ngSanitize): allow cyrillic symbols', 'Add range of cyrillic symbols to NON_ALPHANUMERIC_REGEXP,\r\nbecause $sanitize(html) return broken Russian/Bulgarian/etc text.', '1', null, null, 'grabus', '2013-10-30T17:38:47Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3440', '37', '4718', 'fix($parse): allow for new lines in expr when promise unwrapping is on', 'Previously, when unwrapping promises was set to `true`, (via `$parseProvider.unwrapPromises(true);`)\r\nan error would occur if a parsed expression had a new line in it.\r\n\r\nThis was because when generating the `evaledFnGetter` [code](https://github.com/angular/angular.js/blob/d434eabec3955f8d56c859c93befe711bfa1de27/src/ng/parse.js#L1020),\r\na new line in an parsed expression would create a new line in a JS string in that code, which is illegal. \r\n\r\nThat is:\r\n```js\r\npw(\"A+\r\nB\")\r\n```\r\n\r\nPlunk with 1.2.0-rc.3: http://plnkr.co/edit/QHJHkQOViLYQYNveMnVL?p=preview\r\nPlunk with this PR: http://plnkr.co/edit/sI1e4vCSw4HBZnjitojG?p=preview\r\n\r\n', '6', null, null, 'rodyhaddad', '2013-10-30T19:28:07Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3441', '37', '4719', 'Adding docs for non-working uppercase characters when using \'=variable\' ...', '...in isolation of scope in directives', '16', null, null, 'farolfo', '2013-10-30T20:46:26Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3442', '37', '472', 'Ie compat fix', 'fixing a bunch of issues related to ie-compat.js, $browser.addJs\r\n\r\nalso includes vojta\'s fix-bootstrap branch', '2', null, null, 'IgorMinar', '2011-07-13T17:45:35Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3443', '37', '4722', 'feat(Angular.js): add externs file for Closure Compiler', 'This adds an (incomplete) externs file for use with the Closure Compiler. Users\r\ncan pass this as -extern to the compiler pass to get type checking and protect\r\ntheir AngularJS use against property renaming in advanced compilation mode.', '0', null, null, 'mprobst', '2013-10-30T22:00:44Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3444', '37', '4723', 'chore(docs/docModuleComponents): allow browser to scroll to anchors', 'This directive, in the documentation application, creates new HTML that contains anchors.\r\nIf we link to one of these anchors we need to give the browser the opportunity to scroll\r\nto them after they have been rendered.\r\nAn example of such an anchor would be http://docs.angularjs.org/api/ng#directive', '3', null, null, 'petebacondarwin', '2013-10-30T22:02:55Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3445', '37', '4725', 'feat(Angular.js): add externs file for Closure Compiler', 'This adds an (incomplete) externs file for use with the Closure Compiler. Users\r\ncan pass this as -extern to the compiler pass to get type checking and protect\r\ntheir AngularJS use against property renaming in advanced compilation mode.', '0', null, null, 'mprobst', '2013-10-30T22:16:05Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3446', '37', '4726', 'fix(ngIf): ngIf removes elements dynamically added to it', 'When using ngIf with ngInclude on the same element, ngIf previously did not remove elements added by ngInclude. Similarly, when using ngIfStart/End, ngIf will miss elements added between the start/end markers added after ngIf is linked.\r\n\r\nThis commit changes the behavior of ngIf to add a comment node at the end of its elements such that elements between the starting comment and this ending comment are removed when ngIf\'s predicate does not hold.', '6', null, null, 'btford', '2013-10-30T22:16:08Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3447', '37', '4727', 'fix($animate): ensure the active class is not applied if cancelled during reflow', '', '1', null, null, 'matsko', '2013-10-30T23:50:42Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3448', '37', '4730', 'docs($rootScope): fix typo', 'fix typo', '0', null, null, 'mofas', '2013-10-31T07:49:13Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3449', '37', '4734', 'doc(input): fix typo', '', '0', null, null, 'timgraham', '2013-10-31T13:11:56Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3450', '37', '4736', 'fix(ngSanitize) - fixed the problem with relative links', 'fixed the problem that relative links was removed by the htmlParser function\r\n\r\nCloses #3748', '13', null, null, 'janbaer', '2013-10-31T16:11:36Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3451', '37', '4737', 'If the underlying model is a date, !== will not work for comparison', 'While using a custom directive that uses a Date for the underlying model, I found out that when $setViewValue is called, Angular decides on whether to call the ngChange listeners via a simple comparison:\r\n\r\n if (this.$modelValue !== value)\r\n\r\nUnfortunately, this doesn\'t work if the model is a Date - javascript doesn\'t properly compare two identical Date objects:\r\n\r\n $ node\r\n var a = new Date(0);\r\n var b = new Date(0);\r\n a !== b\r\n (prints true)\r\n\r\nSo I had to add the following patch that checks whether the model is a Date or not - and if it is, it uses the \"proper\" way to compare Dates in javascript, namely... casting via \"+\".\r\n\r\nI hope this gets accepted - I wasted quite some time tracking this, no need for anyone else to pay the same price...', '8', null, null, 'ttsiodras', '2013-10-31T16:47:32Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3452', '37', '4739', 'fix(ngEventDirectives): parse expression only once during compile phase...', '....', '2', null, null, 'tbosch', '2013-10-31T18:16:01Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3453', '37', '4740', 'WIP: Watchcollection fix', '\r\n', '3', null, null, 'IgorMinar', '2013-10-31T19:30:22Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3454', '37', '4741', 'docs(guide/contribute): remove redundancy and link to CONTRIBUTING.md', 'Closes #4724', '14', null, null, 'btford', '2013-10-31T20:11:34Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3455', '37', '4742', 'Animation Fixes', '', '7', null, null, 'matsko', '2013-10-31T21:30:58Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3456', '37', '4744', 'Make triggerHandler work like in jQuery', 'Make triggerHandler work like jQuery, so that first argument is an event and second argument is a data. Also it is passing data as is, so if I call in one place angular.element(document.body).triggerHandler(\'is-active\', false); then I can expect that in other place I will get false instead of empty array. Hope that makes sense.', '8', null, null, 'szarouski', '2013-11-01T00:21:42Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3457', '37', '4746', 'docs($location): update paramValue description for search() ', 'search() supports an array for paramValue, but this is not described in the docs.', '1', null, null, 'fwielstra', '2013-11-01T13:10:57Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3458', '37', '4747', 'feat($parseProvider): add the `additionalIsIdent` configuration method', 'Allows extending of the set of character allowed in identifiers used in Angular expressions.\r\n\r\nCloses #2174 #3847 ', '10', null, null, 'gurdiga', '2013-11-01T13:48:59Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3459', '37', '4748', 'Added SEO4Ajax in the SEO tools list', 'A follow up to this tweet: https://twitter.com/bradlygreen/status/394659756415016963', '0', null, null, 'gildas-lormeau', '2013-11-01T14:12:20Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3460', '37', '475', 'New $location service', '', '2', null, null, 'vojtajina', '2011-07-14T18:55:03Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3461', '37', '4750', 'Update docs for changing $http headers', 'Added a mention of the `headers` option for $http.', '0', null, null, 'dmkc', '2013-11-01T15:00:57Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3462', '37', '4752', 'Fix Spicy example to show \'very spicy\' initially.', 'Broken - $scope.spicy = \'very\';\r\n\r\nWorks - $scope.spice = \'very\';', '0', null, null, 'joshbowdoin', '2013-11-01T18:42:06Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3463', '37', '4754', 'Fix the docsIsoFnBindExample', 'OK so for me the docsIsoFnBindExample in the directives guide does nothing. That\'s also the point where I got lost a bit in the documentation. I think it\'s because transclusion and isolated scopes need to be explained a bit better still. Anyway, the non-working example didn\'t help my attempts at understanding.\r\n\r\nI\'ve fixed the example so it works, but I have little sense if this fix is in line with what you\'re trying to say in this section.\r\n\r\nHere\'s the plnkr I used to test: http://plnkr.co/edit/EQFTn0?p=preview\r\n\r\n@btford, your input is appreciated.', '5', null, null, 'jure', '2013-11-01T20:34:31Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3464', '37', '4756', 'Update overview.ngdoc', 'inserted a couple of line breaks to increase readability.', '0', null, null, 'jesselpalmer', '2013-11-01T23:00:16Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3465', '37', '4757', 'feat(Angular.js): Add Closure externs for angular.$q.Promise.finally', 'First pull request. Please let me know if I need to change anything.', '6', null, null, 'bigcmos', '2013-11-02T06:32:24Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3466', '37', '4758', 'fix(ngInclude): only run anchorScroll after animation is done', 'We need to wait until animations have added the content to the document before\r\ntrying to `autoscroll` to anchors that may have been inserted.\r\n\r\nI am a little unsure about how I refactored the tests to check for this issue.\r\n\r\nAlso, could someone check whether other things should be moved into the `afterAnimation`\r\nhandler, such as the `$compile`, the `$emit` or the `$eval`?', '3', null, null, 'petebacondarwin', '2013-11-02T09:25:06Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3467', '37', '4760', 'Add the word \"safely\" to clarify', 'I was reading the doc and had to read the code to be sure it was safe. Spelling it out seems easier.', '0', null, null, 'granteagon', '2013-11-02T15:01:18Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3468', '37', '4761', 'fix(httpBackend): IE undefined response in legacy standards mode', 'Fixes issue #4738. IE10 using IE8 document standards mode has\r\nresponseType but response in undefined, responseText has a value in this\r\nscenario.\r\nSolution is to try and fallback to responseText if reponse is empty.', '2', null, null, 'rthomson83', '2013-11-02T16:38:32Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3469', '37', '4764', 'docs($parse): Fix typo', '', '1', null, null, 'forivall', '2013-11-02T20:54:37Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3470', '37', '4766', 'New global filter: limitFromTo', 'Added a new global filter: limitFromTo.\r\n\r\nUsage:\r\n```\r\n<div ng-repeat=\"data in array|limitFromTo:2:8\"></div>\r\n```\r\nReturns a copy of the array from position 2, with 8 elements.\r\n\r\nThe purpose of this filter is to compliment the existing limitTo filter, for when you only want to return a slice of the original array.\r\n', '0', null, null, 'svenanders', '2013-11-02T23:38:57Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3471', '37', '4767', 'New global filter: limitFromTo', 'Added a new global filter: limitFromTo.\r\n\r\nUsage:\r\n```\r\n<div ng-repeat=\"data in array|limitFromTo:2:8\"></div>\r\n```\r\nReturns a copy of the array from position 2, with 8 elements.\r\n\r\nThe purpose of this filter is to compliment the existing limitTo filter, for when you only want to return a slice of the original array.\r\n\r\n\r\n', '0', null, null, 'svenanders', '2013-11-02T23:55:03Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3472', '37', '4768', 'New global filter: limitFromTo', 'Added a new global filter: limitFromTo.\r\n', '0', null, null, 'svenanders', '2013-11-03T00:02:07Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3473', '37', '477', 'feat(filter.date): add support for default datetime formats in en', '- add support for full,long, medium, short datetime formats in en', '2', null, null, 'Codier', '2011-07-15T16:55:59Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3474', '37', '4770', 'New global filter: limitFromTo', 'Creates a new array or string containing only a specified number of elements with an extra parameter specifying the starting point.', '10', null, null, 'svenanders', '2013-11-03T09:18:07Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3475', '37', '4774', 'Update directive.ngdoc', 'The example about transclusion and scopes worked only because the order of scope and element arguments is reversed. To really work, the directive has to define its own scope (at least that\'s my understanding of it).', '10', null, null, 'benol', '2013-11-04T14:24:44Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3476', '37', '4778', 'fix(ngdocs): remove duplicate header ids', 'Headers with ids are being given additional id attributes.\r\nThat\'s causing the test \"ngdoc usage overview should supress description heading\" to fail while building the documentation.\r\nThis prevents additional id attributes from being added to a header that already has an id.', '15', null, null, 'mkolodny', '2013-11-04T18:32:05Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3477', '37', '4779', 'Form leak fix', '', '1', null, null, 'IgorMinar', '2013-11-04T18:35:17Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3478', '37', '4782', 'Correcting example of isolated scope function binding', 'Moving the ng-hide to be in the scope outside the directive in stead of inside and calling the hideDialog function from the controller in stead of just switching the variable boolean value.', '1', null, null, 'mlunoe', '2013-11-04T22:58:12Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3479', '37', '4783', 'Correcting example of isolated scope function binding', 'Putting ng-hide inside the directive to be handled as its own function and adding an increment function to be passed to the directive as a delegate of the on-close function. This better illustrates functionality that might be passed to the directive, as well as which functionality the directive should handle itself.', '1', null, null, 'mlunoe', '2013-11-04T23:10:00Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3480', '37', '4784', 'fix($compile): isolate and non-isolate directives on the same element', 'A non-isolate directive should not get the isolate scope of an isolate directive on the same element.\r\n\r\nPaired with Tobias.', '8', null, null, 'vojtajina', '2013-11-05T01:21:42Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3481', '37', '4786', 'ngRepeat: insert end comment only after last element, not after each iterated item', 'This caused a subtle bug in angular-sortable directive: when moving elements\r\nbetween lists, previousNode was a comment, which doesn\'t have the .parentNode\r\nattribute so the $animate.enter function tried to call insertBefore of a null.\r\n\r\nMoreover, it looks bad that \'end ngRepeat\' comment appears after every iterated\r\nnode, it should be just at the end of the repeat block.', '10', null, null, 'CGenie', '2013-11-05T10:38:45Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3482', '37', '4787', 'Angularjs amd loading support', 'Hi angular team i want to propose a AMD loading solution. \r\nWhen you clone from my fork you have and test on http://localhost:8000/example/amd-require-js/index.html.\r\n\r\n', '0', null, null, 'igorzg', '2013-11-05T12:38:33Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3483', '37', '4788', 'fix(input): re-evaluate value if min/max changed', 'Value was not re-evaluated when min/max changed.\r\n\r\n', '3', null, null, 'quazzie', '2013-11-05T12:44:57Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3484', '37', '479', 'Ngoptions', '', '14', null, null, 'mhevery', '2011-07-18T19:43:29Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3485', '37', '4791', 'feat(input): interpolates form input name attrs for ngModel', '@frankhuster / @niargh has brought up an issue with using the `$index` of a repeated element for the name attribute of a form input.\r\n\r\nI don\'t know how common of a use-case it is, but it seems not especially harmful to do a one-time interpolation in post-link.\r\n\r\nIt shouldn\'t be a breaking change unless people are using interpolation markers in their names.', '44', null, null, 'caitp', '2013-11-05T20:31:10Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3486', '37', '4792', 'Added ng-book link to books', 'Added ng-book.com to the book links.', '0', null, null, 'auser', '2013-11-05T21:01:18Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3487', '37', '4793', 'Added ng-newsletter', 'Added ng-newsletter to weekly updates link', '0', null, null, 'auser', '2013-11-05T21:02:27Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3488', '37', '4794', 'Ngdocs fix', '', '1', null, null, 'petebacondarwin', '2013-11-05T21:25:28Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3489', '37', '4796', 'fix(ngdocs): add ids to headers in tests', 'Doc.markdown (in /docs/src/ngdoc.js) gives headers ids, yet headers don\'t have ids in the specs.\r\nThat\'s causing the tests \"ngdoc markdown should replace text between two [pre] tags\", and \"ngdoc TAG @description should support multiple pre blocks\" to fail when building the documentation.\r\nThis change adds ids to headers in the specs to match the behavior of Doc.markdown.', '3', null, null, 'mkolodny', '2013-11-05T23:19:08Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3490', '37', '4797', 'fix(input) re-validate input[type=number] element when min/max changes', 'There is a bug when you change min/max attr but models\' value stays the same.', '3', null, null, 'runk', '2013-11-05T23:34:40Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3491', '37', '4799', 'Isolate', '', '5', null, null, 'mhevery', '2013-11-06T00:20:47Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3492', '37', '480', 'Defer beefup', '\r\n', '1', null, null, 'IgorMinar', '2011-07-18T20:19:11Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3493', '37', '4800', 'fix($animate): only apply the fallback property if any transition animations are detected', '', '1', null, null, 'matsko', '2013-11-06T06:56:16Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3494', '37', '4801', 'fix(ngInclude & ngView): Conditionally autoscroll after animation', 'We need to wait until animations have added the content to the document before\r\ntrying to autoscroll to anchors that may have been inserted.', '5', null, null, 'jeffbcross', '2013-11-06T06:59:33Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3495', '37', '4803', 'Improve $http\'s caching documentation', 'Make possibility to pass custom cache instance to $http more obvious.', '2', null, null, 'gentooboontoo', '2013-11-06T10:44:26Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3496', '37', '4807', 'ngClass: Add support for conditional map in an array.', 'Allows for ng-class expressions, like:\r\n```html\r\n<div ng-class=\" [classVar, {\'is-active\': activeVar }] \">\r\n```\r\nWhich allows a directive to apply classes it got via attributes in conjunction with conditional classes.\r\n```js\r\n{\r\n scope: {\r\n classVar: \'@myBodyClass\'\r\n }\r\n}\r\n```\r\n\r\n**The current situation:**\r\n*(Assuming classVar is set to \"panel\" and activeVar is true)*\r\n\r\nUsing a map inside an array sets the class to `\"panel [Object object]\"`\r\n\r\nUsing a map like `{classVar: true, \'is-active\': activeVar }` would set the class to `\"classVar is-active\"` instead of the desired `\"panel is-active\"` ', '7', null, null, 'bfanger', '2013-11-06T14:12:21Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3497', '37', '4809', 'fix(ngScenario): disable animations during e2e tests', 'The current tutorial (step-12) fails its e2e tests as the animations are not completing before the\r\nexpectations are checked. This fixes that and is generally the right thing to do for other e2e\r\ntest situations.', '9', null, null, 'petebacondarwin', '2013-11-06T15:02:56Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3498', '37', '4810', '$swipe now sends a cancel event when the mouse leaves the element', 'There was a problem with $swipe and mouse events. When the user reaches the limit of the element while swiping and comes back, the swiping is still active, even if the user released the mouse button while outside the element.\r\n\r\nThis pull request prevent this \"stickiness\" from happening.\r\n\r\nIdeally we would be able to swipe outside the element if we started the swipe inside, but that would mean binding events to the document. And I believe directive try to avoid that as much as possible', '5', null, null, 'standup75', '2013-11-06T15:57:29Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3499', '37', '4812', 'Update dev_guide.mvc.understanding_controller.ngdoc', 'corrected \" model property \'spice\' \" to \" model property \'customSpice\' \" as indicated by the code sample', '0', null, null, 'talwai', '2013-11-06T22:02:22Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3500', '37', '4813', 'chore(docs): specify how ngClass deals with natural CSS transitions', '', '1', null, null, 'matsko', '2013-11-06T23:00:48Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3501', '37', '4815', 'docs(guide/overview): Refactor overview and mvc docs', 'Before, there we multiple overview docs:\r\n- guide/overview\r\n- guide/introduction\r\n- guide/dev_guide.mvc\r\n- guide/dev_guide.mvc.understanding_model\r\n- guide/dev_guide.mvc.understanding_view\r\n- guide/concepts\r\n\r\nNow we have:\r\n- guide/introduction: High level description of Angular with the key benefits but without code or any concrete concepts\r\n- guide/concepts: explains all important concepts with a simple example and contains deep links to the other parts of the guide.\r\n\r\n All the old information was moved into existing documents or deleted when they were duplicates.', '0', null, null, 'tbosch', '2013-11-07T01:10:16Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3502', '37', '4816', 'Fixed typo in ngShow docs', '', '4', null, null, 'swarajban', '2013-11-07T07:04:43Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3503', '37', '4820', 'Use a more editor friendly syntax', 'Since HTML5 using \'data-\' in front of custom attributes is valid so let\'s try and keep things valid and pretty.', '1', null, null, 'ztooner', '2013-11-07T15:33:59Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3504', '37', '4821', 'Fix a typo in index.ngdoc', 'The index page of the guide lists *complimentary* resources where *complementary* resources are intended.', '0', null, null, 'derekpeterson', '2013-11-07T16:52:43Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3505', '37', '4822', 'chore(dependencies): revert to marked@0.2.9 to fix CI builds', 'marked v0.2.10 breaking test:docgen\r\n\r\nTests on travis have been failing the past few days, so I wanted to dig around for the cause.\r\n\r\nTo reproduce:\r\n```bash\r\nrm -rf node_modules/marked\r\nnpm install marked@0.2.9\r\ngrunt test:docgen\r\n\r\n(PASSES)\r\n\r\nrm -rf node_modules/marked\r\nnpm install marked (now installs 0.2.10)\r\ngrunt test:docgen\r\n\r\n(FAILS)\r\n```\r\n\r\nI think the simplest way to fix travis build would be to remove the `~` operator before the version number in package.json, but a more robust fix would involve migrating the code. Clearly there are some breaking changes introduced in v0.2.10', '7', null, null, 'caitp', '2013-11-07T17:06:58Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3506', '37', '4823', 'Disable animations (again)', '', '6', null, null, 'petebacondarwin', '2013-11-07T18:19:30Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3507', '37', '4824', 'docs(guide/directive): clarify code examples for isolated scopes', 'Now using different names for directive attribute and inner property name.\r\nBefore that, \"customer\" was used for both which made it harder to understand.', '0', null, null, 'maxhq', '2013-11-07T18:20:38Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3508', '37', '4825', 'docs(guide/directive): clarify code examples for isolated scopes', 'Now using different names for directive attribute and inner property name.\r\nBefore that, \"customer\" was used for both which made it harder to understand.', '3', null, null, 'maxhq', '2013-11-07T19:31:02Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3509', '37', '4827', 'docs(compile/tplrt): convert html characters to entities', 'HTML elements were getting parsed by as html elements', '1', null, null, 'eddiemonge', '2013-11-07T21:57:04Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3510', '37', '4828', 'docs(guide/filter): Refactor filter guide docs', 'This refactors the filter guide docs into a single file.\r\nAlso removes out of date references to the fact that Angular used to enhance Arrays while evaluating expressions.', '0', null, null, 'tbosch', '2013-11-07T22:16:34Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3511', '37', '4829', 'docs(error/compile/tplmiss): description for missing template', 'No root element was thrown incorrectly for missing template', '5', null, null, 'eddiemonge', '2013-11-07T22:46:52Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3512', '37', '4830', 'typo in httpBackendSpec', 'While browsing through the tests I found what appears to be a typo. The tests pass with and without this spy, so this is possibly something that is no longer used?', '2', null, null, 'bwiklund', '2013-11-08T01:01:52Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3513', '37', '4831', 'chore(grunt): reduce JVM heap size hint on win', 'The current grunt scripts set the maximum JVM heap space to 2GB. While this is only a maximum, and not an initial, it is preventing the JVM from even initializing on a number of people\'s machines. The build still runs successfully for me locally using only 512MB for this setting. See issue #4595 for reported instances.\r\n\r\nCloses #4595', '11', null, null, 'tathamoddie', '2013-11-08T03:06:16Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3514', '37', '4832', 'docs(contribute): justify note about elevation on win', 'This message needs a justification. Without one, it\'s like asking somebody\r\non *nix to run everything under sudo \'just because\'.', '0', null, null, 'tathamoddie', '2013-11-08T03:16:31Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3515', '37', '4833', 'fix(jqLite): fix event.stopImmediatePropagation() so it works as expected', 'jqLite doesn\'t override the default implementation of `event.stopImmediatePropagation` and so it doesn\'t work as expected, i.e, it doesn\'t prevent the rest of the event handlers from being executed. I\'ve fixed that for events handled with `on` and triggered by `triggerHandler`.\r\n\r\nFor the sake of consistency with jQuery, I\'ve also added an `isImmediatePropagationStopped` function to the event object so one can tell whether the immediate propagation was stopped or not.\r\n\r\nLastly, this implementation won\'t immediate stop propagation to event handlers created with `element.addEventListener`. I could have easily solved that by making `stopImmediatePropagation` call its native counterpart, but that would render it incompatible with jQuery\'s implementation. In order to comply with jQuery, I would have to add an `originalEvent` property to the event object so one could call `originalEvent.stopImmediatePropagation()`, but I\'ve found it hard to correctly implement without making the code overly complex.', '36', null, null, 'mbenford', '2013-11-08T04:14:30Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3516', '37', '4838', 'docs(guide/scope): correct CSS rules in Scope Hierarchies example', 'Remove extra selectors .show-scope and .doc-example-live.\r\n\r\nThese classes do not appear using the provided code; the example will not work.\r\n\r\nFiddle example of change: http://jsfiddle.net/72KP4/', '2', null, null, 'aevange', '2013-11-08T17:54:33Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3517', '37', '4839', 'docs(guide/scope) correct explanation of example', 'Remove reference to \'employee\' property as it\'s not used in the example.\r\n\r\nAdd $rootScope injection and definition of \'department\' property mentioned in text.\r\n\r\nFiddle example of change: http://jsfiddle.net/F9L7z/', '1', null, null, 'aevange', '2013-11-08T18:44:02Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3518', '37', '484', 'angular.version + license headers', '', '1', null, null, 'IgorMinar', '2011-07-22T22:54:24Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3519', '37', '4840', 'feat($rootScope): add a useful error message when circular reference cau...', '...ses error in $watch\r\n\r\nWhen there is a circular reference in the expression passed to $watch, a maximum\r\ncall stack error is thrown that does not have a useful stack trace. A quick Google\r\nsearch suggests that many angular users have struggled with this issue. Rewrite the\r\nerror message, giving a hint about where the error is coming from.', '8', null, null, 'nbrustein', '2013-11-08T18:49:34Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3520', '37', '4843', 'docs($compile): Explain that post-link functions run in reverse order.', 'Update the $compile docs to mention the change introduced in #4266.', '0', null, null, 'mfield', '2013-11-08T22:19:53Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3521', '37', '4844', 'docs(ie.doc): Update ie.doc for ie9 compatibility', '\r\nie9 (and I believe older versions) require class=\"ng-app:appName\" as well as id=\"ng-app\"', '3', null, null, 'yoshokatana', '2013-11-08T23:20:12Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3522', '37', '4846', 'docs(downloading): Update downloading docs to 1.2.0 and add ngRoute', 'Looks like this doc hasn\'t been updated in a long time', '2', null, null, 'gdi2290', '2013-11-08T23:38:41Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3523', '37', '4848', 'docs(develop): Update broken links for anchorscroll', 'Fix broken links', '3', null, null, 'gdi2290', '2013-11-09T00:56:09Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3524', '37', '4849', 'feat($parse): toggle evaluation of private fields via $parseProvider.allowPrivateFields()', 'Disallowing evaluation of private fields in Angular expressions should be toggleable through a `config()` block. Usage is shown in ngdoc comments.\r\n\r\nIt\'s worth noting that this behavior defaults to FALSE. \r\n\r\nThat is to say, if you want pre-Angular-1.2 behavior, you must do:\r\n\r\n```javascript\r\nmyModule.config(function($parseProvider) {\r\n $parseProvider.allowPrivateFields(true);\r\n});\r\n```\r\n\r\nPlease let me know if the unit tests are insufficient; they do not consider multiple \"formats\" of private variables as the tests do in 3d6a89e8888b14ae5cb5640464e12b7811853c7e, but the main intent here was to show that the toggle works.', '18', null, null, 'boneskull', '2013-11-09T02:53:29Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3525', '37', '485', 'Filter to support filtering with different currency/number formats ', '', '2', null, null, 'Codier', '2011-07-24T16:32:09Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3526', '37', '4850', 'fix($resource): don\'t use $parse for @dotted.member', 'params and paramDefaults support looking up the parameter value from the\r\ndata object. The syntax for that is `@nested.property.name`.\r\nCurrently, $resource uses $parse to do this. This is too liberal\r\n(you can use values like `@a=b` or `@a | filter` and have it work -\r\nwhich doesn\'t really make sense). It also puts up a dependency on\r\n$parse which is has restrictions to secure expressions used in\r\ntemplates. The value here, though a string, is specified in Javascript\r\ncode and shouldn\'t have those restrictions.', '3', null, null, 'chirayuk', '2013-11-09T05:16:22Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3527', '37', '4854', 'Update step_02.ngdoc', 'A simple typo correction, delete duplicate \'the\' word.', '0', null, null, 'maurocarrero', '2013-11-09T10:49:34Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3528', '37', '4855', 'fix(Angular.js): fix isArrayLike for extends', 'Add spec for isArrayLike\r\nChange element detection to use Node.`hasChildren`\r\nAdd Arguments detection\r\nPrepares a single boolean return instead of several if return boolean\r\nstatements\r\n\r\n1. Convert if-return boolean statements to single boolean return.\r\n\r\n2. Assign boolean conditionals to break up the long boolean return\r\nand avoid repeated calls.\r\n\r\n3. Declare variables at the beginning of function to avoid hoisting errors.\r\nBreak long lines into indented and aligned expressions.\r\n\r\nhttps://github.com/angular/angular.js/issues/4751', '27', null, null, 'jackcviers', '2013-11-09T13:25:15Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3529', '37', '4856', 'Fix NG_VERSION_MINOR typo', '', '3', null, null, 'nordligulv', '2013-11-09T15:19:37Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3530', '37', '4858', 'i18n: Taking numberformatsymbolsext into account', 'There are some errors in certain locale files, I noticed most latin american currencies were wrong. The problem is that closure library keeps a separate file numberformatsymbolsext.js for some languages.\r\n\r\nThis change uses this file too to generate the correct currency chars.\r\n\r\nThe locale generation process now downloads number format symbols from\r\nthis url too\r\n\r\nhttp://closure-library.googlecode.com/svn/trunk/closure/goog/i18n/numberformatsymbolsext.js\r\n\r\nMost locales should now be correct', '5', null, null, 'iamedu', '2013-11-09T19:13:49Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3531', '37', '4859', 'feat($parse): Custom private field tagging', 'Commit 3d6a89e introduced the concept of private field that can not be evaluated on an Angular expression for security reasons.\r\n\r\nThis PR allows changing the pattern that matches a field as private. It also allows disabling the private field access restriction.\r\n\r\nSome examples:\r\n```js\r\nmyModule.config(function($parseProvider) {\r\n // disable private fields restriction\r\n $parseProvider.restrictFieldsMatching(null);\r\n});\r\n```\r\n\r\n\r\n```js\r\nmyModule.config(function($parseProvider) {\r\n // Now private fields will be those beginning with \'priv\'\r\n $parseProvider.restrictFieldsMatching(/^priv/);\r\n});\r\n```\r\n\r\nCustom private fields allow backwards compatibility with AngularJS <1.2 projects that use underscores in scope fields (i.e. data retrieved from a MongoDB instance) while still enjoying the new private field security policy.\r\n\r\nCloses #4509', '4', null, null, 'lrlopez', '2013-11-09T20:34:54Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3532', '37', '486', 'Adds an error callback for $xhr (and friends) and $resource.', 'I\'m expecting you to find fault with my tests, but it seems to work.', '9', null, null, 'kseamon', '2011-07-25T20:51:23Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3533', '37', '4860', 'Changed from phone-list.html to index.html', 'Changed from app/partials/phone-list.html to app/index.html at Animating ngView with CSS Keyframe Animations title.', '0', null, null, 'Waterfish', '2013-11-09T21:04:21Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3534', '37', '4862', 'Issue #4680', 'fix(location,route): Breaks with file:// protocol in Chrome\r\n\r\nFF and IE implementations considere the drive letter as \"host\" and remove it from pathname\r\nCHROME implementation let it as part of the pathname\r\nWe should remove the drive letter from the pathname to let routing work.\r\n\r\nCloses #4680 \r\n', '10', null, null, 'sebastienroul', '2013-11-10T01:34:46Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3535', '37', '4865', 'Revert \"feat($parse): secure expressions by hiding \"private\" properties\"', 'Reverting change introduced by chirayuk which needs further discussion.\r\nCheck line 29 (26 after commit): \"The goal is to prevent exploits against the expression language, but not to prevent exploits that were enabled by exposing sensitive JavaScript or browser apis on Scope.\"\r\n\r\nBut chirayuk\'s commit enforces a convention to regard all properties beginning or ending with underscore as private. Breaks every nonSQL db implementation i know, forcing overhead code.\r\n\r\nWhile white-/blacklisting accessible properties for expressions is a nice feat, this is imho the wrong approach and does not add much in terms of security.\r\nAn attacker at this level is able to read everything on scope. The advocated change and the respective tests convey a false sense of security to unaware devs and will lead to complacency.\r\n\r\nThis reverts commit 3d6a89e8888b14ae5cb5640464e12b7811853c7e.', '4', null, null, 'maxwellium', '2013-11-10T14:29:51Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3536', '37', '4866', 'Update resource.js', '\'Case\' should be the plural \'cases\' since it is talking about multiple possible cases rather than a single case.\r\nFor slightly more info, see the section \'When words like \"none\" are the subject\' in this article: http://writing.wisc.edu/Handbook/SubjectVerb.html', '1', null, null, 'mkolodny', '2013-11-10T17:43:40Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3537', '37', '4868', 'Requirejs AMD support', '**feat**: @IgorMinar In order to make angular able to register components after bootstrap we need slightly change.\r\nTest is created on http://localhost:8000/example/amd-require-js/index.html', '5', null, null, 'igorzg', '2013-11-10T18:28:42Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3538', '37', '4872', 'fix($animate): Correctly retain the old element styles when applyStyle...', '...adds new ones. Fixes #4869', '7', null, null, 'deakster', '2013-11-10T21:43:28Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3539', '37', '4873', 'Clarified sentence in directives doc.', '', '0', null, null, 'xdhmoore', '2013-11-10T22:48:14Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3540', '37', '4874', 'fix(loader): don\'t rely on functions defined in Angular.js', 'The loader had not been tested since minErr had been implemented so was breaking the phonecat tutorial application. Moreover I had added a call to `assertNotHasOwnProperty`, not understanding that loader does not get access to Angular.js functions.\r\n\r\nThe loader now has its own copies of minErr (via AngularFiles.js) and `assertNotHasOwnProperty`.', '4', null, null, 'petebacondarwin', '2013-11-10T23:40:05Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3541', '37', '4875', 'fix(angular-bootstrap): make IE8 happy', '', '1', null, null, 'petebacondarwin', '2013-11-11T00:17:57Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3542', '37', '4879', 'feat(sce): trust resourceUrls where url is in a $cache', 'Enables sce.getTrustedResourceUrl and sce.parseAsResourceUrl to optionally look up urls in a $cacheFactory-generated cache, primarily the $templateCache.\n\nI\'d like to discuss a few things here:\n\n1. Are things in $cacheFactory caches really trusted? In my mind, they should be. But there may be things I\'m missing.\n\n2. How useful would this be for non-template resources? Would it be possible to make it more useful?\n\n3. Is there something I\'m missing where perhaps this isn\'t actually necessary at all? It seemed to be an issue on [plnkr.co](http://plnkr.co/edit/XEtC9UILh7vJ7R4LKrnU?p=preview), although I haven\'t tested it outside of here just yet.\n\nIf it gets merged, it would be a simple thing to modify ng-include and other similar $sce-using core directives to work with it. Or perhaps it might make more sense to enable this as the default behaviour. I\'m interested in finding out.', '4', null, null, 'caitp', '2013-11-11T11:18:20Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3543', '37', '488', 'doc(tutorial): fix navigation widget to work without jQuery', 'jqLite doesn\'t support class selectors, can find only by tag name...', '1', null, null, 'vojtajina', '2011-07-26T21:17:30Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3544', '37', '4882', 'fix for style attribute not being copied to the dst object', 'When we move to 1.2 we got a lot of exceptions in the console:\r\n\r\nTypeError: Cannot read property \'length\' of undefined\r\n at $interpolate (https://ajax.googleapis.com/ajax/libs/angularjs/1.2.0/angular.js:7960:24)\r\n at attrInterpolatePreLinkFn (https://ajax.googleapis.com/ajax/libs/angularjs/1.2.0/angular.js:6354:33)\r\n at https://ajax.googleapis.com/ajax/libs/angularjs/1.2.0/angular.js:6429:44\r\n at nodeLinkFn (https://ajax.googleapis.com/ajax/libs/angularjs/1.2.0/angular.js:6068:13)\r\n at compositeLinkFn (https://ajax.googleapis.com/ajax/libs/angularjs/1.2.0/angular.js:5509:15)\r\n at nodeLinkFn (https://ajax.googleapis.com/ajax/libs/angularjs/1.2.0/angular.js:6082:24)\r\n at compositeLinkFn (https://ajax.googleapis.com/ajax/libs/angularjs/1.2.0/angular.js:5521:15)\r\n at compositeLinkFn (https://ajax.googleapis.com/ajax/libs/angularjs/1.2.0/angular.js:5524:13)\r\n at publicLinkFn (https://ajax.googleapis.com/ajax/libs/angularjs/1.2.0/angular.js:5421:30)\r\n at https://ajax.googleapis.com/ajax/libs/angularjs/1.2.0/angular.js:1287:27 <input type=\"text\" style=\"width:100%; height:100%; background-color:{{model.background}};;width:100%; height:100%; background-color:{{model.background}};\" ng-model=\"model.dataProviderID\" title=\"{{model.toolTipText}}\" svy-autoapply=\"\" svymodel=\"{}\" class=\"ng-isolate-scope ng-pristine ng-valid\"> \r\n\r\n(and a lot more, exactly like that)\r\n\r\nthis is because angular expects that the attributes object has a \"style\" attribute by that name.\r\nBut angular doesn\'t copy that style tag to the dst map in the compile.js code (mergeTemplateAttributes function)\r\n\r\nWe have for example a directive called <datafield> that doesn\'t have the \"style\" attribute (it just have some others)\r\nthen the template of that directive does have a \"style\" tag in the first dom element.\r\nNow angular wants to merge all the attributes in each other. But for the style tag it seems to do something totally different then by other attributes (or even the class which also has a special copy)\r\n\r\nI made a plunker to show the problem also:\r\nhttp://plnkr.co/edit/OdFWJCmlPijE7LIOumAM?p=preview', '7', null, null, 'jcompagner', '2013-11-11T13:59:34Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3545', '37', '4883', 'removed unrelated sentence.', '', '1', null, null, 'smarigowda', '2013-11-11T14:44:26Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3546', '37', '4884', 'another easy way to retrieve scope at console.', '', '1', null, null, 'smarigowda', '2013-11-11T15:04:05Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3547', '37', '4886', 'Docs ($httpBackend): flush()', 'The docs for the `flush()` method contained a few grammatical\r\nerrors and were awkwardly worded. Change the explanation of\r\nthe method to remove errors and read more naturally.', '4', null, null, 'thenickcox', '2013-11-11T16:57:48Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3548', '37', '4894', 'Fixing bug where ngIf adds children repeatedly if condition goes from tr...', 'Fix for bug described in #4893', '4', null, null, 'matthughes', '2013-11-11T21:06:32Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3549', '37', '4896', 'fix ($location): Stop digest loops in $locationWatch by detecting duplicate URL transitions', 'The $locationWatch function will loop forever if it is called when $browser decides that no transition needs to be made, firing extra $locationChangeStart events until it hits the 10 digest iterations loop. This happens commonly in the case when the browser delays too long in updating location.href and additional $locationWatches are fired before location.href is updated.\r\n\r\n(To see what I mean about location.href delays, try \"location.href = \'/whatever\'; alert(location.href);\" in the Chrome console)\r\n\r\nThis patch causes $locationWatch to return an unchanged count in the case when it has attempted to make the same transition twice in a row, thereby stopping the loop and allowing the browser to resolve.\r\n\r\nRepro: http://jsfiddle.net/dbinit/tMmKf', '11', null, null, 'theRobinator', '2013-11-11T23:58:46Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3550', '37', '4897', 'fix(ngIf): don\'t create multiple elements when changing from a truthy to...', '... another thruthy value.\r\n\r\nFixes #4852.', '1', null, null, 'tbosch', '2013-11-12T00:01:09Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3551', '37', '4899', 'feat($resource): pass resource to the dynamic param function', '', '9', null, null, 'chirayuk', '2013-11-12T00:53:41Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3552', '37', '4900', 'Missing closing parentheses in $q code example', 'The $q documentation page is missing a closing parentheses in the it \"should simulate a promise\" code example.', '0', null, null, 'snapwich', '2013-11-12T01:19:51Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3553', '37', '4901', 'chore(mocks): Remove reference to flushNext', '', '4', null, null, 'jbdeboer', '2013-11-12T01:29:07Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3554', '37', '4903', 'docs(content/guide/concepts): Fix badly worded sentence', 'Before: \r\n\r\n> Let\'s add some more logic to the example to\r\nallow to enter and calculate the costs in different currencies and also pay the invoice.\r\n\r\nAfter:\r\n\r\n> Let\'s add some more logic to the example that\r\nallows us to enter and calculate the costs in different currencies and also pay the invoice.', '0', null, null, 'phillipalexander', '2013-11-12T03:26:34Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3555', '37', '4905', 'fix($rootScope): clear phase if an exception is raised by a watcher', 'Add calls to clearPhase() when an exception is raised by a watcher\r\nwhile a digest cycle, in order to not be stuck on `$digest` scope phase', '5', null, null, 'thomasguillory', '2013-11-12T06:32:06Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3556', '37', '4906', 'Correcting minor typo', '', '0', null, null, 'EnGassa', '2013-11-12T07:36:51Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3557', '37', '4907', 'docs(NgModelController): clearify documentation of $setViewValue', 'The current description of NgModelController.$setViewValue is very confusing for a setter: \"Read a value from view\". -- change this in an attempt to make it clearer.', '1', null, null, 'hupf', '2013-11-12T10:27:43Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3558', '37', '4909', 'docs(ngdoc): fix version picker grouping', 'The grouping of the different versions was not correct for the new 1.2.0+ releases.\r\nNow versions are marked as stable only if they have an even number it the minor version\r\nposition (e.g. 1.0.8, 1.2.1, 1.2.0-abcde) and they are not an RC version, (e.g. 1.0.0rc3,\r\n1.2.0-rc2).\r\n\r\nCloses #4908', '1', null, null, 'petebacondarwin', '2013-11-12T12:30:36Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3559', '37', '491', '$Locale service', '', '1', null, null, 'Codier', '2011-07-27T23:18:54Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3560', '37', '4911', 'fix(ngIf): don\'t create multiple elements when changing from a truthy…', '… to another thruthy value.\r\n\r\nFixes #4852.', '0', null, null, 'ulfryk', '2013-11-12T13:50:45Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3561', '37', '4914', 'Communicating use more clearly.', 'With both the class and the expression having the exact same name it makes it difficult to learn how to use this directive just from looking at this example. By making this simple change it makes the example of the `ngClass` directive much more clear.', '5', null, null, 'kentcdodds', '2013-11-12T14:15:31Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3562', '37', '4915', 'fix(ngIf): don\'t create multiple elements when changing from a truthy…', '… to another thruthy value.\r\n\r\n(another way of fixing it)\r\n\r\nFixes #4852.', '2', null, null, 'ulfryk', '2013-11-12T14:22:31Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3563', '37', '4916', 'Fixed step12 correct file reference', '', '1', null, null, 'Toebez', '2013-11-12T14:40:06Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3564', '37', '4918', 'Controllers can also access scope.', '', '0', null, null, 'smarigowda', '2013-11-12T15:38:26Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3565', '37', '4922', 'script.onreadystatechange Does not exist in IE11', 'In order for Jsonp to work correctly in IE11 this is needed.', '8', null, null, 'runxc1', '2013-11-12T17:15:39Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3566', '37', '4923', 'docs(misc/faq): correct formatting', 'Change to backslash to forward slash.\r\n\r\nBackslash is acting as escape character so text is not properly formatted.', '0', null, null, 'aevange', '2013-11-12T18:48:20Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3567', '37', '4924', 'Removed second \'the\' in frase \'references the the name\'', '', '1', null, null, 'fealaer', '2013-11-12T20:07:56Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3568', '37', '4926', 'feat($parse): config option blockPrivateSymbols=false', '', '11', null, null, 'chirayuk', '2013-11-12T22:26:21Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3569', '37', '4928', 'fix(urlUtils): urlUtils doesn\'t return right path for file:// on win', 'Chrome and other browsers on Windows often\r\nappend the drive name to the pathname,\r\nas described in #4680. This would cause\r\nthe location service to browse to odd\r\nURLs, such as /C:/myfile.html,\r\nwhen opening apps using file://.\r\n\r\n(I\'ve verified CLA for primary committer of this PR)\r\n\r\nFixes #4680', '1', null, null, 'jeffbcross', '2013-11-12T23:08:21Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3570', '37', '4929', 'fix($compile): correctly handle interpolated style in replace templates', 'A directive with a template with `replace: true` and an interpolated style at the root element should work correctly.\r\n\r\nCloses #4882.', '2', null, null, 'tbosch', '2013-11-12T23:54:06Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3571', '37', '4932', 'fix(nodeName_): always return lowercase', 'Fixes #3987. Change nodeName_ to always return lowercase. Change code\r\ndirectly using .nodeName to use nodeName() instead.', '4', null, null, 'yuri0', '2013-11-13T00:49:25Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3572', '37', '4933', 'fix($compile): secure form[action] & iframe[srcdoc]', 'Require bindings to form[action] to be $sce.RESOURCE_URL and bindings to\r\niframe[srcdoc] to be $sce.HTML\r\n\r\nCloses #4927\r\n', '5', null, null, 'chirayuk', '2013-11-13T00:50:38Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3573', '37', '4936', 'docs(form): eliminate parenthesis', '', '0', null, null, 'forresst', '2013-11-13T12:28:11Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3574', '37', '4938', 'Fix wrong file reference', 'line 197: mentionning partial template \"phone-list.html\" but changes described below are in main template \"index.html\".', '2', null, null, 'glepretre', '2013-11-13T15:54:03Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3575', '37', '4940', 'fix(httpBackend): should not read response data when request is aborted', 'When a request is aborted, it makes no sense to read the response headers or text.\r\nAlso in IE9, trying to read data (either response headers or text) from an aborted request\r\nthrows an Error c00c023f.\r\n\r\nFixes #4913', '3', null, null, 'gonzaloruizdevilla', '2013-11-13T20:27:18Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3576', '37', '4942', 'fix(urlUtils): made removal of windows drive from path safer', 'Prior to this fix, the urlResolve method would automatically\r\nstrip the first segment of a path if the segment ends in a colon.\r\nThis was to correct undesired behavior in the $location service\r\nusing the file protocol on windows in multiple browsers (see #4680).\r\n\r\nHowever, there could be cases where users intentionally \r\nhave first path segments that end in a colon \r\n(although this conflicts with section 3.3 of rfc3986).\r\n\r\nThe solution to this problem is an extra check to make sure\r\nthe first path segment of the input url does not end with a colon,\r\nto make sure we\'re only removing undesired path segments.\r\n\r\nFixes #4939', '3', null, null, 'jeffbcross', '2013-11-13T20:57:33Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3577', '37', '4948', 'docs(ngModel): describe $viewChangeListeners property', '**Justification:**\r\n\r\nI\'m not sure if this is intended to be a private property or not, but\r\nI think it might be a good idea to mention it in the docs, so that\r\npeople are aware of alternatives to adding redundant scope $watch functions.\r\n\r\n---\r\n\r\nAt any rate, clarifying its public/private-ness would be a good thing to do,\r\nas well as providing some warnings about ways it could be mistakenly abused.', '0', null, null, 'caitp', '2013-11-14T06:54:23Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3578', '37', '495', 'Minor documentation fixes. Should not be any code changes. One test chang', 'Minor documentation fixes. Should not be any code changes. One test changed due to dependency on text in documentation.', '2', null, null, 'dandoyon', '2011-07-30T03:52:05Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3579', '37', '4953', 'Make the default log behavior really not logging debug message', '~~I think the [documented](https://github.com/angular/angular.js/blob/v1.2.0/src/ng/log.js#L14) behavior makes more sense, so it should be respected.~~\r\n\r\nWe keep the behavior to avoid BC, I am just updating the doc.', '4', null, null, 'michelsalib', '2013-11-14T10:47:42Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3580', '37', '4956', 'fix(ngMock): fixes httpBackend expectation with body object', 'Fixes an issue with httpBackend expectations where a given body object\r\nmay not match the actual request body if its keys are serialized in a\r\ndifferent order.', '2', null, null, 'burrows', '2013-11-14T14:50:53Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3581', '37', '4958', 'ngClass + ngAnimate fixes', 'These fixes ensure that ngClass doesn\'t abuse the addClass/removeClass DOM operations (which cause ngAnimate to mess up).\r\n\r\nCloses #4949\r\nCloses #4960', '8', null, null, 'matsko', '2013-11-14T20:44:48Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3582', '37', '4959', 'fix($compile): allow access to the controllers of transcluded elements f...', '...rom child elements.\r\n\r\nAdditional API (backwards compatible)\r\n- Injects `$transclude` (see directive controllers) as 5th argument to directive link functions.\r\n- `$transclude` takes an optional scope as first parameter that overrides the\r\n bound scope.\r\n\r\nDeprecations:\r\n- `transclude` parameter of directive compile functions (use the new parameter for link functions instead).\r\n\r\nRefactorings:\r\n- Don\'t use comment node to temporarily store controllers\r\n- `ngIf`, `ngRepeat`, ... now all use `$transclude`\r\n\r\nCloses #4935.', '5', null, null, 'tbosch', '2013-11-14T21:51:17Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3583', '37', '4963', 'chore(*): remove accidentally created file', 'This removes a file which most likely was added unintentionally.', '0', null, null, 'cburgdorf', '2013-11-14T23:23:50Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3584', '37', '4964', 'fix(ngAnimate): use a fallback CSS property that doesn\'t break existing styles', 'The clip property seems to remove the box-shadow property when an absolute\r\npositioned animation is ongoing. This fix changes the property to be border-spacing\r\nwhich is also very underused. The border-spacing CSS property is only visible\r\nwhen border-collapse is set to separate.\r\n\r\nCloses #4902', '2', null, null, 'matsko', '2013-11-15T05:14:13Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3585', '37', '4965', 'Update migration.ngdoc', 'docs(migration.ngdoc): Spelling error.\r\n\r\nprorperties -> properties', '0', null, null, 'Hypercubed', '2013-11-15T06:20:33Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3586', '37', '4967', 'docs(tutorial): minimum required node.js version is 0.10 (Windows too)', 'The doc has been modified by the following commit: https://github.com/angular/angular.js/commit/bcc6e8d4f64a18039e0ed2eee0b54c17471b43e3\r\nBut the change was not made for the part of Windows.', '0', null, null, 'forresst', '2013-11-15T10:37:19Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3587', '37', '4968', 'fix(*): deleted unused file', '', '1', null, null, 'danielx12', '2013-11-15T10:54:41Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3588', '37', '4972', 'Clear out {{braces text}} when compiling an interpolated text node', 'After setting up the ng-binding directive, clear out the old text content from a curly-braces text interpolation, to avoid momentarily (or longer, as observed in IE and mobile safari) visibly rendering the curly braces on the page.', '10', null, null, 'vin', '2013-11-15T15:11:12Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3589', '37', '4975', 'Add ngRoute example', '', '1', null, null, 'gdennie', '2013-11-15T16:50:02Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3590', '37', '498', 'fix(docs): fix qfs.read() encoding issue', '- must use binary reading when using read function in q-fs module\r\notherwise some unicode character may be garbled.', '1', null, null, 'Codier', '2011-08-01T15:35:41Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3591', '37', '4988', 'Updated the controllerSpec to reflect the codebase', 'The docs did not line up with the codebase / previous steps of the tutorial.', '1', null, null, 'chanced', '2013-11-17T03:56:38Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3592', '37', '4990', 'docs(api): example for $provide.value() uses $provide.value()', 'The example code for `$provide.value()` actually used `$provide.constant()`.\r\nIt now uses `$provide.value()`.\r\n\r\nCloses #4983', '0', null, null, 'jnizet', '2013-11-17T08:45:56Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3593', '37', '4999', 'typo in isolate scope def child vs parent ref', 'Pretty sure it meant parent scope... unless i\'m lost ;)', '0', null, null, 'whyvez', '2013-11-18T13:13:07Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3594', '37', '5', 'This patch makes including angular.js with query params legal', '', '2', null, null, 'alkis', '2010-09-15T17:20:23Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3595', '37', '50', 'Scenario runner', 'Rewritten scenario runner and UI.', '0', null, null, 'esprehn', '2010-10-14T16:49:22Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3596', '37', '500', 'refactor(angular): removed unnecessary parameter for slice function', '- the end index for slice, if not specified, is default to the\r\nend of the array it operates on.', '2', null, null, 'Codier', '2011-08-02T05:49:40Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3597', '37', '5000', 'Ngrepeat multiline', 'allow new line characters in the expression. This allows cleaner writing in the templates - for instance:\r\n\r\n```\r\n<div ng-repeat=\"item in myItems\r\n | filter: searchString\r\n | orderBy: \'name\'\r\n track by \'id\'\">\r\n```', '3', null, null, 'rhysbrettbowen', '2013-11-18T15:37:34Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3598', '37', '5002', 'Typo fix', '\'will may\' => \'may\'', '0', null, null, 'TylerEich', '2013-11-18T16:19:56Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3599', '37', '5004', 'docs(Providers): remove an extra closing parenthesis in the Provider example', '', '0', null, null, 'davegaeddert', '2013-11-18T16:39:58Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3600', '37', '5005', 'docs(Providers): remove an extra closing parenthesis in the Provider example', '', '0', null, null, 'davegaeddert', '2013-11-18T16:53:02Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3601', '37', '5006', 'Spelling', '', '0', null, null, 'gipsy86147', '2013-11-18T16:57:15Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3602', '37', '5011', '$http cache returning a promise', 'First stab at adding support for cache factories that return promises. The motivation for this was adding support for using IndexedDB as a backend of the cache factory when most operations on it are asynchronous and must therefore return promises.\r\n\r\nI\'m not completely happy with the duplication of code in the callback. Also, the mocking of the cache factory may not be the best practice. Feedback appreciated ).', '2', null, null, 'dmkc', '2013-11-18T21:36:10Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3603', '37', '5012', 'fix($http): allow sending Blob data using $http', 'Current workaround is to set $http config.transformRequest property to `null`.', '10', null, null, 'bbaia', '2013-11-18T23:35:56Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3604', '37', '5015', 'Animate fixes', 'Closes #4892\r\nCloses #4902\r\nCloses #4944\r\nCloses #4949\r\nCloses #4952\r\nCloses #4960\r\nCloses #4265\r\nCloses #5014 \r\nCloses #5018', '4', null, null, 'matsko', '2013-11-19T03:39:43Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3605', '37', '5019', 'fix(angular.encodeUriSegment): do not encode semi-colon', 'RFC 3986 indicates that ; is not encoded as part of the URI, as is the case\r\nwith other members of sub-delim. Changed encodeUriSegment to match that\r\nbehaviour, along with the corresponding spec.\r\n\r\nThis was causing a practical issue with Java servers that append `;jsessionid=...` to the path. The `;` was encoded, leading to the following error in PhantomJS as it continually saw the current URL as different to the `$location.absUrl()` which had been encoded:\r\n\r\n```\r\nError: [$rootScope:infdig] 10 $digest() iterations reached. Aborting!\r\nWatchers fired in the last 5 iterations: [[\"fn: $locationWatch; newVal: 7; oldVal: 6\"],[\"fn: $locationWatch; newVal: 8; oldVal: 7\"],[\"fn: $locationWatch; newVal: 9; oldVal: 8\"],[\"fn: $locationWatch; newVal: 10; oldVal: 9\"],[\"fn: $locationWatch; newVal: 11; oldVal: 10\"]]\r\n```\r\n\r\nI note that the specs previously called out `;` specifically for being encoded, which was introduced in 9e30baad3feafc82fb2f2011fd3f21909f4ba29e, and that it has been in place for some time. Is there a reason this might have been needed that I\'ve missed?\r\n\r\nI also note that the same code is in `ngResource`, but I\'m unfamiliar with the codebase and what impact it would have to change that as well. Should the code in there be updated as well?', '22', null, null, 'brettporter', '2013-11-19T05:57:28Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3606', '37', '5020', 'Update directive.ngdoc', 'Show dialog by timeout after it was closed.', '0', null, null, 'Teremok', '2013-11-19T06:10:07Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3607', '37', '5026', 'docs(ngPluralize): There must be a space before \"(\"', 'There must be a space before \"(\"', '0', null, null, 'forresst', '2013-11-19T14:09:00Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3608', '37', '5027', 'docs(ngRepeat): replace \"ian\" in \"in\"', 'Replace \"ian\" in \"in\"', '0', null, null, 'forresst', '2013-11-19T14:11:04Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3609', '37', '5029', 'Update step_02.ngdoc', 'The Wiki pages are deprecated! Added new link for the wiki.', '2', null, null, 'pyprism', '2013-11-19T14:43:44Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3610', '37', '503', 'Jsonp error reporting', '', '1', null, null, 'Codier', '2011-08-03T19:09:09Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3611', '37', '5031', 'Update treatment of boolean attributes', 'It was not explicit and consistently stated that the transient nature of boolean attributes precludes them from hosting binding expressions, undermining the simplicity and elegance of the solution.', '1', null, null, 'gdennie', '2013-11-19T17:34:23Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3612', '37', '5035', 'Mock injector fails webkit', '', '0', null, null, 'wizardwerdna', '2013-11-19T19:27:38Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3613', '37', '5036', 'fix(angular.mock) Repair attempts to modify Error instances, which breaks in PhantomJS and Safari', 'Repairs bugs that prevents injected functions from reporting correct error message and stack information in PhantomJS and Safari, discussed in issue [4994](https://github.com/angular/angular.js/issues/4994)', '1', null, null, 'wizardwerdna', '2013-11-19T19:41:49Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3614', '37', '5037', 'Independent sub FormController via `not-required` attribute', 'This PR implements ability to prevent FormController from linking to parentForm if `not-required` attr is defined on the `[ng-]form` element.\r\n\r\nIt is useful for scenario like below, where `aux` subform can be independently validated without invalidating `parent` form. Without this patch (and `not-required` on the subforms), master \"Save\" button is disabled when aux input fields are not filled out. Idea is to use them only temporarily before adding to master model and then clears them out.\r\n\r\nAlternatively, if subform inputs are not marked as required, then subform \"Add\" buttons will always be enabled. Options are either user or programmer un-friendly.\r\n\r\n(The only workaround I found is to use `ng-if` on the subform to add it to DOM only when requested, but often we need subforms visible all the time, and we can\'t place them elsewhere in the DOM.)\r\n\r\n```html\r\n<ngForm name=\"parent\" ng-submit=\'saveModel(model)\'>\r\n <button ng-disabled=\'parent.$valid\'>Save</button>\r\n\r\n <!-- Colours -->\r\n Selected colours:\r\n <ul>\r\n <li ng-repeat=\"colour in model.colours\">{{colour.name}}</li>\r\n </ul>\r\n\r\n <!-- colour selector subform -->\r\n <ngForm name=\"aux\" not-required>\r\n <input type=\'text\' ng-pattern=\'colour\' required ng-model=\'newColour\' />\r\n <button ng-disabled=\'aux.$valid\' ng-click=\'addColour(colours, newColour); newColour=null\'>Add</button>\r\n </ngForm>\r\n\r\n\r\n <!-- Fabrics -->\r\n Selected fabrics:\r\n <ul>\r\n <li ng-repeat=\"fabric in model.fabrics\">{{fabric.name}}</li>\r\n </ul>\r\n\r\n <!-- fabric selector subform -->\r\n <ngForm name=\"aux\" not-required>\r\n <select ng-options=\'opt in fabricOptions\' required ng-model=\'newFabric\'>\r\n <option value=\'\'></option>\r\n </select>\r\n <button ng-disabled=\'aux.$valid\' ng-click=\'addFabric(fabrics, newFabric); newFabric=null\'>Add</button>\r\n </ngForm>\r\n...\r\n```', '7', null, null, 'slobo', '2013-11-19T20:25:24Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3615', '37', '5039', 'fix(ngMock): don\'t throw readonly assignment err PhantomJS/Safari 6', 'Due to angular-mocks being changed to run in strict mode Safari 6+ and PhantomJS will throw a read only assigment error when trying to concat to the e.stack property.\r\n\r\nI\'ve wrapped the assigment in a try/catch to stop the error happening.\r\n\r\nI created a [test case](http://plnkr.co/edit/dJoXwDONCUvzU7mkpMTs?p=preview) that will show the error happening where I throw an error and it shows angular-mocks complaining.\r\n\r\n![maclion_safari_6 0](https://f.cloud.github.com/assets/143402/1577476/279c9884-516b-11e3-8099-d670a9dd18b3.jpg)\r\n\r\nMight need some help on writing a test for this. I was thinking adding something like the following:\r\n\r\n```js\r\nit(\'should throw correct error message\', inject(function() {\r\n expect(function() {\r\n foo();\r\n }).toThrow(\'Can\\\'t find variable: foo\');\r\n}));\r\n```\r\nSo with the fix the read only assigment error won\'t happen and it should always throw the correct message.\r\n\r\n', '1', null, null, 'ryanseddon', '2013-11-19T22:43:04Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3616', '37', '5043', 'fix($httpBackend): fix HTTP PATCH requests in IE8', 'In Internet Explorer 8, the native XMLHttpRequest object does not allow the HTTP PATCH method. In order to accomplish a PATCH, you need to use the ActiveX object. Update the default XHR to use the ActiveX object when doing a PATCH in IE8. See the following for documentation:\r\n\r\n* http://blogs.msdn.com/b/ieinternals/archive/2009/07/23/the-ie8-native-xmlhttprequest-object.aspx\r\n* http://bugs.jquery.com/ticket/13240\r\n* http://codepen.io/jeffschenck/full/yjczt (to quickly replicate the issue in IE8)\r\n\r\nDiscussed previously in #2518. I wanted to put together an example of how we could fix this, and Travis reports a green light on this branch. I\'m not too familiar with the structure and internals of the project yet, though, so if you point me in the direction of how to add tests for HttpBackend (which appears to be mocked in testing) and any cleanup needed, I\'m happy to work on it. ', '11', null, null, 'jeffschenck', '2013-11-20T02:26:17Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3617', '37', '5045', 'refactor($sce): Use $sniffer instead of $document for feature detection.', 'Also adds `$sniffer.msieDocumentMode` property.\r\n\r\nFixes #4931.', '9', null, null, 'tbosch', '2013-11-20T04:43:23Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3618', '37', '5047', 'fix(ngMock window.inject): Remove Error \'stack\' property changes', 'Recent browsers, particularly PhantomJS 1.9.2 and Safari 7.0\r\ntreat the stack property as non-configurable and unwritable.\r\n\r\nBecause window.inject captures the stack at the time of the inject,\r\nand attempts to insert it into a captured throw from the injected\r\nfunction by modifying e.stack, a meaningless error message and\r\nstack is thrown instead.\r\n\r\nThis commit inserts two tests exposing the problem, and implements\r\na solution passing those tests. The solution provides an object that\r\nmimics the old Error object, with the additional stack information, where\r\npossible (Error is not standardized on stack, line and file information), and\r\nthen captures the toString function from the Error object prototype.\r\n\r\nAn exception is IE8 or less, which fails to yield meaningful messages\r\nunder both the status quo and this instant commit. Accordingly, the test\r\nmemorializes the current IE8 behavior as a passing example.\r\n\r\nmodified: src/ngMock/angular-mocks.js\r\nmodified: test/ngMock/angular-mocksSpec.js', '22', null, null, 'wizardwerdna', '2013-11-20T07:09:58Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3619', '37', '5048', 'Docs: Fixed two small typos for ngAnimate', 'Line 162: \'defiend\' should be \'defined\'\r\n\r\nLine 225: \'callback function be excuted\' should be \'callback function will be executed\'.', '0', null, null, 'jarrettch', '2013-11-20T07:25:55Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3620', '37', '505', '$xhr rewrite', '**!!! WIP !!!**\r\n\r\n:beer:', '9', null, null, 'vojtajina', '2011-08-04T23:40:35Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3621', '37', '5050', 'fix(loader): expose `$$minErr` to modules such as`ngResource`', 'This is highlighted in angular-phonecat when you try to use the index-async.html\r\nwhich needs to load the ngResource module asynchronously but fails when it tries\r\nto call `angular.$$minErr` to create the $resourceMinErr object.\r\n\r\nThis will finally solve the issues blocking https://github.com/angular/angular-phonecat/pull/90', '1', null, null, 'petebacondarwin', '2013-11-20T10:45:49Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3622', '37', '5056', 'feat($browser): add expires to cookies() method', 'This PR add a new optional parameter to the cookies() method to allow the expire date to be explicit. Please note the test cannot check the expire date so the only way to test is to check its validity if its set in the past or in the future. If you have a better idea on how to test it I can improve it. ', '1', null, null, 'erubboli', '2013-11-20T17:27:32Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3623', '37', '5057', 'minor changes to wording for style and grammar correction', '', '1', null, null, 'jodytate', '2013-11-20T18:12:01Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3624', '37', '5058', 'docs(faq): update compressed and minified file size', '\r\n![gzip](https://f.cloud.github.com/assets/1016365/1587068/9fb1552c-5232-11e3-8aa4-66199b88e096.png)\r\n\r\n\r\ncurrently the docs say <a href=\"http://docs.angularjs.org/misc/faq#faq_questions_whats-angulars-performance-like\" target=\"_blank\"> < 29KB</a>', '0', null, null, 'gdi2290', '2013-11-20T22:27:03Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3625', '37', '5059', 'refactor(angular.extend): support recursive merging (deep copy)', 'Support recursive merging of objects\r\n\r\nThis does not create any breaking changes', '20', null, null, 'dysfunc', '2013-11-20T22:34:17Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3626', '37', '5061', 'fix($resource): Always return a resource instance when calling class met...', '...hods on resources.\r\n\r\nPreviously, calling `MyResource.save(myResourceInstance)`returned\r\na promise, in contrast to the docs for `$resource`. However,\r\ncalling `MyResource.save({name: \'Tobias\"})`already correctly\r\nreturned a resource instance.\r\n\r\nFixes #4545.', '5', null, null, 'tbosch', '2013-11-21T00:46:41Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3627', '37', '5063', 'fix(copy): preserve prototype chain when copying object', 'So far, angular.copy was copying all properties including those from\r\nprototype chain and was losing the whole prototype chain (except for Date,\r\nRegexp, and Array).\r\n\r\nDeep copy should exclude properties from the prototype chain because it\r\nis useless to do so. When modified, properties from prototype chain are\r\noverwritten on the object itself and will be deeply copied then.\r\n\r\nMoreover, preserving prototype chain allows instanceof operator to be\r\nconsistent between the source object and the copy.\r\nBefore this change,\r\n\r\n var Foo = function() {};\r\n var foo = new Foo();\r\n var fooCopy = angular.copy(foo);\r\n foo instanceof Foo; // => true\r\n fooCopy instanceof Foo; // => false\r\n\r\nNow,\r\n\r\n foo instanceof Foo; // => true\r\n fooCopy instanceof Foo; // => true\r\n\r\nThe new behaviour is useful when using $http transformResponse. When\r\nreceiving JSON data, we could transform it and instantiate real object\r\n\"types\" from it. The transformed response is always copied by Angular.\r\nThe old behaviour was losing the whole prototype chain and broke all\r\n\"types\" from third-party libraries depending on instanceof.\r\n\r\nThis PR is somewhat related to issues #4996, #3767 and #1427.', '33', null, null, 'gentooboontoo', '2013-11-21T08:57:30Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3628', '37', '5065', 'refactor: simplify conditional assignment statements via ternary operator', '', '14', null, null, 'dimirc', '2013-11-21T09:43:08Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3629', '37', '5066', 'Add expire date to cookies', 'Cookies are supposed to be persistent storage so we want them to live as\r\nlong as possible.', '1', null, null, 'adoconnection', '2013-11-21T09:53:41Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3630', '37', '5068', 'docs(ngShowHide): update example in description', 'To remove or to add ng-hide class only depends on the boolean value of ngShow/ngHide property. \r\nSo the initial state of ng-hide class does not affect the visibility.\r\n\r\nUse ng-show and ng-hide respectively.', '2', null, null, 'xenosoz', '2013-11-21T10:48:58Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3631', '37', '5070', 'Update ie.ngdoc', 'Added text from https://github.com/angular/angular.js/issues/4974 where petedarwinbacon responded to an IE7 issue.', '0', null, null, 'scottywakefield', '2013-11-21T14:27:29Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3632', '37', '5072', 'feat($LogProvider): flag to allow hide/show of $log.info()/$log.log()', 'Add method to set a flag to enable/disable $log.info() and $log.log() messages.\r\n**$logProvider.enableMessages(false|true)**\r\nThis is similar to how $logProvider.debugEnabled() works.\r\n\r\n- I havent gotten the tests to pass yet, theres an error in the logSpec saying $LogProvider undefined. ', '4', null, null, 'mwq27', '2013-11-21T19:31:30Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3633', '37', '5073', 'chore(docs): remove Disqus comments', 'We don\'t actively moderate these comments, and they range from\r\nout of date, to inflammatory, to spam. Going forward, improvements\r\nto the docs should be done via a PR, and questions should go on\r\nStackOverflow where they can be curated and kept up to date by\r\nAngularJS developers who help out there.', '7', null, null, 'btford', '2013-11-21T19:35:28Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3634', '37', '5075', 'fix(tests): Correct tests for IE11', 'Some tests were wrong. However, src/* did not contain problems.\r\n\r\nFixes #5046', '4', null, null, 'tbosch', '2013-11-21T22:31:23Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3635', '37', '5080', 'chore(mocks): wrap angular-mocks.js in closure', 'The `use strict;` that was at the top of this file was bleeding into other files and preventing the use of other test helpers that don\'t use strict mode. This was in a TODO so I figured it just needed to get committed :)', '6', null, null, 'davemo', '2013-11-22T00:53:13Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3636', '37', '5081', 'Updated email regex to support 11 character TLDs', 'fix(ng.directive:input.text): Email validation regular expression update to support 11 character TLDs\r\n\r\nUpdate EMAIL_REGEXP\r\n - Allow for 11 character TLD\'s instead of the previous 6', '4', null, null, 'scribblet', '2013-11-22T01:17:33Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3637', '37', '5082', 'Ngview transclude', '', '4', null, null, 'tbosch', '2013-11-22T01:44:33Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3638', '37', '5083', 'fix(input): email addresses can have 12 char TLDs', 'fix(input): email addresses can have 12 char TLDs\r\n\r\nUpdate EMAIL_REGEXP variable\r\n - Allow for 12 character TLD\'s instead of the previous 6\r\n - See here for reference: http://newgtlds.icann.org//en/program-status/delegated-strings\r\n - Longest new TLD is .CONSTRUCTION with a length of 12', '9', null, null, 'scribblet', '2013-11-22T02:00:06Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3639', '37', '5084', 'fix(ngAnimate): correctly retain and restore existing styles during and after animation', 'Closes #4869', '2', null, null, 'matsko', '2013-11-22T02:44:16Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3640', '37', '5086', 'docs(migration): add a note about \"private\" properties being reverted', 'Just looked at the migration guide and this caught my attention :)\r\n\r\nIf there\'s a better way to formulate it, or it shouldn\'t be an `alert-info`, feel free to suggest an alternative and I\'ll do the changes if necessary.', '2', null, null, 'rodyhaddad', '2013-11-22T04:30:45Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3641', '37', '5087', 'Added optional fourth step on appending the compiled html to the Dom.', 'I had to search and search on what to do with the result from `Step 3` and once I figured it out, I thought it\'d be helpful for other readers what to do with it practically.', '1', null, null, 'marclipovsky', '2013-11-22T05:59:10Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3642', '37', '5089', 'Fixed inconsistency in $location.path() behaviour on the $locationChangeStart event when using back/forward buttons in the browser or manually changing the url in the address bar.', 'This is related to https://github.com/angular/angular.js/issues/4989', '11', null, null, 'skoszuta', '2013-11-22T13:41:08Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3643', '37', '509', 'Exposing response headers for the current xhr codebase.', 'feat($resource,$xhr): make HTTP headers available to $xhr and $resource callbacks\r\n\r\n- $browser.xhr exposes headers function for retrieving one or all headers\r\n- $xhr service exposes the headers function to both success and error callbacks\r\n- $resource service exposes the headers function in all of its callbacks', '1', null, null, 'kseamon', '2011-08-09T21:18:00Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3644', '37', '5090', 'chore(style): fix missing indentation in httpBackend from a3172a2', '', '3', null, null, 'caitp', '2013-11-22T13:57:41Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3645', '37', '5095', 'fix(input): Support form auto complete on modern browser', 'Although modern browser support the \"input\" event, they still only fire\r\nthe \"change\" event when they auto complete form elements\r\nother than the currently selected one.\r\n\r\nRelated to #1460', '5', null, null, 'tbosch', '2013-11-23T00:34:59Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3646', '37', '5096', 'chore: add script for updating bower repos', '', '2', null, null, 'btford', '2013-11-23T01:11:04Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3647', '37', '510', 'fix(directives): make ng:class-even/odd work with ng:class', 'Closes #508', '1', null, null, 'Codier', '2011-08-10T01:30:17Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3648', '37', '5100', 'refactor(minErr): remove duplicated code', 'Note: references to internal APIs were removed in commits 8425e9f and 94764ee but\r\nangular.toJson is still used.\r\n', '2', null, null, 'nordligulv', '2013-11-23T13:52:54Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3649', '37', '5101', 'fix(sanitize): prevent layout trashing if possible', 'Using the style agnostic \"textContent\" in favor\r\nfor for \"innerText\" prevents layout trashing.\r\n\r\nFixes #4720', '3', null, null, 'cburgdorf', '2013-11-23T17:40:26Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3650', '37', '5102', 'docs(guide/providers): fix typo', '', '2', null, null, 'pomerantsev', '2013-11-23T20:14:26Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3651', '37', '5104', 'docs(guide/di): Use square bracket notation for $inject annotation', 'This recommendation is better as it ensures that the `$inject` property doesn\'t get minified when aggressively obfuscating code.\r\n\r\nRe: CLA -- I work at Google.', '3', null, null, 'ewinslow', '2013-11-23T23:26:00Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3652', '37', '5107', 'fix($animate): ensure blocked keyframe animations are unblocked before the DOM operation', 'Closes #5106', '1', null, null, 'matsko', '2013-11-24T02:45:17Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3653', '37', '5108', 'fix(ngSanitize): prefer textContent to innerText to avoid layout trashing', 'innerText depends on styling as it doesn\'t display hidden elements.\r\nTherefore, it\'s better to use textContent not to cause unnecessary\r\nreflows. However, IE<9 don\'t support textContent so the innerText\r\nfallback is necessary. Note that we need to check for undefine\r\nand not just reverse the order of these two since for an empty string\r\ninnerText would still be checked and a reflow would occur.\r\n\r\nFix #4720.', '29', null, null, 'mzgol', '2013-11-24T20:14:51Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3654', '37', '5109', 'fix(jqLite): Support unbinding event handler self within handler', 'If an event handler unbinds itself, the next event handler on the same\r\nevent and element isn\'t run.\r\n\r\nThis works fine in jQuery, and since jqLite doesn\'t support `.one()` (to bind handlers that only run once), this\r\nmight be a common use case.\r\n\r\nI also suggest backporting this to the 1.0.x releases if those are still being maintained.', '14', null, null, 'chrisirhc', '2013-11-24T22:45:44Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3655', '37', '511', 'I18n locale', 'fixed up branch that Di started\r\n\r\ntodo:\r\n\r\n- needs to be squashed\r\n- all i18n files should be included in the final tarball\r\n- consider adding the e2e tests to our test suite', '3', null, null, 'IgorMinar', '2011-08-10T11:09:13Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3656', '37', '5110', 'docs($window): move use of $window to controller', 'Move use of $window from expression to controller, because accessing\r\n$window in expressions is now dissalowed and doesn\'t work.\r\n\r\n\r\nCode example doesn\'t work, this PR will fix this.\r\n', '2', null, null, 'wjtk', '2013-11-24T23:25:55Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3657', '37', '5116', 'Fix typo in docs guide/concepts', 'Under View independent business logic: Services\r\nAfter demo in the fourth paragraph it says:\r\nIn the example above: The template contains the directive ng-app=\"invoice\".\r\nit should say:\r\nn the example above: The template contains the directive ng-app=\"invoice2\".', '2', null, null, 'deepak-kapoor', '2013-11-25T11:09:10Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3658', '37', '5121', 'docs(FormController): Provide a list of Angular\'s built-in validation tokens', 'As requested by a top-rated Disqus comment: http://docs.angularjs.org/api/ng.directive:form.FormController#comment-655325797', '2', null, null, 'blaise-io', '2013-11-25T15:13:47Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3659', '37', '5123', 'feat(orderBy): support sorting of umlauts', 'Compare Strings using the localeCompare method if available.', '4', null, null, 'Salzig', '2013-11-25T16:38:18Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3660', '37', '5127', 'fix(ngMock): httpBackend match data with dates (1.2.2 regression)', 'Expecting a request with a data object containing a date [fails](http://plnkr.co/edit/zRRtf98lwdmTZpebfM2f?p=preview).\r\n\r\nUse serialization/deserialization of data to have the same date format as the expectation.', '7', null, null, 'bcaudan', '2013-11-25T17:19:09Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3661', '37', '513', 'fix(injector): Make invoke work with a function that has no arguments', 'Closes #512', '1', null, null, 'kseamon', '2011-08-10T19:26:58Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3662', '37', '5131', 'fix(ngAnimate): ensure animations are disabled upon bootstrap for structurual animations', 'Closes #5130', '3', null, null, 'matsko', '2013-11-25T18:52:35Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3663', '37', '5133', 'Update compile.js', 'docs($compile) Fix typo.', '2', null, null, 'adam77', '2013-11-25T22:44:50Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3664', '37', '5134', 'Fix docs broken link to GitHub PR Helper', 'Link to GitHub PR Helper is broken in contributing.md\r\nThis change fixes it.', '2', null, null, 'deepak-kapoor', '2013-11-25T22:58:14Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3665', '37', '5135', 'docs(compile): transclude is passed to compile, not link', 'As far as I can tell, the transclude function is not passed to anything that could be called a \"link function\" anymore, unless I\'m missing something.\r\n\r\nIf I am in fact missing something, I\'d love for this to be clarified!', '3', null, null, 'caitp', '2013-11-25T22:59:53Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3666', '37', '5137', 'fix($sanitize): Use same whitelist mechanism as $compile does.', '$sanitize now uses the same mechanism as $compile to validate uris.\r\nBy this, the validation in $sanitize is now more general and can be\r\nconfigured using $compileProvider#imgSrcSanitizationWhitelist and\r\n$compileProvider#aHrefSanitizationWhitelist.\r\n\r\nThis commit also refactors the linky filter to use $sanitize as a\r\nservice instead of directly referencing private functions of $sanitize.\r\n\r\nFixes #3748.', '22', null, null, 'tbosch', '2013-11-25T23:41:32Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3667', '37', '514', 'refactor(scope): remove $flush/$observe ng:eval/ng:eval-order', '', '1', null, null, 'mhevery', '2011-08-10T20:21:23Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3668', '37', '5141', 'feat(jqLite): add withDataAndEvents to clone method', 'While writing a custom directive I needed to clone an element and retain the events. The jQuery version of clone takes a second parameter that allows copying the events and data, so I thought I\'d implement that.\r\n\r\n**Found jqCache references that were not deallocated!**\r\nThe only thing left is cloning the data.\r\nThe problem I\'m facing is that karma is telling my that I\'ve got a leak.\r\n\r\nAny suggestions why?', '12', null, null, 'leon', '2013-11-26T08:08:11Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3669', '37', '5145', 'Update step_00.ngdoc', 'Set target attribute to blank so the localhost page would be opened in new window instead the parent one.', '2', null, null, 'magoswiat', '2013-11-26T11:35:51Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3670', '37', '5148', 'Update step_12.ngdoc', '', '1', null, null, 'ammarAlrefai', '2013-11-26T15:34:15Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3671', '37', '515', 'doc(sample): Add javascript sandbox integration (jsFiddle)', 'Change doc-widget.js to:\r\n\r\n - By default, render \"edit in jsFiddle\" button which posts live sample code to jsFiddle.\r\n\r\n - Handle new (and optional), <doc:sandbox/> tag in ngdocs which overrides default jsFiddle behvaior.\r\n If new xml tag has content, then extract and render new content.\r\n Do not render the xml tag(s).\r\n\r\n - Update stylesheet to make new \"edit in jsFiddle\" button consistent with angular documentation.\r\n\r\n', '7', null, null, 'dandoyon', '2011-08-11T04:03:30Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3672', '37', '5155', 'chore(grunt): update to latest jshint task', 'Upgrade JSHint task from ~0.6.4 to ~0.7.2. Two useful changes: ability\r\nto set jshintrc option to use jshint\'s native ability for finding .jshintrc\r\nfiles relative to the linted files and update jshint to 2.3.0.\r\n\r\nCloses #5143', '10', null, null, 'brwr', '2013-11-26T21:35:24Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3673', '37', '5156', 'docs(tutorial): Update step_12.ngdoc', '1. The example includes the wrong version of jQuery, if the version notification is still correct and up-to-date.\r\n2. If jQuery 1.10.x must be used, then i think it\'s important to move the version alert up to below the example of the app/index.html, instead of way down below the fold.', '3', null, null, 'elwinarens', '2013-11-26T21:54:45Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3674', '37', '5157', 'feat($injector): Service/Factory/Provider Code Resolution through DI', 'See also PR #3802\r\n\r\nAllows array-notated constructors to use a service/factory/provider name for their constructor\r\nfunction, which permits reuse of injectable code with different injectables.\r\nPreviously, we had to declare a function in the global context to actually reuse\r\nfunctions with different injectables. Now we can declare an injectable\r\nconstructor inline and refer to it in other DI declarations through the\r\narray notation.', '3', null, null, 'MikeMcElroy', '2013-11-27T00:28:20Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3675', '37', '5158', 'refactor($location): move file://+win path fix to $location', 'The urlResolve method was fixed to automatically remove the\r\nvolume label from path names to fix issues with the file\r\nprotocol on windows where $location.path() was returning\r\npaths where the first segment would be the volume name,\r\nsuch as \"/C:/mypath\". See #4942 and #4928\r\n\r\nHowever, the solution was specific to the $location non-\r\nHTML5 mode, and was implemented at a lower level of\r\nabstraction than it should have been. This refactor moves\r\nthe fix to inside of the LocationHashBangUrl $$parse method.\r\n\r\nCloses #5041', '7', null, null, 'jeffbcross', '2013-11-27T00:33:12Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3676', '37', '5159', 'feat($attrs): add $attrs.$attr to externs so that it isn\'t renamed', 'This fixes the issue that any usage of $attr is broken after js compilation.', '2', null, null, 'jeffbcross', '2013-11-27T01:01:07Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3677', '37', '5161', 'fix($compile): update cloned elements if the template arrives after the ...', '...cloning\r\n\r\nIf an element has a directive whose content is loaded using `templateUrl`,\r\nand the element is cloned using a linking function before the template arrives,\r\nthe clone needs to be updated as well.\r\n\r\nThis also updates `ngIf` and `ngRepeat` to keep the connection to the clone\r\nof a tranclude function, so that they know about the changes a directive with\r\n`templateUrl` does to the element in the future.\r\n\r\nFixes to #4930.', '2', null, null, 'tbosch', '2013-11-27T04:18:23Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3678', '37', '5163', 'docs(compile): Fix missing space', '', '3', null, null, 'forresst', '2013-11-27T08:16:08Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3679', '37', '5168', 'Refactor resource instance creation so prototype chain is respected', '### The problem:\r\n\r\nConsider a CustomResource object:\r\n```\r\nvar CustomResource = new Resource();\r\nCustomResource.prototype.someCustomMethod = function(){};\r\n```\r\n\r\nThen the following will work:\r\n```\r\nvar resource = new CustomResource();\r\nresource.someCustomMethod(); // Works fine\r\n```\r\n\r\nBut when an resource is instantiated through a non-instance method, the prototype is lost:\r\n```\r\nvar resource = CustomerResource.get({id: 1});\r\nresource.someCustomMethod(); // Does not work because prototype is lost\r\n```\r\nThis is a result of instantiating the new resource instance object directly from the `Resource` constructor and not the constructor of the current resource object.\r\n\r\n### The fix:\r\n\r\nThis PR fixes the problem and makes sure that the prototype is chained correctly:\r\n\r\n```\r\nvar CustomResource = new Resource();\r\nCustomResource.prototype.someCustomMethod = function(){};\r\n\r\nvar resource = new CustomResource();\r\nresource.someCustomMethod(); // Will still work as before\r\n\r\nvar resource = CustomerResource.get({id: 1});\r\nresource.someCustomMethod(); // Will also work now!\r\n```\r\n\r\nA unit test is also included and the full test suite runs fine.', '14', null, null, 'jvandemo', '2013-11-27T13:43:30Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3680', '37', '517', 'I18n locale Most Updated!', '', '2', null, null, 'Codier', '2011-08-12T22:53:41Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3681', '37', '5171', 'Fix typo', '', '1', null, null, 'kiwicomplex', '2013-11-27T16:32:16Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3682', '37', '5173', 'chore(closure): Added $routeProvider redirectTo function parameters.', '', '1', null, null, 'dbinit', '2013-11-27T17:04:49Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3683', '37', '5174', 'Update $window documentation to support 1.2.2', 'When you currently run the code example for $window you get the following error in the console:\r\n\r\n```\r\nError: [$parse:isecwindow] http://errors.angularjs.org/1.2.2/$parse/isecwindow?p0=%24window.alert(greeting)\r\n at Error (<anonymous>)\r\n at http://ajax.googleapis.com/ajax/libs/angularjs/1.2.2/angular.min.js:6:449\r\n at Va (http://ajax.googleapis.com/ajax/libs/angularjs/1.2.2/angular.min.js:85:122)\r\n at http://ajax.googleapis.com/ajax/libs/angularjs/1.2.2/angular.min.js:160:152\r\n at http://ajax.googleapis.com/ajax/libs/angularjs/1.2.2/angular.min.js:177:167\r\n at g.$eval (http://ajax.googleapis.com/ajax/libs/angularjs/1.2.2/angular.min.js:101:39)\r\n at g.$apply (http://ajax.googleapis.com/ajax/libs/angularjs/1.2.2/angular.min.js:101:317)\r\n at HTMLButtonElement.<anonymous> (http://ajax.googleapis.com/ajax/libs/angularjs/1.2.2/angular.min.js:177:149)\r\n at http://ajax.googleapis.com/ajax/libs/angularjs/1.2.2/angular.min.js:27:15\r\n at Array.forEach (native) \r\n```\r\n\r\nThis PR fixes that issue.', '2', null, null, 'hswolff', '2013-11-27T17:09:19Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3684', '37', '5175', 'Added a new npm command to e2e karma execution', 'I got an error message on running karma e2e test. After the new npm run it worked. Platform Win7x64', '4', null, null, 'ilkka-rautiainen', '2013-11-27T20:33:28Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3685', '37', '5176', 'Correct $injector annotation', 'The $injector annotation was incorrect, it was saying to be passed in DI for it to specify $inject, that is incorrect. It should be $injector.', '2', null, null, 'baens', '2013-11-27T21:09:06Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3686', '37', '5179', 'docs(input): remove deprecated isolated scope pitfall', 'the 1.2 release fixed that pitfall in https://github.com/angular/angular.js/commit/909cabd36d779598763cc358979ecd85bb40d4d7', '1', null, null, 'revolunet', '2013-11-27T23:57:02Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3687', '37', '518', 'Cleanup', '', '2', null, null, 'IgorMinar', '2011-08-15T07:22:14Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3688', '37', '5181', 'fix($animate): ensure ms durations are properly rounded', 'Closes #5113\r\nCloses #5162', '5', null, null, 'matsko', '2013-11-28T04:20:59Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3689', '37', '5182', 'fix($compile): ensure isolated local watches lastValue is always in syn...', '...c\r\n\r\nWhen using two-way binding with isolate scope, under some circumstances\r\nthe lastValue variable captured in the parentValueWatch function can get\r\nout of sync.\r\n\r\nSpecifically, if both the value in the origin scope as well as the value\r\nin the isolate scope get independently updated to the same value within\r\none digest cycle, the lastValue is never updated. This potentially causes\r\nthe watch to make the wrong decision as to which side to update on subsequent\r\npasses.\r\n\r\nThis fixes things by ensuring lastValue is always set to the last seen\r\nvalue even if the watch\'s logic was shrot circuited because there was no\r\ndifference between the values in the original and isolate scopes.', '4', null, null, 'dtabuenc', '2013-11-28T06:05:29Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3690', '37', '5184', 'Update step_03.ngdoc', 'Missing ng-app value in sample of code.', '1', null, null, 'magoswiat', '2013-11-28T09:24:56Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3691', '37', '5185', 'feat: register isBoolean as a public member of global angular', 'The isBoolean function already exists in angular but it was not registered in the public API.\r\n\r\nthe issue is described here: see https://github.com/angular/angular.js/issues/1351', '7', null, null, 'RodolpheGohard', '2013-11-28T10:01:17Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3692', '37', '5186', 'Update interpolate.js', 'additional example for interpolation', '2', null, null, 'esgy', '2013-11-28T10:15:05Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3693', '37', '5187', 'Update index.ngdoc', 'simplify command line', '5', null, null, 'jfroffice', '2013-11-28T10:52:12Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3694', '37', '5188', 'Add example on how to use the injector from outside Angular', 'Sometimes you integrate Angular in an application that has been there for a while and not all parts of the app are written in Angular. If you need to dynamically add Controllers to that project from outside Angular (let\'s say jQuery) then this example is for you.', '8', null, null, 'joscha', '2013-11-28T13:34:09Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3695', '37', '519', 'feat($route): add ignoreHashSearch route param to avoid reloads', 'In order to avoid unnecesary route reloads when just hashSearch part\r\nof the url changes, it is now possible to add ignoreHashSearch:true\r\nparam to the route declaration.', '4', null, null, 'IgorMinar', '2011-08-15T22:25:15Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3696', '37', '5190', 'Rewrite function does not have a final else clause', 'Added final else clause. Either return the value unmodified in the final else clause or throw a descriptive error as to why it is not allowed!', '6', null, null, 'drozzy', '2013-11-28T17:00:05Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3697', '37', '5193', 'fix(ngSanitize): prevent decodeEntities from prepending original text…', 'Clearing the match before the conditional branch seems to (inexplicably)\r\nbreak Safari 7 on OSX 10.9, except when stepping through line by line.\r\n\r\nMoving the assignment to after the conditional branch corrects this\r\nbehaviour.\r\n\r\nCloses #5192', '17', null, null, 'caitp', '2013-11-28T23:43:23Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3698', '37', '5197', 'docs: Remove class=\"diagram\" that wasn\'t there in the sample code', '', '1', null, null, 'mjomble', '2013-11-29T11:44:01Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3699', '37', '5199', 'fixes #5198 to avoid calling indexOf() on SVGAnimatedString instances', '', '5', null, null, 'jstrachan', '2013-11-29T11:48:53Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3700', '37', '520', 'Externalize script order into one file', '', '8', null, null, 'Codier', '2011-08-16T04:20:00Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3701', '37', '5200', 'docs: Added a parenthetical comment about ngModel being required', 'This PR is to make absolutely clear to users that `ngModel` is required in order to take advantage of `FormController` from the form directive for publishing inputs onto $scope.', '2', null, null, 'wesleycho', '2013-11-29T14:30:01Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3702', '37', '5203', 'feat($cacheFactory): add expiration option to $cacheFactory', 'Adds an option to $cacheFactory to define the expiration of a key after a given amount of elapsed milliseconds.\r\n\r\nThe change additionally alters the defaultCache for $http so that it can be configured during the run phase.\r\n\r\n----\r\n\r\nI\'d like to discuss about this feature being implemented into the AngularJS core. I know there are more powerful cache factories out there and the cache factory of AngularJS should be simple and lightweight. However, for requests to a REST API it should be possible to automatically invalidate the results after a given amount of time, while everything is still simple and lightweight. So I added this small amount of code to the `$cacheFactory`.\r\n\r\nTests for the change in `src/ng/http.js` are missing since I don\'t know how to test this properly. Hopefully someone can tell me how this could be achieved or point me to the right direction and I\'ll add a test for that, too. The change has been implemented so one can configure the `defaultCache` with a `maxAge` as follows:\r\n\r\n```javascript\r\n\'use strict\';\r\n\r\nangular.module(\'app\', [\r\n \'ngResource\'\r\n])\r\n.run([\"$cacheFactory\", function($cacheFactory) {\r\n $cacheFactory(\'$http\', { maxAge: 10000 });\r\n}]);\r\n```\r\n\r\nAdditionally I want to mention that the time for adding this change and pull request (as well as the upcoming test for the `$http` change) has been payed by PAYMILL GmbH, Munich. I have been asked whether this could be mentioned somewhere once the code gets approved but wouldn\'t be an obstacle. I and PAYMILL would like to see this code in AngularJS and is the primary goal of this PR.\r\n\r\nP.S.: CLA already signed. Anything else missing?', '11', null, null, 'rainboxx', '2013-11-29T16:56:25Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3703', '37', '5208', 'fix(ngInit): evaluate ngInit before ngInclude', 'The priority of ngInit is adjusted to occur before ngInclude, and after ngController. This enables ngInit to initiallize values in a controller\'s scope, and also to initiallize values before ngInclude executes.\r\n\r\nCloses #5167', '3', null, null, 'caitp', '2013-11-30T02:05:09Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3704', '37', '5209', 'docs(tutorial): enlarge clickable area of tutorial nav buttons', 'Change position of \\<a> and \\<li> tags in tutorial\r\nnav buttons partial, which makes complete\r\nnav button clickable rather than just the text.\r\n\r\nCloses #5074', '4', null, null, 'shanepelletier', '2013-11-30T04:01:36Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3705', '37', '521', 'Safe repeat', '', '1', null, null, 'mhevery', '2011-08-17T07:00:25Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3706', '37', '5210', 'Update animate.js', 'missing , on example', '2', null, null, 'bloublou', '2013-11-30T07:53:07Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3707', '37', '5216', 'docs(contribute) add platform agnostic git install link', 'changed\r\nhttp://help.github.com/mac-git-installation\r\nto\r\nhttps://help.github.com/articles/set-up-git', '3', null, null, 'gdi2290', '2013-11-30T21:06:14Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3708', '37', '522', 'Scope events / event bus', 'this is still work in progress.. but feel free to provide feedback', '17', null, null, 'IgorMinar', '2011-08-17T08:31:10Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3709', '37', '5221', 'feat(ngModelController): expose $setModelValue', '### General usecase:\r\n\r\n- allow other directives requiring `ngModel` to easily assign model value\r\n- `$setViewValue` works only with basic \"flat\" values like strings or numbers (eg not objects).\r\n\r\ncurrently similar thing can be achieved by using \r\n\r\n```javascript\r\n$parse(attr.ngModel).assign(scope.$parent,modelValue)\r\n```\r\n\r\nbut this approach gets more complicated with multiple directives and isolate scopes.\r\n\r\n\r\n### Specific usecase:\r\n\r\nAutoComplete input directive returning objects instead of values.\r\n\r\n```html\r\n<input type=\"text\" auto-complete-user ng-model=\"user\">\r\n```\r\n\r\nparser:\r\n\r\n```javascript\r\nfunction(value){ return {name:value} )\r\n```\r\n\r\nformatter:\r\n```javascript\r\nfunction(value){\r\n return angular.isObject(value) ? value.name : value \r\n}\r\n````\r\n\r\nthe user list dropdown template:\r\n\r\n```html\r\n<li ng-repeat=\"user in users\" ng-click=\"select(user)\">{{user.name}}</li>\r\n```\r\n\r\nand the `select` function would be:\r\n\r\n```javascript\r\nfunction(user){\r\n ngModel.$setModelValue(user)\r\n}\r\n```', '6', null, null, 'g00fy-', '2013-12-01T15:17:30Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3710', '37', '5222', 'Removed unneeded \"npm install\" call', 'npm install -g karma, will install all of karma\'s dependencies and karma itself. There is no need for a call to \"npm install\" after that, in fact that will fail. Also, \"node -v\" gives the node version number.', '4', null, null, 'santosh79', '2013-12-01T16:01:49Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3711', '37', '5227', 'docs($animate): Add required ngAnimate dependency to the module in the \"JavaScript-defined Animations\", small syntax fixes.', 'Signed CLA as Blaise Kal.', '1', null, null, 'blaise-io', '2013-12-02T09:38:29Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3712', '37', '5228', 'docs($animate): require ngAnimate in example, syntax fixes', 'The example in the section \"JavaScript-defined Animations\" would not run without the ngAnimate dependency. Also added a missing comma and semicolons.', '3', null, null, 'blaise-io', '2013-12-02T09:44:47Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3713', '37', '523', '$xhr rewrite', 'Creating new PR, as the old one was getting to messy.\r\n\r\nAll Igor\'s comments were reflected.\r\nRebased to latest master.\r\n\r\nBut still WIP :-D', '35', null, null, 'vojtajina', '2011-08-17T23:01:36Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3714', '37', '5230', 'docs($q): correct count from three to two differences in the \'Difference...', 'At the $q doc is a listing with the differences between Q and $q\r\n\r\n\"There are three main differences\"\r\nBut only a list with two items.\r\n\r\nChange wording from \"three\" -> \"two\"', '3', null, null, 'robinboehm', '2013-12-02T13:05:13Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3715', '37', '5231', 'feat(form): interpolate form names', 'This PR, in addition to https://github.com/angular/angular.js/pull/2988, will also interpolate the value in the form name. Especially useful when adding a collection of forms based on an array.\r\n\r\nIt\'d be especially neat if the commented version of the code could work, but I\'m not sure how to make this work.', '13', null, null, 'Burgov', '2013-12-02T15:13:23Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3716', '37', '5234', 'fixed demo animation', '', '4', null, null, 'gerstnr', '2013-12-02T20:01:26Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3717', '37', '5235', 'fix($compile) support templates with table content root nodes', 'Some hack-ish logic to get compile to avoid throwing up on table content as root nodes.\r\n\r\nI\'m sure this can be improved upon, and certain things (like the regexp) could be moved outside of the function. Suggestions would be good.\r\n\r\n[demo1](http://plnkr.co/edit/lElPZH9qlOemGE8vpteH?p=preview) | [demo2](http://plnkr.co/edit/9rg68DVp0w5kfc727mCj?p=preview)\r\n\r\nCloses #2848\r\nCloses #1459 \r\nCloses #3647 \r\nCloses #3241\r\n', '7', null, null, 'caitp', '2013-12-02T20:08:53Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3718', '37', '5239', 'initial pass at formatting the guide index', 'Just a quick pass at improving the format of the guide index.\r\nI haven\'t done editorializing yet, but I will look at re-organizing the content next.\r\n\r\nNOTE: The styles I wrote have global, but positive (IMO) effects on the docs in general.\r\n\r\nRelates to: https://github.com/angular/angular.js/issues/5078', '4', null, null, 'andyferra', '2013-12-03T00:15:30Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3719', '37', '524', 'fix($resource): properly call error callback when resource is called with', 'fix($resource): properly call error callback when resource is called with two arguments', '0', null, null, 'kseamon', '2011-08-18T19:14:52Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3720', '37', '5240', 'docs(animate.js): copy/paste typo in leave docs', 'copy/paste typo in $animate.leave method docs. Had \"Below is a breakdown of each step that occurs during enter animation:\" instead of \"Below is a breakdown of each step that occurs during leave animation:\"', '5', null, null, 'whyvez', '2013-12-03T01:32:54Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3721', '37', '5242', 'fixed typo', 'herp derp', '3', null, null, 'tmho', '2013-12-03T08:10:19Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3722', '37', '5243', 'Update route.js', 'docs($routeProvider): don\'t wrap route parameter examples in braces\r\n\r\nWrapping the param examples in braces, for example (:param?) is confusing, as it make it seem that the braces are required in the route, which is not the case.\r\n\r\n', '1', null, null, 'hambyiii', '2013-12-03T08:55:30Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3723', '37', '5246', 'Ensure safe object', 'Applies a bit of micro-optimization to ensureSafeObject.\r\n\r\nThis version matches the \"alternate 2.2\" version here: http://jsperf.com/ensuresafeobject/2\r\n\r\nalternate 2.3 is a bit faster and simpler, but would break backwards compatibility.', '2', null, null, 'kseamon', '2013-12-03T18:58:12Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3724', '37', '525', 'doc(API): various API documentation improvements', '', '1', null, null, 'tonitt', '2011-08-19T00:52:04Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3725', '37', '5251', 'Fix angular.copy', 'fix(angular.copy): Fix angular.copy not copying non-index properties of array\r\n \r\nOld implementation didn\'t copy non-index properties correctly, causing\r\narrays to not be fully copied. This commit fixes that problem by\r\nmodifying angular.copy\'s code to handle arrays by using a \'for in\' loop\r\nrather than a regular for loop.\r\n \r\nCloses #5238', '7', null, null, 'shanepelletier', '2013-12-03T20:29:13Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3726', '37', '5252', 'chore($resource): Use shallow copy instead of angular.copy', 'chore($resource): Use shallow copy instead of angular.copy\r\n\r\nReplace calls to angular.copy with calls to a new function, shallowClearAndCopy.\r\nAdd calls to copy for cache access in $http in order to prevent modification of cached data.\r\nResults in a measurable improvement to the startup time of complex apps within Google.', '10', null, null, 'kseamon', '2013-12-03T23:20:36Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3727', '37', '5256', 'Add support for <input type=\"date\"/>', 'This is to at least partially address #757\r\n\r\nThe idea is to add support for existing HTML5 implementations of `<input type=\"date\"/>` while supporting a text version for older browsers that handles the appropriate HTML5 validations.\r\n\r\nAdditionally, an Angular-specific attribute was added (`ng-output-date`) to give the developer the option to output the value to the model as a Date object rather than the default string.\r\n\r\nAll string are expected in the HTML spec compliant ISO-8601 date strings: \'YYYY-MM-DD\'\r\n\r\nHopefully this lays the groundwork for other similar input types such at `datetime`, `month`, `datetime-local`, etc.', '49', null, null, 'blesh', '2013-12-04T06:21:32Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3728', '37', '5257', 'docs(ngValue): remove orphaned </span> tag in example code', 'docs(ngValue): remove orphaned closing span tag in example code', '2', null, null, 'miknsh5', '2013-12-04T07:28:52Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3729', '37', '5259', 'docs(ngTransclude): Fix spelling', 'Fix spelling in orphan.ngdoc', '5', null, null, 'mattiash', '2013-12-04T10:18:02Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3730', '37', '526', 'ng:Pluralize', '', '1', null, null, 'Codier', '2011-08-19T18:28:49Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3731', '37', '5260', 'fix(closure): closure compiler shouldn\'t rename $httpProvide.defaults.transformRequest', 'i would like to be able to have following code working when using Closure JS compiler:\r\n\r\nmy.module.config([\'$httpProvider\', function($httpProvider) {\r\n $httpProvider.defaults.transformResponse = [my.transformHttpResponse];\r\n}]);\r\n\r\nunfortunately \"transformResponse\" is being renamed to random string.\r\n\r\nLooks like Closure compiler doesn\'t respect @tyedef, i could inline all properties of angular.$http.Config but first wanted to get a quick feedback if that change makes sense.\r\n', '2', null, null, 'matjed', '2013-12-04T11:14:46Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3732', '37', '5261', 'docs(ng.$rootScope.Scope): fixed API links', 'Also added a note to the Writing AngularJS Documentation:\r\nhttps://github.com/angular/angular.js/wiki/Writing-AngularJS-Documentation/d0c715ef89', '2', null, null, 'gurdiga', '2013-12-04T11:41:35Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3733', '37', '5264', 'docs(tutorial/step-07): update path to phone detail page in scenario', 'tutorial/doc not in line with code for tutorial', '2', null, null, 'juwalter', '2013-12-04T16:25:10Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3734', '37', '5267', 'fix($animate): ensure animations work with directives that share a transclusion', 'Closes #4716\r\nCloses #4871\r\nCloses #5021\r\nCloses #5278', '3', null, null, 'matsko', '2013-12-04T18:36:42Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3735', '37', '5269', 'feat(jqLite): provide support for element.one()', '', '20', null, null, 'matsko', '2013-12-04T18:55:40Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3736', '37', '527', 'fix(sample): Fix for jsFiddle integration', '', '1', null, null, 'Codier', '2011-08-19T19:12:31Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3737', '37', '5272', 'chore($scope): Short-circuit after dirty-checking last dirty watcher', 'chore($scope): Short-circuit after dirty-checking last dirty watcher\r\n\r\nStop dirty-checking during $digest after the last dirty watcher has been re-checked.\r\nThis prevents unneeded re-checking of the remaining watchers (They were already checked in the previous iteration), bringing a substantial performance improvement to the average case run time of $digest.', '5', null, null, 'kseamon', '2013-12-04T19:12:22Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3738', '37', '5273', 'chore: ignore IntelliJ IDEA module files', 'Ignore IntelliJ IDEA modules files in the git repository\r\n', '16', null, null, 'gesellix', '2013-12-04T19:30:55Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3739', '37', '5276', 'chore($http): Use copy to prevent modification of cached data', 'chore($http): Use copy to prevent modification of cached data\r\n\r\nCopy response data as it goes into and out of the cache.\r\nThis prevents modifications to cached data.', '6', null, null, 'kseamon', '2013-12-04T20:55:59Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3740', '37', '5279', 'fix($rootScope): broadcast $destroy event on $rootScope', 'Fixes #5169', '3', null, null, 'jeffbcross', '2013-12-04T22:52:53Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3741', '37', '5280', 'trivial - single misplaced comma', '', '2', null, null, 'mbrookes', '2013-12-04T23:15:29Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3742', '37', '5281', 'fix: properly remove event listeners for memory leak prevention', 'This PR is just to show buggy code, and possible fix related to https://github.com/angular/angular.js/issues/5270\r\nThe final code should be at least re-factored a bit and correspondent tests should be added.\r\nI\'ll not be able to do right PR for now...', '6', null, null, 'ludinov', '2013-12-04T23:43:39Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3743', '37', '5282', 'fix(input): ensure ngModelWatch() triggers second digest pass when appro...', '...priate\r\n\r\nDue to an earlier change, ngModelWatch() no longer returns a value to the\r\ncaller. This means the digest loop has no way to tell if the watch actually\r\nmodified anything and so can not schedule another pass.\r\n\r\nThis means any watches that watch form or model controller changes\r\n(e.g. watches on form.$valid) that are scheduled prior to an ngModelWatch()\r\nwill not be able to see any changes made therin.\r\n\r\nThis commit fixes this behavior by returning the latest evaluated ng-model\r\nvalue.\r\n\r\nCloses #5258', '2', null, null, 'dtabuenc', '2013-12-05T00:31:53Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3744', '37', '5284', 'docs(TRIAGING): Initial doc about triaging issues in Angular', '', '7', null, null, 'tbosch', '2013-12-05T01:53:19Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3745', '37', '5285', 'Clarified that ngSwitchWhen acceptable expressions must be a text litera...', '...l\r\n\r\nThe matchValue is not arbitrary but must be text. In particular, it cannot even be an expression or handle-barred expression resulting in text.', '4', null, null, 'gdennie', '2013-12-05T01:57:44Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3746', '37', '5286', 'docs(css): Definition table style', 'Edited docs.css to improve text alignment on definition table.', '7', null, null, 'Sharondio', '2013-12-05T04:38:16Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3747', '37', '5287', 'chore(Scope): short-circuit after dirty-checking last dirty watcher', 'Stop dirty-checking during $digest after the last dirty watcher has been re-checked.\r\nThis prevents unneeded re-checking of the remaining watchers (They were already checked in the previous iteration), bringing a substantial performance improvement to the average case run time of $digest.\r\n\r\nCloses #5272', '10', null, null, 'IgorMinar', '2013-12-05T06:02:14Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3748', '37', '5288', 'docs(ng/core module): fix typo', '\r\nRemoved unnecessary \'to\'\r\n', '4', null, null, 'codejet', '2013-12-05T08:29:33Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3749', '37', '529', 'feat(ng:template): add ng:template directive', '', '1', null, null, 'IgorMinar', '2011-08-20T08:36:43Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3750', '37', '5290', 'fix twitter bootstrap link', 'url of twitter bootstrap was outdated, fixed now', '5', null, null, 'gbezyuk', '2013-12-05T12:17:00Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3751', '37', '5293', 'fix(input): prevent double $digest when using jQuery trigger.', 'If an event was performed natively, jQuery sets the isTrigger property.\r\nWhen triggering event manually, the field is not present. Manually\r\ntriggered events are performed synchronously which causes the \"$digest\r\nalready in progress\" error.', '22', null, null, 'mzgol', '2013-12-05T14:00:20Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3752', '37', '5295', 'chore(Angular.js): Use call and === instead of apply and ==', 'chore(Angular.js): Use call and === instead of apply and == in type check functions\r\n\r\nUpdates isDate et al to use call instead of apply and === instead of ==.\r\nThe change to call brings minor performance improvement and === is just better practice than ==.\r\nhttp://jsperf.com/call-vs-apply-tostring', '1', null, null, 'kseamon', '2013-12-05T16:06:03Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3753', '37', '5299', 'refactor($parse): clean up evaled function', 'refactor($parse): clean up evaled function\r\n\r\nRemove unused variables from the created function.\r\nUse == null instead of (=== null || === undefined)\r\nDon\'t wrap the evaled function in a closure when not unwrapping promises.\r\nThis change also brings a slight performance improvement: http://jsperf.com/optimizing-parse', '4', null, null, 'kseamon', '2013-12-05T23:15:26Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3754', '37', '530', 'feat(doc): generate both normal and debug version of index.html', '- index.html has manifest file and angular.min.js\r\n- index-jq.html has manifest file, angular.min.js and jquery.min.js\r\n- index-debug.html has angular.js\r\n- index-jq-debug.html has angular.js and jquery.min.js', '1', null, null, 'Codier', '2011-08-20T16:14:13Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3755', '37', '5300', 'chore($resource): Use shallow copy instead of angular.copy', 'Replace calls to angular.copy with calls to a new function, shallowClearAndCopy.\r\nAdd calls to copy for cache access in $http in order to prevent modification of cached data.\r\nResults in a measurable improvement to the startup time of complex apps within Google.', '1', null, null, 'kseamon', '2013-12-05T23:58:16Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3756', '37', '5302', 'Add example for PUT request in ngResource', '', '3', null, null, 'unclejustin', '2013-12-06T03:45:16Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3757', '37', '5303', 'feat(closure): add missing FormController extern definitions', 'Addresses b/12020484', '2', null, null, 'nairb774', '2013-12-06T03:47:13Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3758', '37', '5306', 'docs(tutorial/step-11): change last by next', 'Since step 12 was added, step 11 is not the last. So this is not the last improvement.', '2', null, null, 'forresst', '2013-12-06T10:08:11Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3759', '37', '531', 'fix(docs): remove more unecessary use of hide() and show() method', '- tutorial section of docs fails to render properly as\r\ndoc:tutorial-instructions widget uses deprecated show and hide methods\r\nof jQlite.', '2', null, null, 'Codier', '2011-08-21T15:40:11Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3760', '37', '5310', 'docs($compile): fixed some typo', '', '4', null, null, 'kindy', '2013-12-06T16:03:05Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3761', '37', '5312', 'chore(CHANGELOG): introduce perf() section for performance-related commits', 'Instead of using fix() or chore() when labelling a commit which improves\r\nspeed or performance use perf(). Perf commits will be listed in the\r\nCHANGELOG under \"Performance Improvements\".\r\n\r\nFor example:\r\nperf($animate): cache all getComputedStyle operations to reduce additional reflows', '13', null, null, 'matsko', '2013-12-06T17:56:16Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3762', '37', '5313', 'Update noregexp.ngdoc', '', '3', null, null, 'zsong', '2013-12-06T18:56:23Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3763', '37', '5314', 'fix(angular-mocks): use copy of mock data in $httpBackend', 'fix(angular-mocks): use copy of mock data in $httpBackend\r\n\r\nCopy mock data returned from the mock $httpBackend.\r\nThis prevents modifications to the response from affecting future responses.\r\nPreviously, this misbehavior was being mitigated by the deep copy in $resource, but that no longer exists.\r\n\r\nhttps://github.com/angular/angular.js/issues/5265', '9', null, null, 'kseamon', '2013-12-06T19:52:07Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3764', '37', '5315', 'docs($q): add more detail and examples on chaining promises', 'Add examples on two ways of adding to chains of promises. The existing section mentions chaining,\r\nbut gives only a basic example and doesn\'t explain the different ways to defer resolution.', '8', null, null, 'michalc', '2013-12-07T12:22:54Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3765', '37', '5318', 'Update contribute.ngdoc', 'As mentioned in the Grunt docs:\r\nhttp://gruntjs.com/getting-started\r\n\r\n\"In order to get started, you\'ll want to install Grunt\'s command line interface (CLI) globally. You may need to use sudo (for OSX, *nix, BSD etc) or run your command shell as Administrator (for Windows) to do this.\"', '2', null, null, 'kurtfunai', '2013-12-07T19:14:17Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3766', '37', '5321', 'docs (tutorial/step_11): tidy indenting of a tests return object', '\r\nMotivation: want code example indentation to be consistent and easier to read.\r\n\r\nNot linked to an issue/ticket.\r\n', '2', null, null, 'jesse-browne', '2013-12-08T00:25:47Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3767', '37', '5322', 'docs (tutorial/step_11): tidy indenting of a tests return object', 'want code example indentation to be consistent and easier to read\r\n\r\nnot linked to an issue/ticket', '2', null, null, 'jesse-browne', '2013-12-08T01:14:42Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3768', '37', '5324', 'Update ngEventDirs.js with scroll event', 'add scroll event. there are times when you want to fire an event when a div or element scrolls.', '10', null, null, 'chovy', '2013-12-08T07:30:09Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3769', '37', '5325', 'Removed refs to window.angular and instead ref\'d local variable; window....', 'fix($http,$location): fix undefined global after use of noConflict()\r\n\r\nThe angular global is not available after using noConflict() so local copy must be used.', '6', null, null, 'evictor', '2013-12-08T07:56:35Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3770', '37', '5327', 'trivial q.js documentation update', '', '4', null, null, 'pawelrychlik', '2013-12-08T14:21:37Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3771', '37', '5328', 'refactor(ngHref, ngSrc, ngSrcset): reset priority to default', 'There is no need to run after the attributes are interpolated\r\nsince this commit 9be82d942fc6ab2772197c84a35a4c374c604cbc', '5', null, null, 'istarkov', '2013-12-08T15:33:01Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3772', '37', '5329', 'docs(isolateScope): update guide to reflect usage of element.isolateScope', 'update developer guide for scope and directives to reflect the changes of https://github.com/angular/angular.js/commit/27e9340b3c25b512e45213b39811098d07e12e3b introducing `element.isolateScope()`\r\n\r\nCloses #5274', '18', null, null, 'gesellix', '2013-12-08T18:13:07Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3773', '37', '5335', 'fix(angular-mocks): stringify parameters in $httpBackend.expect', 'fix(angular-mocks): stringify parameters in $httpBackend.expect\r\n\r\nUse angular.fromJon and angular.toJson to make an snapshot of parameters in $httpBackend.expect\r\n\r\nFixes #5333', '2', null, null, 'olostan', '2013-12-09T17:10:24Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3774', '37', '5337', 'fix(select): ngRequired invalidate when modelValue is empty array', 'When `multiple` attribute is set, and the model value is an empty array, invalidate the form control.\n\nTODO: ngModelWatch should probably do a bit more work to see if the model value is equal or not. (see comment in selectSpec.js)\n\nFixes #2365', '8', null, null, 'caitp', '2013-12-09T20:08:16Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3775', '37', '5338', 'docs(ngPaste/ngCopy) Added simple examples to show usage', '', '4', null, null, 'JamesWatling', '2013-12-09T20:53:55Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3776', '37', '5339', 'Update index.ngdoc', 'Added accessibility attributes to links and images. Added small note on using NVM for node.', '4', null, null, 'Sharondio', '2013-12-09T21:40:33Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3777', '37', '5340', 'docs(ngRoute): fix jshint error (line 58 too long)', 'A change which breaks jshint was checked in a few days ago, just a quick fix.', '3', null, null, 'caitp', '2013-12-09T22:39:48Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3778', '37', '5342', 'Chore locale: Add quotation mark to reserved keyword used as property accessor', '\r\nI don\'t like the inconsistency of this. The ES5 spec is very vague on this part, but this seems\r\nlike the right thing to do. Fixes #5320 \r\n\r\n', '3', null, null, 'kimpettersen', '2013-12-09T23:45:03Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3779', '37', '5343', 'Minor typo fix in ngInit doc', '', '4', null, null, 'jdhiro', '2013-12-10T01:17:55Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3780', '37', '5344', 'feat(browserTrigger): add support TouchEvent', '\r\nTo simulate Touch-enabled device in ngTouch test.\r\n```browserTrigger(element, \'touchstart\')``` generates TouchEvent not MouseEvent.\r\n\r\nCloses #4997', '1', null, null, 'munet9', '2013-12-10T01:58:24Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3781', '37', '5346', 'feat(input): constant exprs for ngTrueValue/ngFalseValue', 'If ngTrueValue / ngFalseValue are strings evaluating to constant expressions, \nthe constant value is used in place of the string value.\n\nIf the value is not a constant, its string value is used, as they were\npreviously.\n\nIf no string expression is provided, then the default value remains true or\nfalse.\n\nFixes #1199', '30', null, null, 'caitp', '2013-12-10T03:05:05Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3782', '37', '5347', 'docs(guide): Update step_05.ngdoc', 'Add space between the word `the` and `PhoneListCtrl` in line 202.', '2', null, null, 'justmiaotou', '2013-12-10T08:00:01Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3783', '37', '535', 'fix(AngularPublic): expose missing angular public methods', '- expose lowercase, uppercase and isDate to angular public api\r\n- remove unnecessary extention of jqLite at an early stage', '0', null, null, 'Codier', '2011-08-24T15:10:59Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3784', '37', '5350', 'Bugfix for IE8', 'This solves the bug that angular-ui bootstrap modal is not\r\nshowing up in IE8', '4', null, null, 'tautvilas', '2013-12-10T12:08:13Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3785', '37', '5352', 'docs($resource): fix typo in server response example', 'The server is supposed to return the same card number as in the client request.\r\nAdjust server response example to the value given in the client request.', '3', null, null, 'kasoban', '2013-12-10T13:05:12Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3786', '37', '5354', 'Update injector.js', 'Use the spacing convention for CoffeeScript functions.\r\nThis convention is exhibited by http://coffeescript.org/ and https://github.com/polarmobile/coffeescript-style-guide#functions.', '3', null, null, 'mkolodny', '2013-12-10T14:50:38Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3787', '37', '5356', 'Update step_04.ngdoc', 'Grammatical. Change sentence from \"If we had not set the default value here, the model would stay uninitialized until our user would pick an option from the drop down menu.\"\r\n\r\nto \r\n\r\n\"If we had not set the default value here, the model would stay uninitialized until our user picks an option from the drop down menu.\"', '9', null, null, 'TonyCronin', '2013-12-10T16:33:14Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3788', '37', '5359', 'perf($parse) Use a faster path when the number of path parts is low', 'perf($parse) Use a faster path when the number of path parts is low\r\n\r\nUse a faster path when the number of path tokens is low (ie the common case).\r\nThis results in a better than 19x improvement in the time spent in $parse and\r\nproduces output that is about the same speed in chrome and substantially faster\r\nin firefox.\r\nhttp://jsperf.com/angularjs-parse-getter/6', '2', null, null, 'kseamon', '2013-12-10T21:13:18Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3789', '37', '5360', 'Test:ngClass Add tests for removing classes', 'Add tests for removing classes in ngClass. Fixes #5253\r\n', '4', null, null, 'kimpettersen', '2013-12-10T21:22:54Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3790', '37', '5361', 'Added Priority to all of the boolean directives documentation', 'None of the boolean directives have their priority listed in the docs. In addition, required and open appear to be missing documentation altogether. I didn\'t fix the latter problem since I\'m not sure what either of them actually do.', '3', null, null, 'mark0978', '2013-12-10T21:36:44Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3791', '37', '5362', 'perf(a): do not link when href or name exists in template', 'perf(a): do not link when href or name exists in template\r\n\r\nChange the a directive to link and hookup a click event only when\r\nthere is no href or name in the template element.\r\nIn a large Google app, this results in about 800 fewer registrations,\r\nsaving a small but measurable amount of time and memory.', '2', null, null, 'kseamon', '2013-12-10T21:53:48Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3792', '37', '5363', 'Added Priority to the ngModel directive documentation', '', '2', null, null, 'mark0978', '2013-12-10T21:59:36Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3793', '37', '5367', 'fix(ngView, ngInclude): Add template to DOM before linking other directives', 'Fixes #5247.', '3', null, null, 'tbosch', '2013-12-11T00:47:05Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3794', '37', '5369', 'docs($location.search) Fix return value, add example', 'This one was bugging me.', '4', null, null, 'squirly', '2013-12-11T06:27:43Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3795', '37', '5371', 'perf(Scope): limit propagation of $broadcast', 'perf(Scope): limit propagation of $broadcast to scopes that have registered the event\r\n\r\nUpdate $on and $destroy to maintain a count of event keys registered for each scope and its children.\r\n$broadcast will not descend past a node that has a count of 0/undefined for the $broadcasted event key.\r\n\r\nResolves https://github.com/angular/angular.js/issues/5341', '16', null, null, 'kseamon', '2013-12-11T15:44:43Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3796', '37', '5372', 'feat($compile): explicitly request multi-element directive behaviour', '* also fixes #6574\r\n\r\nWith regards to https://github.com/angular/angular.js/issues/5370, I think it\'s a bit crazy to completely disable the use of attributes/directives ending with `-start` or `-end`.\r\n\r\nI would propose something like this:\r\n\r\n```\r\nangular.module(\'blah\', [])\r\n .directive(\'multiElementDir\', function() {\r\n return {\r\n multiElement: true, // Explicit declaration\r\n // ...\r\n };\r\n });\r\n```\r\n\r\nAnd, instead of this:\r\n\r\n```js\r\n var directiveNName = ngAttrName.replace(/(Start|End)$/, \'\');\r\n if (ngAttrName === directiveNName + \'Start\') {\r\n attrStartName = name;\r\n attrEndName = name.substr(0, name.length - 5) + \'end\';\r\n name = name.substr(0, name.length - 6);\r\n }\r\n```\r\n\r\nwe could have something like\r\n\r\n```js\r\n var directiveNName = ngAttrName.replace(/(Start|End)$/, \'\');\r\n if (hasDirectives.hasOwnProperty(directiveNName) && hasDirectives[directiveNName].multiElement) {\r\n // Only worry about start/end names if directive is explicitly multiElement\r\n if (ngAttrName === directiveNName + \'Start\') {\r\n attrStartName = name;\r\n attrEndName = name.substr(0, name.length - 5) + \'end\';\r\n name = name.substr(0, name.length - 6);\r\n }\r\n }\r\n```\r\n\r\nthen we could allow both multi-element attributes and attributes ending with `-start` and `-end`, which I think would be nice.', '16', null, null, 'caitp', '2013-12-11T16:35:00Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3797', '37', '5374', 'Docs(ngCloak): style name is ng-cloak, not ngCloak', '', '0', null, null, 'snicolai', '2013-12-12T03:51:03Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3798', '37', '5375', 'refactor(ngTransclude): use transclusion function passed in to link rath...', '...er than controller\r\n\r\nSince we now pass in the transclusion function directly to the link function, we no longer need\r\nthe old scheme whereby we saved the transclude function injected into the controller for later\r\nuse in during linking.\r\n\r\nThis commit removes the controller and simplifies ngTransclude.', '9', null, null, 'dtabuenc', '2013-12-12T04:16:12Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3799', '37', '5377', 'docs(interval.js) alerting the developer', 'Many times $intervals are used inside of directives or controllers. If a directive/controller is destroyed, then the $interval should be destroyed as well. The interval created by this service does not have a way to track an associated $scope. This could cause some issues with developers who assume that the $interval will be cleared for them when the $scope is destroyed.', '2', null, null, 'joshkurz', '2013-12-12T06:40:26Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3800', '37', '5378', 'feat($animate): animate dirty, pristine, valid, invalid for form/fields', 'Add css animations when form or field status change to/from dirty,\r\npristine, valid or invalid. This works like animation system present\r\nwith ngClass, ngShow, etc.', '9', null, null, 'eunomie', '2013-12-12T08:27:54Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3801', '37', '538', 'PR: Extractor', 'Extractor and node script used to externalize locale info from html files into RDB format', '1', null, null, 'Codier', '2011-08-25T15:40:34Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3802', '37', '5382', 'feat($log): add console.table method', 'useful method to get a table representation in console\r\n![console table](https://f.cloud.github.com/assets/275268/1737180/8753c36e-636e-11e3-8004-62dcb49ea5d5.png)\r\n', '2', null, null, 'SebastianM', '2013-12-12T20:43:46Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3803', '37', '5385', 'fix($compile): Allow literals in isolate scope references', 'When a component uses an isolate scope reference\r\nand the the component is used with an object literal\r\na new object is created on every evaluation.\r\nTherefore the compiler needs to compare\r\nthe values of the parent and the isolate scope\r\nusing object equality and not object reference\r\nequality.\r\n\r\nFixes #5296.', '2', null, null, 'tbosch', '2013-12-12T23:36:38Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3804', '37', '5386', '-Updated code to allow 304 as successful rather than failure-Updated tes...', '...ts to account for successful 304 but failure on other 30x code-Updated documentation on service to dictate success between codes 200-299, as well as code 304', '6', null, null, 'datarhyne', '2013-12-13T00:03:03Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3805', '37', '5388', 'perf($injector)', 'I did some testing on switch vs apply: http://jsperf.com/angularjs-invoke-apply-vs-switch\r\n\r\nThe existing benchmark always made calls with the same number of args (4), so I assume branch prediction is what made that so quick. (http://jsperf.com/apply-vs-call-vs-invoke/30)\r\n\r\nHowever, in my benchmark, each invoke call has a different (random) number of arguments, which I feel is closer to real world conditions. Switching back to just `apply` seems to be about 40% faster, and saves a good bit of code as well.\r\n\r\nIt\'s also possible I\'ve messed up the benchmark.\r\n\r\nThoughts?\r\n\r\n(edited typo in speedup percentage)', '8', null, null, 'bwiklund', '2013-12-13T00:38:17Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3806', '37', '539', 'fix(markup): Make special attrs such as ng:href work even without binding', 'fix(markup): Make special attrs such as ng:href work even without binding\r\n- special attrs such as ng:href, ng:check did not work as intended when\r\ntheir values do not contain bindings. And this commit is to fix that\r\n\r\nCloses #534', '0', null, null, 'Codier', '2011-08-25T23:34:53Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3807', '37', '5390', 'fix($httpBackend): use ActiveX XHR when making PATCH requests on IE8', 'IE8\'s native XHR doesn\'t support PATCH requests, but the ActiveX one does.\r\n\r\nCloses #2518\r\nCloses #5043', '7', null, null, 'IgorMinar', '2013-12-13T09:50:07Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3808', '37', '5392', 'Remember to include the ngSanitize module when using ng-bind-html', 'The current 1.2.4 does not through a exception, so when you look up the documentation you are confused.', '3', null, null, 'kevinsimper', '2013-12-13T14:01:01Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3809', '37', '5393', 'docs(angular.module): \'MyModule\' -> \'myModule\'', 'The module in the example is created in lower camel case:\r\n\r\n var myModule = angular.module(\'myModule\', []);\r\n\r\nSo it should be:\r\n\r\n var injector = angular.injector([\'ng\', \'myModule\'])\r\n', '2', null, null, 'moretti', '2013-12-13T14:41:31Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3810', '37', '5395', '(docs) Small grammar fixes for Unit Testing documentation', '', '2', null, null, 'thomastuts', '2013-12-13T14:56:32Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3811', '37', '5399', 'chore(build): automate cutting a release, publishing to bower and to cod...', '...e.angular.js', '0', null, null, 'tbosch', '2013-12-13T20:50:12Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3812', '37', '540', 'Route', 'These fixes were needed for feedback', '1', null, null, 'mhevery', '2011-08-26T05:25:41Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3813', '37', '5402', 'Implemented a \"safe apply\" pattern to the event directives.', 'Should resolve #5401', '13', null, null, 'mike-schenk', '2013-12-13T21:57:14Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3814', '37', '5403', 'fix($animate): use a scheduled timeout in favor of a fallback property to close transitions', 'With ngAnimate, CSS transitions, that are not properlty triggered, are forceably closed off\r\nby appling a fallback property. The fallback property approach works, however, its styling\r\nitself may effect CSS inheritance or cause the element to render improperly. Therefore, its\r\nbest to stick to using a scheduled timeout to run sometime after the highest animation time\r\nhas passed.\r\n\r\nCloses #5255', '3', null, null, 'matsko', '2013-12-14T05:54:36Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3815', '37', '5407', 'docs(css): correctly remove underline on hover', '![angular-docs-css-fix](https://f.cloud.github.com/assets/1016365/1748853/e8b4bb56-64e3-11e3-85d9-53cf190f5eb1.png)\r\n', '1', null, null, 'gdi2290', '2013-12-14T17:19:56Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3816', '37', '541', 'fix(ng:class): make ng:class friendly towards other code adding/removing ', '', '1', null, null, 'IgorMinar', '2011-09-01T10:11:58Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3817', '37', '5412', 'chore(build): Fix all bad jsdoc types', 'This is step 1 of turning on \"--jscomp_error checkTypes\" during the build process', '3', null, null, 'benmccann', '2013-12-14T23:16:19Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3818', '37', '5416', 'docs(guide/unit-testing): remove extra \"is\"', '', '4', null, null, 'markjszy', '2013-12-15T21:30:01Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3819', '37', '5417', 'Type-o fix for the word practise', 'Found a small type-o.', '4', null, null, 'delaman', '2013-12-15T23:22:40Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3820', '37', '5419', 'feat($compile, jqLite): Change directive definition object to allow temp...', '...lates to be created within a given xml namespace\r\n\r\nWhen creating a new directive and a template was specified, along with the replace option being set to true in the Directive Definition Object angular would create the elements contained within the template with the namespace of the HTML page. Whilst this is fine for the vast majority of the cases if you ever need to use xml in your template as in SVG this causes a problem. As the newly created elements are in the HTML namespace and not SVG.\r\n\r\nThis change introduces a new property on the Directive Definition Object \"templateNS\". This new property allows you to pass in a string to serve as the default namespace for the elements or to pass in an object. Where key is the xml prefix and value is the namespace.', '6', null, null, 'mikepro', '2013-12-15T23:55:21Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3821', '37', '5420', 'fix($timeout.$flush): make $flush follow the timeline', 'Make the mock $timeout.$flush follow the timeline when the function\r\nbeing calls $timeout', '4', null, null, 'lgalfaso', '2013-12-16T00:11:58Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3822', '37', '5422', 'Added support for <input type=\"datetime-local\"/>', 'This is to partially address #757, and is related to PR #5256\r\n\r\nIn this iteration, a lot of the code will duplicate some of the code in the `dateInputType` function. The plan is, that after a few of these date and date/time related pieces are added, I\'ll do a \"chore\" and circle back to tighten up the code and make it more \"DRY\".\r\n\r\nOne other thing to note is I\'ve added the use of `$filter` to the `date` and `datetime-local` types.', '3', null, null, 'blesh', '2013-12-16T03:33:15Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3823', '37', '5423', 'Add support for <input type=\"week\"/>', 'This is to add support for the week input type. This follows the HTML5 spec which specifies using ISO-8601 standards for identifying dates. As such, the date output to the model is the Thursday of the week. Per ISO-8601, the \"first week\" of the year is whatever week has the first Thursday of the year.\r\n\r\nAlso added output for week-of-the-year to `$filter(\'date\')`. This allows the date of the year to be output as follows:\r\n\r\n var value = new Date(2013, 0, 12); // Jan 12, 2013\r\n console.log($filter(\'date\')(value, \'yyyy-Www\'); // 2013-W01', '4', null, null, 'blesh', '2013-12-16T06:09:25Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3824', '37', '5424', 'perf($parse): un-un-rolling loop for deprecated code', 'I spent the evening re-rolling an unrolled loop in $parse, only to find that I had made it slower :(\r\n\r\nhttps://github.com/bwiklund/angular.js/tree/sce-loop-rolling\r\nhttp://jsperf.com/angularjs-sce-loop-rolling\r\n\r\nI got sceSafeGetterFn to create the getter faster, but much to my disappointment, the original, unrolled code was about 25% faster than the vanilla for-loop code. It\'s a shame, because that saved ~800 bytes of code post-minification.\r\n\r\n__However__, most of that savings was in the now deprecated promise unrolling code, which I\'ve rolled back up in this PR. I figure that shrinking the build by a significant amount is worth a slight slowdown to deprecated functionality, but maybe not.\r\n\r\nThoughts?', '2', null, null, 'bwiklund', '2013-12-16T06:31:51Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3825', '37', '5425', 're-assign history after BFCache back', 'History variable should be handled like the location variable after BFCache back', '6', null, null, 'kimwz', '2013-12-16T08:21:50Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3826', '37', '5427', 'docs(ngShowHide): Added note about falsy values in ngShow and ngHide', 'I\'ve been bitten by this several times, and it\'s not documented anywhere. Since `angular.toBoolean` considers additional values as false, it should be documented somewhere. This could probably go into a separate page which allows easier maintainability if/when the values change.\r\n\r\nOther usages include:\r\n - `orderBy`\r\n - `ngIf`\r\n - `input`\r\n\r\nShould I include documentation for these as well? What do you think?', '3', null, null, 'khellang', '2013-12-16T12:15:50Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3827', '37', '5432', 'Build scripts', '', '0', null, null, 'tbosch', '2013-12-16T17:51:17Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3828', '37', '5433', 'fix(input): setViewValue on compositionend', 'Because of a4e6d962, model is not updated on input/change between the compositionstart and compositionend events. Unfortunately, the compositionend event does not always happen prior to an input/change event.\r\n\r\nThis changeset calls the listener function to update the model after a compositionend event is received.\r\n\r\nThis seems to also be an issue on IE10 with certain IMEs\r\n\r\n---\r\n\r\nhttp://plnkr.co/edit/euPnjrLk918G31aTDPjN?p=preview test-case which gives me adequate results on Nexus S\r\n\r\nFixes #5308, #5323', '5', null, null, 'caitp', '2013-12-16T18:10:11Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3829', '37', '5434', 'feat($parse): allow for assignments in ternary operator branches', 'Currently in angular expressions, the ternary operator is defined as:\r\n\r\n```\r\nTernaryOperatorExpression :\r\n LogicalORExpression ? LogicalORExpression : LogicalORExpression\r\n```\r\n\r\nbut [in javascript](http://es5.github.io/#x11.12), it\'s\r\n```\r\nTernaryOperatorExpression :\r\n LogicalORExpression ? AssignmentExpression : AssignmentExpression\r\n```\r\n\r\nSo I thought it would be good for ternary operator in ng-expression to behave the same way as in js.\r\n\r\n----\r\n\r\nGiven the following expression\r\n```js\r\n1 ? a : b = null\r\n```\r\n\r\ncurrently it\'s evaluated as \r\n```js\r\n(1 ? a : b) = null\r\n```\r\nwhich throws an error\r\n\r\nIt will now be evaluated as\r\n```js\r\n1 ? a : (b = null)\r\n```\r\n\r\n----\r\n\r\nCLA signed as Rodric Haddad', '5', null, null, 'rodyhaddad', '2013-12-16T18:22:13Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3830', '37', '5436', 'Update orderBy.js', 'An API was passing me numbers as strings (ex. \'8.25\'), so I was noticing weird sorting behavior because it was trying to sort the numbers alphabetically.', '0', null, null, 'halloffame', '2013-12-16T19:19:00Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3831', '37', '544', 'feat(scope): add listener deregistration fn for $watch and $on', '- both $watch and $on now return a function which when called\r\n deregisters the listener\r\n- $removeListener was removed and replaced with the above\r\n- added more tests for $watch and $on\r\n\r\nCloses #542', '0', null, null, 'IgorMinar', '2011-09-01T21:21:16Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3832', '37', '5440', 'chore(travis): export logs to google cloud storage', '', '3', null, null, 'vojtajina', '2013-12-16T21:42:33Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3833', '37', '5441', '*Off typo on angular.injector example comment in dev_guide.services.managing_dependencies.ngdoc.', '', '4', null, null, 'zigzackattack', '2013-12-16T23:11:23Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3834', '37', '5443', 'Update dev_guide.templates.css-styling.ngdoc', 'Tiny grammar fix.', '3', null, null, 'zigzackattack', '2013-12-16T23:43:19Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3835', '37', '5446', 'docs($provide): fix Markdown formatting for provider method', 'Indentation made Markdown parser think that its a block of code.', '1', null, null, 'gurdiga', '2013-12-17T04:30:14Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3836', '37', '5447', 'docs(guide/injecting-services): fix list formatting in Related* sections', 'Yeah.', '1', null, null, 'gurdiga', '2013-12-17T04:44:37Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3837', '37', '5448', 'feat(ngAnimate): provide configuration support to match specific className values to trigger animations', 'Closes #5357\r\nCloses #5283', '6', null, null, 'matsko', '2013-12-17T05:36:47Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3838', '37', '545', 'Override resource default params with action defaults.', 'I am using a `$resource` to access a [CouchDB](http://couchdb.apache.org/) database (`app_db`).\r\n\r\n var Typename = $resource(\'/app_db/:base:id\', { base: \'typename_\' }, {\r\n query: { method: \'GET\', isArray: false,\r\n params: { base: \'_all_docs\', id: \'\', include_docs: \'true\',\r\n startkey: \'\"typename_\"\', endkey: \'\"typename_\\uFFF0\"\' }\r\n }\r\n });\r\n\r\nI need to override the default `Typename.query()` function because CouchDB always returns a JSON object and never an array. I also need to override the base URL, but the resource default takes precedence over the action default. So `Typename.query()` uses `\'typename_\'` instead of `\'_all_docs\'`.\r\n\r\nThe proposed patch, fixes this.', '2', null, null, 'marcenuc', '2011-09-02T14:07:44Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3839', '37', '5450', 'docs ($resource): fix typo in documentation for \"paramDefaults\" optional...', '... parameter', '1', null, null, 'sethflowers', '2013-12-17T15:26:49Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3840', '37', '5451', 'feat(filter): allow filtering of an object', 'Allow ng.filter to filter an object as well as an array. Before, an\r\nobject would need to be converted into an array before filtering.\r\n\r\nCloses #2694.', '16', null, null, 'jridgewell', '2013-12-17T16:03:04Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3841', '37', '5452', 'refactor(ng-pluralize): simplify the `isWhen` regexp', 'This change should also make the code marginally faster as the simplified regexp is shorter and will be parsed faster', '8', null, null, 'vicb', '2013-12-17T16:39:51Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3842', '37', '5456', 'fixed typo in documentation', 'typo', '4', null, null, 'ronnieoverby', '2013-12-17T18:42:33Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3843', '37', '5457', 'perf: use faster check for $$ prefix', 'perf: use faster check for $$ prefix\r\n\r\nUse two calls to charAt instead of substr to detect a $$prefix in the shallowCopy functions.\r\nThis makes shallowCopy 25-50% faster (depending on which browser is used).\r\nhttp://jsperf.com/angular-shallow-copy', '0', null, null, 'kseamon', '2013-12-17T19:41:37Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3844', '37', '5458', 'chore(jqLite): implement the `detach` method', 'We at Angular UI are missing jQuery\'s `detach`:\r\n\r\nhttps://github.com/angular-ui/bootstrap/pull/1403#issuecomment-30777515\r\n\r\nhttps://github.com/angular-ui/bootstrap/pull/1391/files#diff-e8665eb306ddd26399e5b80f00dae5bbR252\r\n\r\nThanks.', '3', null, null, 'jbruni', '2013-12-17T22:18:55Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3845', '37', '546', 'Forms', '', '1', null, null, 'mhevery', '2011-09-02T22:11:00Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3846', '37', '5460', 'docs(tutorial): Fixed path description for location of \'phones.json\'', '', '4', null, null, 'alabid', '2013-12-18T01:23:27Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3847', '37', '5461', 'feat(jqLite): implement the `detach` method', 'We at Angular UI are missing jQuery\'s detach:\r\n\r\nangular-ui/bootstrap#1403 (comment)\r\n\r\nhttps://github.com/angular-ui/bootstrap/pull/1391/files#diff-e8665eb306ddd26399e5b80f00dae5bbR252\r\n\r\nThanks.', '9', null, null, 'jbruni', '2013-12-18T04:52:36Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3848', '37', '5464', 'Do not hold input composition on android', 'Workaround for chrome for android until #2129 is ready.\r\n\r\nCloses #5308, #5323', '1', null, null, 'clkao', '2013-12-18T08:41:13Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3849', '37', '5465', 'docs(guides/providers): fix typo', '', '3', null, null, 'pomerantsev', '2013-12-18T08:51:56Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3850', '37', '5467', 'docs(guide/forms): Improve name links', '', '1', null, null, 'forresst', '2013-12-18T12:19:17Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3851', '37', '5471', 'perf(compile): add class \'ng-scope\' before cloning, other optimizations', 'perf(compile): add class \'ng-scope\' before cloning and other micro-optimizations\r\n\r\nAdd class ng-scope to dom nodes during directive compile rather than link.\r\nOptimize handling of nodeLists.\r\nThis results in a savings of about 130ms during the startup of a product within Google.', '0', null, null, 'kseamon', '2013-12-18T21:47:32Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3852', '37', '5472', 'fix($location): parse xlink:href for SVGAElements', 'Before this fix, the xlink:href property of an SVG `<a>` element could not be parsed on click, as the property is an SVGAnimatedString rather than a DOMString.\r\n\r\nThis patch parses the xlink:href\'s animVal into a DOMString in order to prevent an `Object #<SVGAnimatedString> has no method \'indexOf\'` exception from being thrown, and also to update the location if necessary as expected.\r\n\r\nFixes #5198, #5199, #4098, #1420', '11', null, null, 'caitp', '2013-12-18T22:15:31Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3853', '37', '5475', 'Update angular.js - adding $watchCollection', '', '0', null, null, 'oojerryoo', '2013-12-19T00:30:51Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3854', '37', '5478', 'Fix IE8 problems in `$log` and general startup', 'Fixes #5400. Fixes #5147.', '2', null, null, 'tbosch', '2013-12-19T02:54:51Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3855', '37', '5479', 'ngAttr* directive issue with `href` attribute in IE', 'This fixes an issue where any form of `ng-attr-href` directive wasn\'t correctly processed in IE.\r\n\r\nI am not sure why there was the special IE condition for the href attribute but `node.getAttribute(name, 2)` doesn\'t make any sense since it\'s trying to fetch the binding value from the attribute we are actually trying to populate.\r\n\r\nI have removed the special case handling and every unit tests are still passing.\r\n\r\n[Issue Plunkr](http://plnkr.co/edit/b1bqBRdfK904xG77BNej?p=preview)\r\n\r\n', '8', null, null, 'plalx', '2013-12-19T02:55:56Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3856', '37', '548', 'fix(ng:options): ng:change should be called after the new val is set', 'Closes #547', '1', null, null, 'IgorMinar', '2011-09-03T06:02:44Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3857', '37', '5480', 'fix($parse): return \'undefined\' if a middle key\'s value is null', 'Prior to this fix, $parse/$eval would return \'null\' if a middle key in an expression\'s value is null, when it should be expected to be undefined.\r\n\r\nThis patch tries to remedy this by returning undefined for middle values in expressions, when fetching a child of that null value.\r\n\r\nFor example:\r\n\r\n```js\r\n// Given the following object:\r\n$scope.a = {\r\n b: null\r\n};\r\n\r\n// $scope.$eval(\'a.b.c\') returns undefined, whereas previously it would return null\r\n```\r\n\r\nFixes #2249\r\nFixes #5442', '25', null, null, 'caitp', '2013-12-19T05:01:58Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3858', '37', '5481', 'Fix typo', '', '1', null, null, 'kiwicomplex', '2013-12-19T15:38:54Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3859', '37', '5485', 'docs($http): remove outdated part about $http outside of $apply phase', 'This removes some outdated advice which no longer is true against the latest angular version.\r\n\r\nRelates to #5206', '3', null, null, 'cburgdorf', '2013-12-19T19:48:49Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3860', '37', '5487', 'Allow automatic rewriting of links to be disabled in ngLocation', 'Currently, when the location provider is set to html5 mode, all links\r\non the page are hijacked and automatically rewritten. While this may be\r\ndesirable behavior in some cases (such as using ngRoute), not all cases\r\nwhere html5 mode are enabled imply the desire for this behavior.\r\n\r\nOne example would be an application using the\r\n[ui-router](https://github.com/angular-ui/ui-router) library, with some\r\npages that exist outside of angular. Links that are meant to go through\r\nthe router use the `ui-sref` directive, so the rewrite behavior is\r\nunnecessary.\r\n\r\nThis adds the ability to disable the behavior by calling\r\n\r\n```javascript\r\n$locationProvider.rewriteLinks(false);\r\n```\r\n\r\nFor backwards compatibility, the default value of this option is `true`', '14', null, null, 'sgrif', '2013-12-19T23:20:56Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3861', '37', '5488', 'docs(guides/directive): add (\') to contraction', 'add apostrophe (\') to contraction', '4', null, null, 'bc-luke', '2013-12-20T00:27:01Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3862', '37', '5491', 'feat(scope/timers): add $timeout and $interval methods to scope', 'Intervals and timeouts created with scopes methods will be automatically destroyed\r\nwhen the scope is destroyed, thus preventing memory leaks.\r\n\r\nIf controllers and directives use scope.$interval and scope.$timeout instead $interval and $timeout, there is a lower risk of memory leaks, as there is no need to remember to cancel the promises of the timers.\r\n\r\nThis is not extrictly needed but may be useful.', '6', null, null, 'gonzaloruizdevilla', '2013-12-20T08:18:06Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3863', '37', '5493', 'fix($resource): prevent URL template from collapsing into an empty string', 'Closes #5455', '4', null, null, 'gsklee', '2013-12-20T16:04:57Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3864', '37', '5494', 'feat($cacheFactory): timed cache invalidation', 'Added new options parameter to $cacheFactory which enables\r\ntimed cache object invalidation.\r\n\r\nCloses #5482', '6', null, null, 'bripkens', '2013-12-20T18:23:47Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3865', '37', '5496', 'Update http.js', 'Moved a semicolon.', '2', null, null, 'sanfords', '2013-12-20T21:21:28Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3866', '37', '5499', 'Update forms.ngdoc', 'Cosmetic update', '1', null, null, 'mkolodny', '2013-12-21T04:11:13Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3867', '37', '550', 'fix(docs): use window.eval instead of window.execScript on IE', 'IE doesn\'t have window.eval which our docs use. Instead there is\r\nexecScript, which however throws an exception when an empty string is\r\npassed in, so I created a workaround with a workaround.', '1', null, null, 'IgorMinar', '2011-09-06T21:20:30Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3868', '37', '5501', 'Update forms.ngdoc', 'Right now, non-integers such as \'aawefwae\' are valid. \r\nThis ensures that only integers are valid. Hopefully that makes the example more powerful.', '1', null, null, 'mkolodny', '2013-12-21T04:41:39Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3869', '37', '5507', 'feat($rootScope): adds $onRootScope method', 'This adds an $onRootScope method to the\r\nscope type. This allows developers to use\r\n$rootScope.$emit + $scope.$onRootScope as\r\na fast eventBus which doesn\'t use scope\r\nbubbleing.\r\n\r\nFixes #4574, Relates to #5371', '15', null, null, 'cburgdorf', '2013-12-21T20:12:14Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3870', '37', '5508', 'feat($compile): support DOM nodes as template values', 'Special content types, such as SVG content or table content, can not be used in many cases due to generating a document fragment which does not support the particular template content type being used.\r\n\r\nThis patch enables special content such as SVG or table content to be used by making the template a DOM node or collection of DOM nodes, rather than strings.\r\n\r\nThe test demonstrates how this can be used to replace the directive node with SVG elements, or similar.\r\n\r\nThis could be considered an alternative solution to #5235, #2848, #1459, #3647, #3241 and others, with the benefit that it\'s less work to implement in the compiler, but slightly more work for the user, and doesn\'t support templateUrl templates.', '8', null, null, 'caitp', '2013-12-21T20:25:48Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3871', '37', '551', 'Fix currency filter', 'Now it returns empty string for non-numbers...', '2', null, null, 'vojtajina', '2011-09-07T07:39:05Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3872', '37', '5510', 'Fixed function name in text', '', '1', null, null, 'mjomble', '2013-12-22T18:06:17Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3873', '37', '5511', 'Teach ng-switch-when understand expressions', 'I needed this for a project and I would like to contribute it so everyone can use it.', '2', null, null, 'leog', '2013-12-22T18:54:23Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3874', '37', '5512', 'Teach ng-switch-when understand expressions', 'I needed this for a project and I would like to contribute it so everyone can use it.', '6', null, null, 'leog', '2013-12-22T20:05:20Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3875', '37', '5516', 'docs(guides/directive): document the C and M directive options', 'I was looking at some code that had:\r\n\r\n restrict: \'CA\',\r\n\r\nI had a super hard time figuring out what it did. It would be nice to mention this in the comments.', '4', null, null, 'benmccann', '2013-12-23T03:38:31Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3876', '37', '5517', 'Fix z-indexes - they were back to front', 'In the original form, with ng-enter at z-index:100 and ng-leave at z-index:99 the transition stutters. With them swapped, the transition is smooth. The swap also makes the CSS match the description that the new page should be on top.', '3', null, null, 'Uplink03', '2013-12-23T03:41:30Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3877', '37', '552', 'docs with html5 mode', '**WIP**\r\n\r\nConfigure our docs to use new $location with html5 history api !\r\n\r\nUpdate simple node web server to serve index.html for all links (rewritting)', '1', null, null, 'vojtajina', '2011-09-09T11:09:14Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3878', '37', '5522', 'Update ng-sanitize to allow the size attribute', 'The \"size\" attribute gets set on <font> elements when using HTML5 rich text editors, or elements with the contenteditable attribute, that rely on the \'fontSize\' command (execCommand).', '4', null, null, 'bradyisom', '2013-12-23T20:15:05Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3879', '37', '5523', 'fix($httpBackend): wrap withCredentials in try/catch for IE8 with native XMLHTTP disabled', 'If native XMLHTTP is disabled in the advanced security settings in IE8, attempting to set\r\nthe withCredentials property throws an exception. Swallowing the exception allows\r\n$httpBackend to work in IE8.', '4', null, null, 'blakeblackshear', '2013-12-24T01:24:33Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3880', '37', '5530', 'Update q.js', 'Also mentioned Android Browser since it also throws an error when using \'finally\' without quotes.', '2', null, null, 'laurent22', '2013-12-24T17:45:16Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3881', '37', '5536', 'fix($q): pass promise-aplus-tests v2.0.3 WIP', 'This is still a work in progress, but this implementation is now passing the\r\nfull promises-aplus-tests v2.0.3.\r\n\r\nIt is still necessary to shrink this down and hopefully provide a better\r\nflyweight/prototype-based implementation.\r\n\r\nFixes #5223', '3', null, null, 'caitp', '2013-12-25T18:33:32Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3882', '37', '5538', 'Load tasks with a one-liner', 'Make more maintainable the Gruntfile. This automatically load any tasks listed in devDependencies.', '2', null, null, 'igorlima', '2013-12-26T00:16:53Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3883', '37', '5540', 'ng-hide adds .ng-hide class when true, not false.', '', '4', null, null, 'willthefirst', '2013-12-26T17:20:13Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3884', '37', '5541', 'Add support for <input type=\"month\"/>', 'Related to PR #5256.\r\n\r\nAgain, adding each of these features as individual PRs, they can be squashed if need be.', '4', null, null, 'blesh', '2013-12-26T18:26:09Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3885', '37', '5542', 'feat($routeProvider): add support for regular expressions routes ', 'I had a requirement for doing a pure regexp route with parameter grabbing. I attempted to choose a generic naming using regexp_param(n). The original path string sterilization is wrapped in an if condition to determine if it is a regular expression. ', '18', null, null, 'VTJamie', '2013-12-26T19:02:45Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3886', '37', '5543', 'Add support for <input type=\"time\"/>', 'Related to PR #5256\r\n\r\n**EDIT: typo 5456 should have been 5256**', '3', null, null, 'blesh', '2013-12-26T19:56:16Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3887', '37', '5544', 'Fixed minor typo', '', '1', null, null, 'fixe', '2013-12-26T21:31:02Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3888', '37', '5545', 'style(ngRepeat): tiny refactor', 'A tiny refactor to make the codeflow more fluent by following the order of the expression.', '0', null, null, 'gsklee', '2013-12-26T22:42:05Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3889', '37', '5547', 'Android stock browser fix for #1356', 'Android stock browser fix for #1356', '4', null, null, 'rafallo', '2013-12-27T12:45:49Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3890', '37', '5550', 'fix(ngRoute): instantiate controller when template is empty', 'Before this change, $route controllers are not instantiated if the template is falsy, which includes the empty string. This change tests if the template is not undefined, rather than just falsy, in order to ensure that templates are instantiated even when the template is empty, which people may have some reason to do.\r\n\r\nThis \"bug\" was reported in http://robb.weblaws.org/2013/06/21/angularjs-vs-emberjs/, as a \"gotcha\" for AngularJS / ngRoute.\r\n\r\nhttp://plnkr.co/edit/ugXbMOinzRg05CH3LUkO?p=preview a demo of it in practice', '2', null, null, 'caitp', '2013-12-28T01:31:52Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3891', '37', '5551', 'docs($sce): clean up the docs', 'Include mention of `ngSanitize` (and add it to the example), as well as removing (and clarifying if needed) references to `ng-html-bind-unsafe`.', '8', null, null, 'CWSpear', '2013-12-28T01:57:31Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3892', '37', '5552', 'fix(ngAnimate): Unblock transitions before reflow', 'I have investigated this issue: http://jsfiddle.net/2fnhr/1/\r\n\r\nFrom this question: http://stackoverflow.com/questions/20810791/angular-nganimate-causes-width-animations-to-jump\r\n\r\nCommenting the \"blockTransitions\" call resolves the issue. But there is a comment in the source-code justifying the need of blocking transitions. So, unblocking before reflow (as suggested in this PR) also resolves the issue.\r\n\r\nThis way or another, the issue needs to be addressed.', '5', null, null, 'jbruni', '2013-12-28T05:22:47Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3893', '37', '5553', 'Update step_12.ngdoc', 'docs(tutorial): replaced a missing apostrophe and fixed grammar errors', '14', null, null, 'jaygoldman', '2013-12-28T06:35:19Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3894', '37', '5556', 'refactor(ngRepeat): tiny refactor', 'A tiny refactor to make the codeflow more fluent by following the order of the expression.', '0', null, null, 'gsklee', '2013-12-28T14:16:48Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3895', '37', '5557', 'feat(ngRepeat): support a new range syntax for integer arrays', 'Provide a range syntax [_from_.._to_] as a shorthand when iterating over an array of integers.\r\n\r\nCloses #3861\r\nCloses #5268\r\n\r\n---\r\n\r\nThe refactoring commit has been wrapped independently as a separate PR (#5556).', '7', null, null, 'gsklee', '2013-12-28T14:22:00Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3896', '37', '5558', 'fixing small typo', 'Small typo: \'in it\' instead of \'init\'.', '6', null, null, 'andresilveira', '2013-12-28T17:09:45Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3897', '37', '5560', 'feat(ngResource): make stripping of trailing slashes configurable for `$resource`', 'By default, trailing slashes will be stripped from the calculated URLs, which can pose problems with server backends that do not expect that behavior. This patch aims to make this behavior configurable via:\r\n\r\n```javascript\r\napp.config(function($resourceProvider) {\r\n $resourceProvider.defaults.stripTrailingSlashes = false;\r\n});\r\n```\r\n\r\nor per instance, using a new, fourth, optional argument to the `$resource()` constructor:\r\n\r\n```javascript\r\nvar CreditCard = $resource(\'/some/:url/\', ..., ..., {\r\n stripTrailingSlashes: false\r\n});\r\n```\r\n\r\nThis is targeted to be a fix for #992. Please let me know if anything is missing from this, or you need me to change anything to make the implementation more idiomatic.\r\n\r\n---\r\n\r\nPS: I\'m sorry for the seemingly large patch, but most of it is just indentation (due to rewriting the factory as a provider). I\'ve tried to isolate the whitespace change in a separate commit.', '22', null, null, 'nvie', '2013-12-29T01:42:05Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3898', '37', '5564', 'docs: html codes binding from component listing description', '&#123;… codes replacement by using html bind way\r\nfix by instance here http://docs.angularjs.org/api/ng on ngHref\r\ndescription\r\nUsing Angular markup like &#123;&#123;hash&#125;&#125; in an href\r\nattribute will', '7', null, null, 'darul75', '2013-12-29T11:40:24Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3899', '37', '5567', 'typos fixed in Services section', 'Code uses module names with \'2\' as postfix while the explanation used the module names without the postfix. The diagram is correct but also does not postfix the module names.', '3', null, null, 'akerekes', '2013-12-29T14:24:59Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3900', '37', '5569', 'feat(ngResource): Add transformParams to the actions object', 'transformParams provides a public API to serialize params for an action.\r\nBefore if you wanted to a custom serialization for a complex datatype\r\nyou would have to transform the object higher in the stack, with this\r\nchange you can keep your logic at the REST level.\r\n\r\nCloses #5521', '14', null, null, 'Sean-Der', '2013-12-30T03:07:23Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3901', '37', '5570', 'feat($animate): proper support for multiple elements', 'Run performAnimation for each node instead of doing it for the first\r\nelement node.\r\n\r\nUpdate: Made this less hacky. ~~I made this PR keeping in mind to make as little changes in animate.js and as quickly as possible to get across my point. The code can be more elegant (e.g. introduce another function, etc.).~~\r\n\r\nBy running the animation on a per-element basis, there will be no issue with comment nodes etc. and the animation methods are now more intuitive and less surprising (more explanation in #5561 for what I\'m referring to).\r\n\r\nFixes #4954 , relates to #5561 and #4786 .\r\n\r\nNote that this change makes the animations method behaviors asymmetric. When calling `$animate.leave(elements)`, the `leave` animation to fire for each element in `elements`. However, as the current implementation of animations is class-based, I don\'t see any value in firing the `leave` animation for non-element nodes as they cannot have classes and hence, have no meaning to ngAnimate.', '7', null, null, 'chrisirhc', '2013-12-30T11:06:03Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3902', '37', '5571', 'refactor(animate): remove duplicate line', '', '4', null, null, 'chrisirhc', '2013-12-30T11:13:01Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3903', '37', '5573', 'fix(ngShow/ngHide): follow javscript `truthy`/`falsy` logic', 'Make ngShow and ngHide follow javascript `truthy`/`falsy` logic and\r\nnot the custom toBoolean logic\r\n\r\nCloses #5414\r\nCloses #4277', '9', null, null, 'lgalfaso', '2013-12-30T15:55:25Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3904', '37', '5574', 'Form $attempted status', 'A contribution to issue #583', '9', null, null, 'nicoabie', '2013-12-30T17:01:48Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3905', '37', '5576', 'fix($rootScope): prevent infinite $digest loop by also checking if asyncQueue is empty when decrementing ttl', 'An infinite $digest loop can be caused by expressions that invoke a promise. The problem is that $digest does not\r\ndecrement ttl unless it finds dirty changes; it should check also if asyncQueue is empty.\r\nGenerally the condition for decrementing ttl should be the same as the condition for terminating the $digest loop.\r\n\r\nCloses #2622', '3', null, null, 'sinelaw', '2013-12-30T23:10:00Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3906', '37', '5577', 'fix($injector): remove INSTANTIATING entry when done.', 'getService flags services as INSTANTIATING while it calls their\r\nprovider factory, in order to detect circular dependencies. If\r\nthe service is instantiated correctly, the INSTANTIATING flag is\r\noverwritten with the actual service. However, if the service is\r\nnot instantiated correctly, the INSTANTIATING flag should still\r\nbe removed, or all further requests for this service will be\r\nmis-detected as a circular dependency.\r\n\r\nCloses #4361.', '0', null, null, 'metamatt', '2013-12-31T00:04:56Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3907', '37', '5578', 'fix($rootScope): prevent infinite $digest loop by also checking if asyncQueue is empty when decrementing ttl', 'An infinite $digest loop can be caused by expressions that invoke a promise. The problem is that $digest does not\r\ndecrement ttl unless it finds dirty changes; it should check also if asyncQueue is empty.\r\nGenerally the condition for decrementing ttl should be the same as the condition for terminating the $digest loop.\r\n\r\nCloses #2622', '2', null, null, 'sinelaw', '2013-12-31T01:13:07Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3908', '37', '5579', 'fix($httpBackend): use ActiveX XHR when making PATCH requests on IE8', 'IE8\'s native XHR doesn\'t support PATCH requests, but the ActiveX one does.\r\n\r\nCloses #2518\r\nCloses #5043\r\n\r\n=============\r\n\r\nThe feature is mainly implemented by @IgorMinar in #5390 - the text above is from his commit. @caitp found the bug that caused the tests to fail, and I suggested a refactor of her fix, which appears in my commit.\r\n\r\nUnfortunately, I don\'t have a backend running currently that responds to a PATCH request, so I cannot test this in IE8 atm.', '6', null, null, 'wesleycho', '2013-12-31T02:10:30Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3909', '37', '5580', 'fix($location): ensure $locationChangeStart broadcast during $digest', 'I\'m not totally convinced this is a necessary change (see comments on #5118).\r\n\r\nHowever, feedback valuable. I\'ll amend this message if it becomes clear that \r\nit\'s a worthwhile change.\r\n\r\nCloses #5118\r\nCloses #4989', '9', null, null, 'caitp', '2013-12-31T02:32:45Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3910', '37', '5584', 'docs(tutorial/step-11): fix typo', '', '4', null, null, 'andresilveira', '2013-12-31T13:24:02Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3911', '37', '5586', 'Bower test branch', '', '2', null, null, 'chrispaul8484', '2013-12-31T19:47:58Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3912', '37', '5592', 'fix($parse): fix CSP nested property evaluation, and issue that prevente...', '...d its tests from failing\r\n\r\ncspSafeGetterFn incorrectly returned undefined if any of its key parameters were undefined. This\r\nwasn\'t caught by the $parse unit tests because of a timing problem where $ParseProvider was reading the CSP flag before the tests manually set it, so the CSP property evaluation tests never ran. Add\r\ntest that verifies evaluation of nested properties of multiple lengths.\r\n\r\nFixes <a href=\"https://github.com/angular/angular.js/issues/5591\">#5591</a>', '10', null, null, 'dozingcat', '2014-01-01T18:24:51Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3913', '37', '5595', 'fix(animate): remove trailing `s`', 'ngAnimate adds an extra trailing `s` when applying styles during animations. Ending up with buggy animation durations like : `-webkit-transition-duration: 1s, 3ss;`. ', '3', null, null, 'mgcrea', '2014-01-02T11:28:07Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3914', '37', '5597', 'Make directives copy attributes with spaces (Fix for issue 5513)', 'PR for issue #5513', '5', null, null, 'siddii', '2014-01-02T16:19:22Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3915', '37', '5598', 'fix(ngRepeat): allow for more flexible coding style in ngRepeat expression', 'Closes #5537', '0', null, null, 'gsklee', '2014-01-02T16:30:47Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3916', '37', '5599', 'Fix typo', '', '1', null, null, 'dburrows', '2014-01-02T16:59:57Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3917', '37', '560', 'upgrade to jQuery 1.6.4', 'CI build is green: http://ci.angularjs.org/view/AngularJS%20Dev/job/angular.js-igor/177/', '1', null, null, 'IgorMinar', '2011-09-15T23:29:01Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3918', '37', '5600', 'fix($animate): ensure class-based animations are always skipped before structural digests are run', 'Closes #5582', '5', null, null, 'matsko', '2014-01-02T17:06:15Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3919', '37', '5603', 'fix($httpBackend): Ignore multiple calls to onreadystatechange with read...', '...yState=4\r\n\r\nOn mobile webkit `onreadystatechange` might by called multiple times\r\nwith `readyState===4` caused by xhrs that are resolved while the app is\r\nin the background.\r\n\r\n Fixes #5426.', '1', null, null, 'tbosch', '2014-01-02T22:38:20Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3920', '37', '5604', 'Fix 5525', '', '2', null, null, 'IgorMinar', '2014-01-02T22:39:47Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3921', '37', '5605', 'fix(ngShow/ngHide, ngIf): functions with zero args should be truthy', 'Previously, expressions that were a function with one or more arguments evaluated to true, but functions with zero arguments evaluated to false.\r\n\r\nThis behavior seems both unintentional and undesirable. This patch makes a function truthy regardless of its number of arguments.\r\n\r\nCloses #5414', '6', null, null, 'btford', '2014-01-02T23:18:06Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3922', '37', '5606', 'fix($browser): remove base href domain when url begins with \'//\'', 'This change prevents an incorrect appBase url from being calculated when the\r\n<base> href\'s domain begins with \'//\'.\r\n\r\nRelated to #5292, tangentially.\r\n\r\nI don\'t know for sure if this is the correct behaviour, but it doesn\'t seem\r\ntotally unreasonable.\r\n\r\nBefore this change, if an app used `<base href=\"//my.domain.com/app\">`, the entire href would be treated as a path, and $location would behave incorrectly, due to appending it to the initial domain.\r\n\r\nSo, that\'s a thing.', '0', null, null, 'caitp', '2014-01-03T00:16:51Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3923', '37', '5607', 'Add options for number filter', 'The angular number format function is very robust. It is quite the shame that it is not available except in a very limited manner. This extension extends the existing number filter to allow users to configure the filter on demand. Useful for those of us who need to have custom prefixes and suffixes dependent on the data we are presenting.', '5', null, null, 'park9140', '2014-01-03T02:15:54Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3924', '37', '5608', 'chore(docs): intelligently prepare short summaries for module components', '', '8', null, null, 'matsko', '2014-01-03T04:23:06Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3925', '37', '5609', 'feat(Attributes): added support for attributes observing deregistration', 'In order to make the behavior compatible with [$rootScope.$watch()](http://docs.angularjs.org/api/ng.$rootScope.Scope#methods_$watch) and [$rootScope.$on](http://docs.angularjs.org/api/ng.$rootScope.Scope#methods_$on) methods, and\r\nmake it possible to deregister an attribute observer, Attributes.$observe method now returns a\r\nderegistration function instead of the observer itself.\r\n\r\nBREAKING CHANGE: calling attr.$observe no longer returns the observer function, but a\r\n deregistration function instead.\r\n\r\n To migrate the code follow the example below:\r\n\r\n Before:\r\n\r\n directive(\'directiveName\', function() {\r\n return {\r\n link: function(scope, elm, attr) {\r\n var observer = attr.$observe(\'someAttr\', function(value) {\r\n console.log(value);\r\n });\r\n }\r\n };\r\n });\r\n\r\n After:\r\n\r\n directive(\'directiveName\', function() {\r\n return {\r\n link: function(scope, elm, attr) {\r\n var observer = function(value) {\r\n console.log(value);\r\n };\r\n\r\n attr.$observe(\'someAttr\', observer);\r\n }\r\n };\r\n });', '10', null, null, 'caiotoon', '2014-01-03T04:28:13Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3926', '37', '561', 'Docs html mode 2', 'This is a fixup of Vojta\'s docs-html-mode branch.', '5', null, null, 'IgorMinar', '2011-09-16T14:41:32Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3927', '37', '5610', 'typo in dupes.ngdoc', '', '1', null, null, 'drewp', '2014-01-03T05:18:15Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3928', '37', '5611', 'docs($filter): fix wrong param order in doc', 'fix wrong param order in doc for filter comparator\r\ndoc function param for filter expression\r\n\r\nCloses #5365', '1', null, null, 'royling', '2014-01-03T08:32:59Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3929', '37', '5613', 'feat(ngResource): Add $abort method to objects returned by $resource \"class\" actions', '`$resource` \"class\" actions delegate to `$http` in a fashion that does not allow to pass `timeout` promise to individual requests. Hence these individual requests can not be cancelled. This patch adds `$abort` method to the object returned by `$resource` \"class\" actions.\r\n\r\nCloses #5612 ', '16', null, null, 'arty-name', '2014-01-03T12:20:37Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3930', '37', '5614', 'Update route.js', 'feat(ngRoute): change\r\n\r\nThis change adds a new event on ngRoute called beforeRouteChange. With this change it is possible to cancel a locationChange based on route data. The problem that I am trying to fix here is described in https://github.com/angular/angular.js/issues/5581', '6', null, null, 'yoerlemans', '2014-01-03T13:18:39Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3931', '37', '5616', 'fix($httpBackend): cancelled JSONP requests should not throw error', 'When you cancel a JSONP request, angular deletes the callback for it. However the script still executes, and since the callback is now deleted and undefined, the script throws an exception visible in the console. The quick fix for this is not to delete the callback, but replace it with `angular.noop`.\r\n\r\nCloses #5615', '10', null, null, 'arty-name', '2014-01-03T15:24:50Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3932', '37', '5617', 'fix($compile): retain CSS classes added in clone fn on async directive', 'In synchronous directives (without a templateUrl), classes added to the node during the clone attach function persist in the post-link function.\r\n\r\nBefore this patch, classes addedd to asynchronous templates during the clone attach function would not persist after the node is replaced with the template prior to linking.\r\n\r\nFixes #5439', '7', null, null, 'caitp', '2014-01-03T16:53:29Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3933', '37', '5621', 'chore(package.json) typo in release name', 'There\'s a trailing space', '1', null, null, 'bwiklund', '2014-01-03T20:04:49Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3934', '37', '5622', 'docs(ngRepeat): add info about aliasing special properties of ngRepeat', 'This will safe peoples\' time, since ngRepeat\'s docs, not ngInit\'s, is the first place where one would search for such info.', '1', null, null, 'vucalur', '2014-01-03T20:23:16Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3935', '37', '5624', 'style($httpBackend): fix typo', '', '2', null, null, 'campersau', '2014-01-03T21:26:05Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3936', '37', '5626', 'ngTouch: bust mousedown events', 'This pull request busts `mousedown` in addition `click`.\r\n\r\nSafari for iOS will send `mousedown` events with `click` events. `ngTouch` adds the class `ng-click-active` after both `touchstart` and `mousedown` events. Since `mousedown` comes 300ms after `touchstart`, any CSS using `.ng-click-active` will be applied twice with a 300ms delay between.\r\n\r\n**[Safari Web Content Guide](https://developer.apple.com/library/safari/documentation/AppleApplications/Reference/SafariWebContent/HandlingEvents/HandlingEvents.html)** (See Figure 6-4)\r\n\r\n**[Demo of bug on JSFiddle](http://jsfiddle.net/TylerEich/prkjg/26/)**', '4', null, null, 'TylerEich', '2014-01-04T00:07:07Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3937', '37', '5628', 'feat($interpolate): escape interpolated expressions', 'By default, the escaped interpolation start and end symbols are `{{{{` and `}}}}`, respectively.\r\n\r\nThese symbols will be replaced with the proper interpolation start and end symbols during interpolation, without parsing the expression.\r\n\r\nFixes #5601\r\n\r\nThese tests might be made better, and the implementation might be improved. Comments welcome :3', '26', null, null, 'caitp', '2014-01-04T02:15:00Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3938', '37', '5629', 'feat(select): allow multiline ng-options', 'This patch allows the ng-options value of a <select> element to span\r\nmultiple lines, which would previously throw an error when used with filters.\r\n\r\nCloses #5602', '7', null, null, 'jrupac', '2014-01-04T03:22:08Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3939', '37', '5630', 'docs($http): makes clear $httpProvider.defaults are available at run-time', 'docs($http): makes clear $httpProvider.defaults are available at run-time\r\n\r\nClarifies some confusion around $http.defaults existing and able to be modified\r\nat run-time, for when run-time services may be needed in a transformation.\r\n\r\nCloses #5559', '1', null, null, 'MikeMcElroy', '2014-01-04T06:08:46Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3940', '37', '5631', 'refactor(filterFilter): simplify code by a ternary op instead of if-else', '- use only one IIFE and a ternary op in it, instead of invoking separate IIFEs in if-else (this also completely fixed the same issue closed by PR #3597)\r\n- also add a spec to verify usage of \'$\' property in expression object (e.g. `{$: \'a\'}`)', '3', null, null, 'royling', '2014-01-04T08:44:46Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3941', '37', '5633', 'docs: fix typo', '', '1', null, null, 'kennethlynne', '2014-01-04T16:44:50Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3942', '37', '5636', 'fix($http): return responseText on IE8 for requests with responseType set', 'Closes #4464\r\nCloses #4738', '3', null, null, 'IgorMinar', '2014-01-05T07:43:31Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3943', '37', '5637', 'refactor(filterFilter): simplify code by a ternary op instead of if-else', '- use only one IIFE and a ternary op in it, instead of invoking separate IIFEs in if-else\r\n(this also completely fixed the same issue closed by PR #3597)\r\n- also add a spec to verify usage of \'$\' property in expression object (e.g. `{$: \'a\'}`)', '1', null, null, 'royling', '2014-01-05T07:54:30Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3944', '37', '5639', 'docs(Attributes): fix a typo', '', '0', null, null, 'gsklee', '2014-01-05T15:57:11Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3945', '37', '564', 'doc(disqus): Add integration to disqus discussion thread service', '- add loadDisqus method to be called inside afterPartialLoaded\r\n\r\n- add div container for disqus threads\r\n\r\n- add style for disqus threads in css\r\n\r\n- requires signing up for disqus account and creating a site with key of \'angularjs\'', '5', null, null, 'dandoyon', '2011-09-20T03:48:21Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3946', '37', '5640', 'Document difference between ng-change and JavaScript onchange', 'The ng-change event triggers immediately, which makes a difference for text input fields and text areas, where the JavaScript onchange event would only be called at the end of the change.', '4', null, null, 'andreas-gruenbacher', '2014-01-05T15:59:12Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3947', '37', '5641', 'docs: fix the \'view source\' button for snapshots', 'this potentially breaks every time the format of gruntUtil.getVersion().full changes\r\n\r\nfixes #5590', '8', null, null, 'Narretz', '2014-01-05T17:01:35Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3948', '37', '5642', 'changed capitalization to improve readability', 'In order to improve readability from \"Is set\" (confused on my screen as \'Ls set\') updated the capitalization describing the setting of 4 CSS classes.', '1', null, null, 'lazaruslarue', '2014-01-06T01:04:33Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3949', '37', '5643', 'refactor(input): wrapped validation logic in helper function', 'I feel this makes the code more readable, but I suppose that\'s debatable. It cuts 476b off `.min` and 72b off `.min.gz`\r\n\r\nAlso included:\r\n\r\nI moved `var min = parseFloat(attr.min);` and `var max = parseFloat(attr.max);` out of their validation function, since they only need to be evaluated once.\r\n\r\nI renamed the regex helper function form `validate` to `validateRegex` and moved it inside the if block that uses it.\r\n\r\nIf you\'d like these split up into separate PR\'s I can do that.\r\n', '10', null, null, 'bwiklund', '2014-01-06T04:06:36Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3950', '37', '5644', 'style(inputSpec): fixed typos', '', '1', null, null, 'bwiklund', '2014-01-06T04:06:53Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3951', '37', '5646', 'Make ngAnimate work as closely as possible to natural CSS transitions', 'NgAnimate and natural CSS transitions are not 1-1 in terms of behaviour (yet), but this fix brings 1.2 to work alongside natural CSS transitions much better. With 1.3 the API will be changed so things are more fluid, but this fix should handle a good amount of the class-based bugs that are appearing in ngAnimate.\r\n\r\nLong story short, if you remove ngAnimate from your application it should perform the exact same for CSS-based transitions and keyframe animations triggered by $animate.addClass and/or ngClass.\r\n\r\nCloses #5588 \r\nCloses #5191\r\n\r\nHere\'s an example of what should happen:\r\n\r\n\r\nNatural CSS animations without ngAnimate\r\nhttp://jsfiddle.net/7vk7p/3/\r\n\r\nAnd this is how it is expected to be with ngAnimate\r\nhttps://s3.amazonaws.com/angularjs-dev/ng-animate-race-condition-fix/example/animate.html\r\n\r\nThis is how it currently is:\r\nhttp://jsfiddle.net/7vk7p/2/', '2', null, null, 'matsko', '2014-01-06T04:50:29Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3952', '37', '5647', 'docs(forms): show directive name instead of link path', '', '1', null, null, 'royling', '2014-01-06T08:38:00Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3953', '37', '5649', 'feat($resource): Add optional constructor to factored resources', 'So we can specified the custom constructor.\r\n\r\nRelated: #1483.', '10', null, null, 'bolasblack', '2014-01-06T15:30:06Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3954', '37', '565', 'fix($route): fix regex escaping in route matcher', '', '1', null, null, 'IgorMinar', '2011-09-21T11:47:54Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3955', '37', '5651', 'Fix a typo in i18n.ngdoc', 'This PR fixes a simple typo in i18n.ngdoc.', '0', null, null, 'tylermcginnis', '2014-01-06T19:02:36Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3956', '37', '5652', 'chore(build): refactor build scripts in prepare/publish phase', 'Refactored all build scripts so that they are divided into a `prepare`\r\nand a `publish` phase. By this we can build, test, tag, commit\r\neverything first. Only if all of this is ok we start pushing\r\nto Github. By this we keep Github consistent even in error cases.\r\n\r\nThe build scripts now also provide a way of using\r\n`git push --dryrun` so we can test the push without actually updating\r\nthe remote repository.\r\n\r\nExtracted include script `/scripts/utils.inc`:\r\n- parse and validate named arguments in the style\r\n `--name=value`\r\n- proxy git command and deactivate `git push` based on\r\n command option `--git_push_dry_run=true`\r\n (will be inherited to child scripts)\r\n- enable/disable bash debug mode by command option\r\n `--verbose=true`\r\n- dispatch to functions based on command option\r\n `--action=...`\r\n- helper functions for dealing with json files', '3', null, null, 'tbosch', '2014-01-06T19:38:51Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3957', '37', '5654', 'Update input.js', 'Extend the example with `ng-value` showing how to deal with default checked radio boxes.', '5', null, null, 'numediaweb', '2014-01-06T23:48:37Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3958', '37', '5655', 'Update ngEventDirs.js', 'Note about an error that may happen if the `ng-submit` and the `ng-model` share the same name value preventing the form to be submit.', '7', null, null, 'numediaweb', '2014-01-07T00:24:28Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3959', '37', '5656', 'test(input): minlength test cases', 'Are these assertions correct? I\'m adding new tests to minlength/maxlength, and the minlength one is failing. Should it be failing?', '10', null, null, 'bwiklund', '2014-01-07T04:04:45Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3960', '37', '5657', 'Fixed typo from HMTL to HTML in line 283', 'HTML was mis-spelt as HMTL', '3', null, null, 'zhongliangong', '2014-01-07T08:34:16Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3961', '37', '566', 'action.verifyCache is not an error handler.', 'I have just spent a couple hours figuring out why my implementation of $xhr.error service was not called by the $resource service on errors.\r\n\r\nThere\'s clearly a typo in the changed line, since there\'s no reason to pass action.verifyCache as error function.\r\n', '5', null, null, 'marcenuc', '2011-09-22T11:35:05Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3962', '37', '5660', 'fix($rootScope): allow $destroy of ancestor/self within watcher', 'First stab at this #5658 .\r\n\r\nThe `$parent` property of a scope maybe null in the case that it is destroyed within a watcher. Hence, just track the parents through a stack.\r\n\r\nI\'m aware that this fix isn\'t performant and creates a lot of work for the GC. However, it\'s a proof of concept of my take on this. It can be refactored to use only one array instead of re-instantiating new arrays. This is just a simple application of the typical DFS algorithm. \r\n\r\nI\'ll update this PR once I verify that this is an issue at all and this is a use case worth supporting.\r\nOtherwise, if destroying a scope or its ancestor should *not* be done within its watcher, it must be documented somewhere as a big no-no.\r\n\r\nNote: May also want to short-circuit watcher loop if scope is destroyed.', '3', null, null, 'chrisirhc', '2014-01-07T10:04:56Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3963', '37', '5661', 'watchCollection: Return correct oldCollection argument to listener', 'Fixes #2621.\r\n\r\nAt present, when watchCollection calls a registered listener, the oldCollection argument has the same value as\r\nthe newCollection argument. This does not accord with the API description: \"The newCollection object is the newly modified data obtained from the obj expression and the oldCollection object is a copy of the former collection data.\".\r\n\r\nThis fix caches the collection value correctly. It also includes some optimisations to avoid copy activity when the collection is unchanged.', '10', null, null, 'johnsoftek', '2014-01-07T12:18:45Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3964', '37', '5662', 'refactor currentSpec to work for Jasmine 2', 'Addresses #5632\r\n\r\nhttps://github.com/angular/angular.js/issues/5632', '7', null, null, 'johnpapa', '2014-01-07T12:34:53Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3965', '37', '5664', 'refactor(booleanAttrs, ngSwitch): use link function instead of compile function where appropriate', 'Replace two compile functions that immediately return a post-link function with link function definitions instead.', '0', null, null, 'gsklee', '2014-01-07T13:32:51Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3966', '37', '5666', 'fix(ngResource): restore shallowClearAndCopy properties fitlering condition', '\r\nChange the way properties are fitlered to create a resource from a\r\nJavaScript Object.\r\n\r\nin angular version >= 1.2.6 properties of a resource with a name\r\nbeginning by a single \'$\' were fitlered from the created resource.\r\nProblem cames from the upgrade of the condition to filter properties that\r\nhave a \'$$\' prefix in the shallow copy. See commit cb29632.\r\n\r\nRestore the behavior ngResource had in angular 1.2.5 and inferior\r\nversions.', '8', null, null, 'atomrc', '2014-01-07T15:20:42Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3967', '37', '5669', '#5001: Fixes jqLite not appropriately adding and removing classes for IE...', '...9\r\n\r\nThis should address #5001 (tested it in a project on a Windows 7 VM with IE9), although I may not have crafted the most efficient fix - suggestions for refactoring are welcome.', '4', null, null, 'wesleycho', '2014-01-07T17:37:28Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3968', '37', '567', 'verifyCache is not an error handler.', 'The $resource service incorrectly uses action.verifyCache as default error handler. This patch changes it to use $xhr.error as with $xhr service.\r\n\r\nAll tests pass.', '4', null, null, 'marcenuc', '2011-09-22T14:22:02Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3969', '37', '5672', 'Bug: Fix precision for currency to use local specification', 'Currency improperly forces the precision to 2 decimal places for all currency formmating, overriding the locale settings.\r\n\r\nPull request restores the intended functionality to apply the local based precision values.', '23', null, null, 'park9140', '2014-01-07T20:16:46Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3970', '37', '5674', 'Add precision for currency filter', 'Depends on #5672. \r\n\r\nThis adds the fractionSize parameter to the currency filter. \r\n\r\nFor some, the common fractionSize of 2 needs to be overridden in certain scenarios. \r\n\r\nExample: gas pricing in the US where the price is actually accurate to 3 decimal places.', '3', null, null, 'park9140', '2014-01-07T21:42:55Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3971', '37', '5675', 'fix($parse): reduce false-positives in isElement tests', 'There are always going to be false positives here, unfortunately. But testing\ndifferent properties will hopefully reduce the number of false positives in a\nmeaningful way, without harming performance too much.\n\nCloses #4805', '8', null, null, 'caitp', '2014-01-07T21:43:53Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3972', '37', '5676', 'docs(script): add more detailed information', 'Closes #5671', '1', null, null, 'gsklee', '2014-01-08T00:12:11Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3973', '37', '5678', 'docs(document): so it looks better', '', '2', null, null, 'gsklee', '2014-01-08T00:58:01Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3974', '37', '5679', 'Update httpBackend, check window.XMLHttpRequest', 'As per this issue: https://github.com/angular/angular.js/issues/5677\r\n\r\nwindow.XMLHttpRequest is not always available in IE8 despite it not running in quirks mode, in which case Angular should be using the ActiveXObject instead. ', '22', null, null, 'jorgt', '2014-01-08T01:26:18Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3975', '37', '568', 'Implement spinner feature on ng:view', 'An implementation of the \"show content while loading\" feature discussed in\r\n\r\nhttp://groups.google.com/group/angular/browse_thread/thread/cfe1ddba4f3ed20b\r\n\r\nI thought spinner was a better name than show-default', '13', null, null, 'hekke', '2011-09-23T20:15:15Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3976', '37', '5681', 'fix($route): update current route upon service instantiation', 'This fixes cases where the first ngView is loaded in a template asynchronously (such as through ngInclude), as the service will miss the first $locationChangeSuccess event otherwise.\r\n\r\nCloses #4957', '11', null, null, 'dlukez', '2014-01-08T09:06:22Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3977', '37', '5682', 'bug($ng): change numberInputType to check for leading decimals', 'add check for leading decimal. Some browsers swallow leading decimals on\r\ninput type=\"number\".\r\n\r\nfixes #5680', '14', null, null, 'joeenzminger', '2014-01-08T15:23:33Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3978', '37', '5686', '#5001: Fixes jqLite not correctly adding & removing classes in IE9', 'This is a condensed version of [#5669](https://github.com/angular/angular.js/pull/5669) that does not break the tests. ', '4', null, null, 'wesleycho', '2014-01-08T18:02:19Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3979', '37', '5688', 'fix(rootScope): $watchCollection returns in oldCollection a copy of the ...', '...former array data\r\n\r\nrelated to #1751\r\nWhen watching arrays, $watchCollection returned the new data both in the newCollection\r\nand the oldCollection arguments of the listener\r\n\r\nSplit from PR #3865', '5', null, null, 'gonzaloruizdevilla', '2014-01-08T19:41:17Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3980', '37', '5689', 'fix(input): ngList is updated when array model values are changed', 'fixes #1751\r\n\r\nDepends on PR #5688\r\nSplit of PR #3865\r\n\r\nWhen the model referenced the same same array and the array values\r\nwhere changed, the list wasn\'t updated.\r\nNow watchCollection is used to detect changes in NgModelController.\r\n\r\nChanges in input.js breaked tests:\r\n— select select-multiple should require\r\n— select ngOptions ngRequired should treat an empty array as invalid when `multiple` attribute used\r\n\r\nChanges in select.js fixed them again: changes in the collections should trigger the formatters and render again.\r\n\r\nBEHAVIOUR CHANGE\r\nThere is a change in the behaviour of ngList when typing a list.\r\nWhen “a , b” is typed is automatically changed to “a, b”.', '2', null, null, 'gonzaloruizdevilla', '2014-01-08T19:43:15Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3981', '37', '5690', 'feat(docs): adding the <doc:protractor> ngdoc-tag', 'This is the first step in migrating tests from <doc:scenario> to <doc:protractor>.\r\nIn-documentation examples with doc:protractor sections will have their contents\r\noutput to a tab on the docs site as well as output to a standalone test file in\r\nbuild/docs/ptore2e.', '7', null, null, 'juliemr', '2014-01-08T20:40:55Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3982', '37', '5694', '#5001: Fixes jqLite not correctly adding & removing classes in IE9', 'This PR is a cleaned up version of [#5686](https://github.com/angular/angular.js/pull/5686). This is for #5001.\r\n\r\nSomehow my history got polluted due to bouncing between two different computers.', '22', null, null, 'wesleycho', '2014-01-09T01:24:53Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3983', '37', '5696', 'docs(provider): replaced coffeescript with comparable javascript example', '', '4', null, null, 'simpulton', '2014-01-09T02:56:39Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3984', '37', '5697', 'Update step_02.ngdoc', 'Fixed 1st code snippet under experiments to agree with the second step.', '4', null, null, 'sethstone', '2014-01-09T03:24:37Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3985', '37', '5698', 'docs($compile): update use cases for compile', 'It was brought up in #5638 that the current use cases for the compile definition field are out of date. These were the three use cases found in Angular\'s source for compile. \r\n\r\nThe second use case apply\'s to situations that call for throwing errors during the compile phase. (ie... if required attributes are missing from the directive)', '4', null, null, 'joshkurz', '2014-01-09T04:58:46Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3986', '37', '570', 'ng:style fix for #569', '', '2', null, null, 'IgorMinar', '2011-09-27T19:50:20Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3987', '37', '5700', 'Added missing whitespace', '', '4', null, null, 'rwilhelm', '2014-01-09T07:13:32Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3988', '37', '5702', 'Update step_07.ngdoc', 'should be $routeProvider.otherwise other than $route.otherwise;', '2', null, null, 'stucash', '2014-01-09T11:53:04Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3989', '37', '5705', 'fix($compile): copy expandostore data into replaced nodes', 'Before this patch, with modern versions of jQuery being used, the element data cache was not being copied over into the new element when replacing an asynchronous directive\'s compile node with its template. This caused an issue where the element passed into a post link function\'s scope() method would return the incorrect scope.\r\n\r\nThe test which is added passes regardless of the change in jQuery 1.10.2, which is currently checked into the tree, but fails without the change in jQuery 2.0.3.\r\n\r\nCloses #5099', '6', null, null, 'caitp', '2014-01-09T14:09:12Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3990', '37', '5708', 'Update $parsers NgModelController doc', 'Make it clear that the result of the $parsers pipeline is what goes to the model value. It was not clear to me for some time.', '4', null, null, 'gillius', '2014-01-09T16:31:03Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3991', '37', '5711', 'feat(build): add a grunt test for running protractor tests extracted fro...', '...m the docs', '1', null, null, 'juliemr', '2014-01-09T19:19:44Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3992', '37', '5712', 'fix($location): return \'/\' for root path in hashbang mode', 'Before this change, on the root of the application, $location.path() would return the empty string. Following this change, it will always return a root of \'/\'.\r\n\r\nCloses #5650', '5', null, null, 'caitp', '2014-01-09T19:21:10Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3993', '37', '5713', 'test(docs): add protractor tests for docs app', 'Closes #5437', '6', null, null, 'jeffbcross', '2014-01-09T19:32:29Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3994', '37', '5714', 'feat(ngRoute): cancel $routeChangeStart via $event.preventDefault()', 'This change allows ngRoute route changes to be cancelled using\n$event.preventDefault.\n\nThis enables route changes to be aborted at the discretion of the application.\n\nRoute changes may not be cancelled if forceReload is set to true.\n\nCloses #5581', '7', null, null, 'caitp', '2014-01-09T21:52:34Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3995', '37', '5715', 'Clarifying versions of IE that need special fixes', '', '3', null, null, 'cyounkins', '2014-01-09T22:00:40Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3996', '37', '5717', 'docs($location): fix link to $locationChangeSuccess event', 'Apparently this event link, as well as the link to $rootScope.$on are broken, huh.', '0', null, null, 'caitp', '2014-01-10T01:47:27Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3997', '37', '5718', 'Fixed typo (s/seapph/search)', '', '1', null, null, 'rwilhelm', '2014-01-10T01:48:30Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3998', '37', '572', 'Fixing #571', '`angular.Array.limitTo`\'s result cannot exceed original input array size\r\n\r\nTests and a little doc update provided.\r\n\r\nAlso added a little guard in case supplied input array is not Array type.', '8', null, null, 'TEHEK', '2011-09-28T00:02:08Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('3999', '37', '5722', 'Adds Closure externs for Cache factory.', 'Namaste,\r\n\r\nThe Closure compiler renames methods like removeAll, get, etc as\r\ndefined on the cache object. This patch adds externs to prevent\r\nthe Closure compiler from renaming them.\r\n\r\nThank you.\r\n\r\nCheers,\r\nYesudeep.', '7', null, null, 'gorakhargosh', '2014-01-10T07:36:51Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4000', '37', '5731', 'test.sh looks for node_modules/karma', 'For users who installed Karma globally (like me), test.sh threw an error; it could not find../node_modules/karma etc.\r\nI fixed this by changing test.sh to point to my (Windows) C:\\Users\\{User}\\AppData\\Roaming\\npm\\node_modules... etc,\r\nBut a better solution (?) is to install locally; the tutorial preface did not provide clear instructions about this http://docs.angularjs.org/tutorial', '7', null, null, 'theredpea', '2014-01-10T15:00:30Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4001', '37', '5735', 'corrected typo & markup.', 'the --> that \r\n\r\nvalue --> `value`', '0', null, null, 'lazaruslarue', '2014-01-11T01:01:08Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4002', '37', '5738', 'docs(api/index): fix typo', '', '1', null, null, 'royling', '2014-01-11T06:42:40Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4003', '37', '574', 'We need to call $digest() when initializing manually.', 'The documentation was incomplete.', '2', null, null, 'marcenuc', '2011-09-30T12:35:59Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4004', '37', '5740', 'refactor(ngRepeat): rearrange code flow', 'Rearrange the codes according to their corresponding positions within the ngRepeat expression.', '1', null, null, 'gsklee', '2014-01-11T09:29:08Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4005', '37', '5741', 'docs(ngView): add param info', 'Closes #5734', '1', null, null, 'gsklee', '2014-01-11T09:44:45Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4006', '37', '5743', 'Added missing beforeEach(module()) to test', 'Test snippet was missing this necessary statement that was present in the sample code.', '1', null, null, 'sethstone', '2014-01-11T17:33:32Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4007', '37', '5746', 'fix(ngRoute): wrong redirect to paths containing optional or special parameters', '\r\nWhen the path contains optional parameters `?` or special parameters `*` the redirects to those routes are broken, the location will end with the relative encoded character.\r\n\r\nTo reproduce the issue:\r\n* create a route with optional parameters, es. `$routeProvider.when(\'/profile/:userId?\', ...)`\r\n* angular will add the automatic redirect with or without the trailing **/**, in this case `\'/profile/:userId?/\'`\r\n* point your browser to the redirect `http://localhost/#!/profile/0/`, you\'ll see the encoded `? (%3F)` at the end of the url: `http://localhost/#!/profile/0%3F`\r\n\r\nHappens also for the special parameters `*` and also for the opposite scenario, when the route has the ending **/** (`/profile/:userId?/`) and you browse the url without slash `/profile/0`. It affects every redirect that uses the function interpolate in combination with special parameters.', '7', null, null, 'Pasvaz', '2014-01-11T22:10:41Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4008', '37', '5747', 'fix headers common, tests pass: closes #5742', 'updated http common headers object values to be passed through copy() first. Write new specs. All specs green.', '0', null, null, 'Hendrixer', '2014-01-11T23:21:40Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4009', '37', '5748', 'Referenced test.bat for Windows users', '', '2', null, null, 'leniel', '2014-01-12T01:19:16Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4010', '37', '5749', 'ngAnimate enhancements', '## Fixes to Transitions / Keyframe Animations\r\nNgAnimate and natural CSS transitions are not 1-1 in terms of behaviour (yet), but this fix brings 1.2 to work alongside natural CSS transitions much better. With 1.3 the API will be changed so things are more fluid, but this fix should handle a good amount of the class-based bugs that are appearing in ngAnimate.\r\n\r\nLong story short, if you remove ngAnimate from your application it should perform the exact same for CSS-based transitions and keyframe animations triggered by $animate.addClass and/or ngClass.\r\n\r\nCloses #5588 \r\nCloses #5191\r\n\r\nHere\'s an example of what should happen:\r\n\r\n\r\nNatural CSS animations without ngAnimate\r\nhttp://jsfiddle.net/7vk7p/3/\r\n\r\nAnd this is how it is expected to be with ngAnimate\r\nhttps://s3.amazonaws.com/angularjs-dev/ng-animate-race-condition-fix/example/animate.html\r\n\r\nThis is how it currently is:\r\nhttp://jsfiddle.net/7vk7p/2/\r\n\r\n## Cleanup\r\nRemove a useless test from ngAnimate\r\n\r\n## Fixes to Staggering animations\r\nBroken with 1.2.5+ due to closing timeout feature.\r\n\r\n## Fixes to performance\r\nUse `requestAnimationFrame` instead of $timeout to issue a forced reflow.\r\n\r\n## Animation callbacks\r\nAdded a new feature to tap into callbacks before and after animations DOM events are called.', '7', null, null, 'matsko', '2014-01-12T04:45:53Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4011', '37', '575', 'Closes #433 Short circuit of logical AND and OR operators', '', '6', null, null, 'dmanek', '2011-09-30T23:58:41Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4012', '37', '5755', 'docs(tutorial): referenced e2e-test.bat for Windows users in step 3', '', '0', null, null, 'leniel', '2014-01-13T03:55:48Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4013', '37', '5758', 'Updated directive restrict options', 'missing \'C\' restriction for class names added', '7', null, null, 'pyriand3r', '2014-01-13T09:13:28Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4014', '37', '5759', 'Update insecurl.ngdoc to doc restriction protocol+domain+port', 'The default trusted origin appears to be the same protocol+domain+port, non just protocol+domain.\r\nI patched the doc accordingly.', '4', null, null, 'lordarthas', '2014-01-13T09:38:46Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4015', '37', '576', 'docs(started): fixing pluralization', 'This is my first foray in to updating documentation, Vojta got me the google docs access today. This is very simple change to make sure I\'m doing this correctly. ', '3', null, null, 'dandoyon', '2011-10-01T04:40:07Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4016', '37', '5760', 'fix($browser): fix a INFDIG error when history back before onload event.', 'Basically the $browser.url method is not called when the URL is changed by history back event.\r\nThis case is handled by popstate event handler.\r\nBut popstate event is triggered only after onload event\r\nSo, the $browser.url method is called when the URL is changed by history back event before onload event.\r\nin this case, $locationWatch can cause INFDIG error\r\nbecause lastBrowserUrl == url == $location.absUrl() != $browser.url()\r\n\r\n\r\nscenario after onload event. (normal)\r\n\r\n[browser URL : A]\r\n[browser URL : B]\r\n-> history back\r\n[browser URL : A / location.absUrl() : A] \r\n\r\n\r\nscenario before onload event.\r\n\r\n[browser URL : A]\r\n[browser URL : B]\r\n-> history back\r\n[browser URL : A / location.absUrl() : B] - because popstate event is not triggered\r\n\r\n\r\n\r\n\r\n', '2', null, null, 'kimwz', '2014-01-13T09:54:56Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4017', '37', '5762', 'docs(ngHideShow): Add a list of falsy values', 'This PR closes #3436\r\n\r\nThis issue has been a focus of problems for some users and we discussed it on the IRC that it should be at least documented.\r\n\r\nI am not familiarized with this style of documentation so I hope it has the right style.', '4', null, null, 'Foxandxss', '2014-01-13T13:19:44Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4018', '37', '5764', 'fix($http): ensure that default headers are different objects', 'closes #5742', '1', null, null, 'cironunes', '2014-01-13T13:35:07Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4019', '37', '5765', 'fix($http): parse JSON only if Content-Type header contains string \'json\'', 'The default behaviour causes issues with a wide variety of custom\r\ninterpolation markers. Even if the JSON test regexps were strengthened to\r\ncloser match the standard JSON format, it would still limit the possibilities\r\nof different custom interpolation markers.\r\n\r\nBREAKING CHANGE: Previously, responses would be parsed as JSON if their\r\ncontent looked vaguely like JSON. Now, they are only parsed as JSON if their\r\nContent-Type response header contains the term \'json\', and if they are not\r\ncoming from the $templateCache.\r\n\r\nCloses #5756\r\nCloses #2973', '12', null, null, 'caitp', '2014-01-13T13:46:56Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4020', '37', '5769', 'Update step_02.ngdoc', 'I\'m suggesting a syntax change. Thank you.', '3', null, null, 'marcwright', '2014-01-13T17:41:24Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4021', '37', '577', 'Escaped \"short\" word and added ability to stop updatingRoute in beforeUpdateRoute', '', '3', null, null, 'bartes', '2011-10-04T09:25:42Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4022', '37', '5771', 'Typo: Practise', 'A small typo: `...it is a good practise to move...`', '2', null, null, 'Parziphal', '2014-01-13T20:05:58Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4023', '37', '5773', 'docs(versions): preserve URL path. Fixes #4661', 'Preserve URL path when switching between doc versions. Fixes #4661', '3', null, null, 'SebastianM', '2014-01-13T20:39:02Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4024', '37', '5774', 'fix(ng-hide): change to show that ng-hide adds .ng-hide class when truthy, not falsey', 'modified code to reflect that ng-hide adds the class when the boolean value is truthy.', '3', null, null, 'Mayho', '2014-01-13T20:42:58Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4025', '37', '5775', 'docs(CONTRIBUTING.md): add link to coding rules', 'add a link insie the Submitting a Pull Request section', '1', null, null, 'bigblind', '2014-01-13T22:51:09Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4026', '37', '5776', 'docs(angular.forEach): specifies that .forEach filters using .hasOwnProperty, fixes #5180', '', '1', null, null, 'Mayho', '2014-01-13T23:23:55Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4027', '37', '5777', 'test(doc:protractor): turn off animation for doc end to end tests to spe...', '...ed things up', '6', null, null, 'juliemr', '2014-01-13T23:27:08Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4028', '37', '5778', 'Add isFile to publishExternalAPI', 'It seems to be missing from the external api. I\'d rather not unnecessarily duplicate the same code in my code, so just make yours public.\r\n\r\nAlso moved version down one to group isDate with the rest of the code.', '6', null, null, 'lookfirst', '2014-01-14T01:14:35Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4029', '37', '5779', 'Update closure externs', ' * Update annotation for $q.all to allow passing object maps of promises\r\n * Update annotation for angular.Directive to allow pre/post link functions', '1', null, null, 'ghost', '2014-01-14T01:18:57Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4030', '37', '578', 'feat(gdocs): better error handling', '', '1', null, null, 'mhevery', '2011-10-05T20:04:14Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4031', '37', '5780', 'test(input): Minmaxlength databinding', 'In some other threads we talked about testing for interpolated databinding in ngMaxLength / ngMinLength and I finally got around to it.\r\n\r\nThe databinding works fine, except if you change the length value without firing an input event. If I comment out the second calls to `changeInputValueTo(...)` below, the tests will fail.\r\n\r\nHow should we handle this?', '3', null, null, 'bwiklund', '2014-01-14T02:02:54Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4032', '37', '5782', 'feat($animate): provide support for DOM callbacks', '', '1', null, null, 'matsko', '2014-01-14T02:51:40Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4033', '37', '5783', 'fix(ngMockE2E): added function parameter to $delegate on request passThrough', '\r\nThe ngMockE2E $httpBackend has a mechanism to allows requests to pass through if one wants\r\nto send a real http request instead of mocking. The responseType of the request was never\r\npassed through to the real http module, as it was missing in the function parameter list.\r\n\r\ncloses #5415', '7', null, null, 'biohazardpb4', '2014-01-14T02:59:16Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4034', '37', '5785', 'fix($http) - allow for user removal of default headers by passing header functions', 'Adds additional testing and fixes #5784\r\n\r\n\r\nCLA is signed perekyle@gmail.com, 2 additional tests (1 that failed) in the latest build of angular.js', '21', null, null, 'perek', '2014-01-14T06:56:08Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4035', '37', '5786', 'docs(guide/directive): rephrase for consistency', '- rephrase _prop_ to _attr_ (basically _prop_ refers to property in JS object, _attr_ is for HTML tag and also _attr_ is used in _directive_ api doc)\r\n- change the function name in description to `hideDialog` to match the name in code example', '0', null, null, 'royling', '2014-01-14T07:46:53Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4036', '37', '5787', 'Remove wrong method call', 'The invocation of the method `parent` will cause TypeError since `after` is evaluated to false.', '4', null, null, 'mgechev', '2014-01-14T11:15:35Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4037', '37', '5788', 'Ignore module function return value', 'Fixes the following issue https://groups.google.com/forum/#!topic/angular/gCGF_B4eQkc\r\nI understand it\'s partially coffee script related. But if the return value is not used anyway I don\'t see a reason to not just ignore it and replace invoke with noop function call if it\'s not a function. ', '4', null, null, 'Maxim-Filimonov', '2014-01-14T12:10:08Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4038', '37', '5789', 'docs(guide): Adding UI-Router to Complementary Libraries', '', '1', null, null, 'Urigo', '2014-01-14T14:03:42Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4039', '37', '579', 'Jstd', '', '4', null, null, 'mhevery', '2011-10-05T20:04:31Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4040', '37', '5790', 'docs(guide): Add ngStorage to specific topics', '', '1', null, null, 'Urigo', '2014-01-14T14:21:56Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4041', '37', '5791', 'docs(guide): Changed Analytics library to the updated one', '', '4', null, null, 'Urigo', '2014-01-14T14:28:57Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4042', '37', '5792', 'docs(guide): Add angular-easyfb with Facebook login to login libraries', '', '2', null, null, 'Urigo', '2014-01-14T14:35:53Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4043', '37', '5793', 'docs(guide): Add UI-Map to Complementary Libraries', '', '1', null, null, 'Urigo', '2014-01-14T14:38:49Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4044', '37', '5794', 'docs(guide): Add ngTagsInput to UI Widgets', '', '1', null, null, 'Urigo', '2014-01-14T14:42:30Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4045', '37', '5795', 'docs(guide): Add ngCsv to Complementary libraries', '', '1', null, null, 'Urigo', '2014-01-14T14:47:02Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4046', '37', '5797', 'fix($scope): fix when calling the $on remove function twice', 'When calling twice the remove function returned from $on, remove the listener once', '1', null, null, 'lgalfaso', '2014-01-14T18:02:47Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4047', '37', '5798', 'docs($location): fix link to $rootScope.Scope.$on', 'Previously missing the methods_ prefix.', '0', null, null, 'caitp', '2014-01-14T18:42:33Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4048', '37', '5799', 'perf($scope): Add a property $$watchersCount to scope', 'Add a property $$watchersCount to scope that keeps the number of watchers in the scope plus all the child scopes. Use this property when traversing scopes looking for watches', '8', null, null, 'lgalfaso', '2014-01-14T19:02:05Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4049', '37', '5800', 'docs(all): fix @requires directive to support other ng modules', 'This change is necessary to fix the link to $injector in the $controller\r\ndocumentation.', '3', null, null, 'caitp', '2014-01-14T19:19:40Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4050', '37', '5802', 'docs($interpolate): fix link to $interpolateProvider#endSymbol', 'The markup here was missing the methods_ prefix and behaved incorrectly.', '0', null, null, 'caitp', '2014-01-14T19:41:32Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4051', '37', '5805', 'docs($cacheFactory): document cache instance methods', 'These were apparently entirely undocumented. I\'m not sure if they\'re intended \r\nto be private, but in case they\'re not, I\'ve written some initial docs for\r\nthem', '6', null, null, 'caitp', '2014-01-14T21:32:35Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4052', '37', '5809', 'docs(ngAnimate): add missing \'super\' to addClass', 'The .super class disappears in step 7 of $animate.addClass!', '4', null, null, 'nosideeffects', '2014-01-15T00:28:52Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4053', '37', '5810', 'Fixed important typo causing installation issues.', 'This was passing \'mocks\' to the `installModule` function, which then erroneously generated installation documentation saying one should install this as \'ngMocks\' in their dependencies. This is incorrect. The module name is actually \'ngMock\'. Angular will throw an exception saying it can\'t find \'ngMocks\'. But it finds the correct files with \'ngMock\'. I personally ran into this issue, so wanted to fix it.', '8', null, null, 'bwest87', '2014-01-15T02:06:15Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4054', '37', '5812', 'feat($swipe) Add config param to allow choosing X/Y thresholds.', 'Closes #4550.\r\n\r\n- Create config parameter to pass in swipe/scroll (X/Y) thresholds.\r\n- Allow the new thresholds to be applied to how the function determines when to scroll and when to swipe.\r\n- Fix bug where swiping back and forth within the thresholds would cause a bad cancel event.\r\n- Fix bug where if you went back inside the thresholds, you could potentially cancel a swipe in progress.\r\n- Add tests for all these changes.\r\n- Clean up the docs and add definition for the parameters used in `$swipe.bind`.', '6', null, null, 'CWSpear', '2014-01-15T03:21:17Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4055', '37', '5813', 'Fix typo in readme', 'it...makes client-side... instead of it...make client-side...', '3', null, null, 'lannon', '2014-01-15T04:03:44Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4056', '37', '5814', 'Issue #5811 - Install node.js dependencies: fails', 'I found this issue in Linux Mint 16 Cinnamon 64bit', '5', null, null, 'darkoverlordofdata', '2014-01-15T04:14:49Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4057', '37', '5817', 'Rename controller suffix in ngView example: Cntl -> Ctrl', '- According to\r\n https://github.com/angular/angular.js/blob/5bf81bc111a866ec65ef86c01336911e577df5df/docs/content/guide/controller.ngdoc#L166\r\n Ctrl should be the suffix for a controller', '4', null, null, 'sgronblo', '2014-01-15T08:24:41Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4058', '37', '5819', 'fix(ngSanitize): removed encoding of non alphanumeric on textContent', 'This is a fix for issue #5088.\r\nI still let the chars be replaced inside attributes, but now are allowed inside textContent. This could be fixed also, but i dont know how safe this is...', '2', null, null, 'jtangelder', '2014-01-15T15:13:30Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4059', '37', '5820', 'docs(select): add object comparison warning', 'I ran into this issue earlier today and figured it\'s most likely a common oversight.\r\n\r\njsfiddle: http://jsfiddle.net/bluefocus/byzDL/', '5', null, null, 'dmvt', '2014-01-15T18:02:39Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4060', '37', '5825', 'feat(ngInclude): emit $includeContentError when HTTP request fails', 'This adds a scope event notification when a template fails to load.\r\n\r\nThis can have performance implications, and unfortunately cannot at this moment be terminated with preventDefault(). But it\'s nice to be notified when problems occur!\r\n\r\nCloses #5803', '11', null, null, 'caitp', '2014-01-15T21:59:32Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4061', '37', '5827', 'chore(externs): Adds externs for $templateCache.', '', '1', null, null, 'wesalvaro', '2014-01-15T22:50:34Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4062', '37', '5831', 'feat(externs): Adds templating to the Cache object', 'The Cache can continue to be used as if it were still able to get/put {*} but can now be typed like so (in the case of the $templateCache service):\r\n\r\n```\r\n/**\r\n * @typedef {angular.$cacheFactory.Cache.<string>}\r\n */\r\nangular.$templateCache;\r\n```', '1', null, null, 'wesalvaro', '2014-01-15T23:37:13Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4063', '37', '5832', 'feat(externs): Adds $templateCache extern.', 'The prerequisite pull request is here:\r\nhttps://github.com/angular/angular.js/pull/5831', '1', null, null, 'wesalvaro', '2014-01-15T23:44:23Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4064', '37', '5833', 'feat(ngFilter): Ordinal number suffixes', 'Allows to use \"o\" for the ordinal number suffix of the current month\'s day, e.g.:\r\n\r\n\"EEE, MMM do, yyyy\" would be formatted to Thu, Sep 2nd, 2010\r\n', '6', null, null, 'Das-Loop', '2014-01-16T02:15:44Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4065', '37', '5834', ' js miss “;”', 'js miss “;”', '5', null, null, 'Petrie', '2014-01-16T06:22:53Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4066', '37', '5837', 'Updated the dependency to ngRoute.$route', 'The original requirement for ng.$route did not link to the actual $route documentation.', '3', null, null, 'twchapman', '2014-01-16T15:47:53Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4067', '37', '5843', 'feat(angular) - add optional deep extend', 'Add optional deep extend that mirrors existing implementations (jQuery)\r\nAdd unit tests to test shallow and deep extensions of objects\r\n\r\nCreated to address issue #5842', '7', null, null, 'blesh', '2014-01-16T21:46:51Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4068', '37', '5844', 'Add support for the ng-error event to ngEventDirs.js', 'This adds the ability to use ng-error on elements img, script, style, object in order to handle things like paths not existing.', '7', null, null, 'renz45', '2014-01-16T22:37:54Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4069', '37', '5845', 'docs(tutorial): reference node command before scripts\\web-server.js', '', '0', null, null, 'leniel', '2014-01-16T22:57:20Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4070', '37', '5847', 'fix(orderBy): support sorting by value', 'Fixes issue #4579, adding support for:\r\n\r\n`<p ng-repeat=\"item in items | orderBy\">{{item}}</p>`\r\n`<p ng-repeat=\"item in items | orderBy:\'+\'\">{{item}}</p>`\r\n`<p ng-repeat=\"item in items | orderBy:\'-\'\">{{item}}</p>`\r\n\r\nIt seems unnecessary and redundant in this particular scenario to support the `reverseOrder` parameter and taking `sortPredicate` as an array, so they are ignored (i.e. the following):\r\n\r\n`<p ng-repeat=\"item in items | orderBy:\'+\':false\">{{item}}</p>`\r\n`<p ng-repeat=\"item in items | orderBy:[\'+\']\">{{item}}</p>`\r\n\r\n', '11', null, null, 'marshall007', '2014-01-17T00:06:37Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4071', '37', '5848', 'renamed animate-show-hide to sample-show-hide', 'This always throws me off - I think it helps to make it clear that the class name is arbitrary, and what matters is the .ng-etc classes.', '1', null, null, 'robwormald', '2014-01-17T02:44:03Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4072', '37', '5849', 'Updated $templateCache example.', '', '6', null, null, 'jesselpalmer', '2014-01-17T03:07:47Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4073', '37', '5850', 'correction of misspelling: easist -> easiest', 'correction of misspelling: easist -> easiest', '3', null, null, 'neil-rubens', '2014-01-17T04:05:40Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4074', '37', '5852', 'Update ngEventDirs.js', 'Note priority of ng-click in documentation', '7', null, null, 'apolishch', '2014-01-17T06:42:59Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4075', '37', '5855', 'Update route.js', 'feat(ngRoute): change\r\n\r\nThis change adds a new event on ngRoute called beforeRouteChange. With this change it is possible to cancel a locationChange based on route data. The problem that I am trying to fix here is described in #5581', '3', null, null, 'yoerlemans', '2014-01-17T11:04:52Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4076', '37', '586', 'fix(compiler): linking function should call $digest', 'The linked scope should be $digest-ed but only if a $digest isn\'t\r\nalready running on it.', '1', null, null, 'IgorMinar', '2011-10-07T21:13:33Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4077', '37', '5860', 'feat(ngRoute): add method $route.silent(path) for change location path without triggering route controller', '', '13', null, null, 'kulikov', '2014-01-17T15:36:35Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4078', '37', '5862', 'fix($parse): do not use locals on field access', 'Do not use the locals when performing a field access\r\n\r\nCloses #5838', '6', null, null, 'lgalfaso', '2014-01-17T18:02:06Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4079', '37', '5863', 'Fix for issue #5587 where app is bootstrapped more than once', 'PR for #5587\r\n\r\nI am not sure where to write the test for this fix (may be `e2e` with html file loading build/angular.js?) . \r\n\r\nHere is a plunkr showing that the fix works - http://plnkr.co/edit/xey09HDiX5jQmHKbgEVi?p=preview\r\n\r\n\r\n ', '4', null, null, 'siddii', '2014-01-17T18:31:53Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4080', '37', '5864', 'feat(input): support types date, time, datetime-local, month, week', 'partially closes #757\r\n\r\nMerged from PR #5256', '50', null, null, 'blesh', '2014-01-17T18:57:16Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4081', '37', '5868', 'docs(changelog): remove reverted commit from 1.2.9', 'Was reverted in 308598795af75c33a966ecb3124f4a640d72458d', '3', null, null, 'Narretz', '2014-01-17T21:28:15Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4082', '37', '5869', 'docs(api): adds links to top level guides', 'The main api docs page is probably the main landing page for many devs\r\nlooking to learn angular, so linking to the main guide pages would\r\nlikely help.', '1', null, null, 'jeffjewiss', '2014-01-17T23:50:32Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4083', '37', '587', 'fix(docs): rename doc dev_guide.templates.css to dev_guide.templates.css-', 'fix(docs): rename doc dev_guide.templates.css to dev_guide.templates.css-styling\r\n\r\nCloses #580', '1', null, null, 'dmanek', '2011-10-08T02:22:38Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4084', '37', '5872', 'Update input.js', '调整了格式', '3', null, null, 'houlu', '2014-01-18T07:12:28Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4085', '37', '5873', 'docs(ngInit): note precedence when used with filters', 'Closes #3869', '0', null, null, 'clkao', '2014-01-18T15:03:01Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4086', '37', '5874', 'Attempt at implementing file upload progress', 'This is a rudimentary attempt at implementing file upload progress handling. However, I do not have a setup currently to test file uploading with Angular, so if someone else is able to get to it and report their findings when using this before I am able to create a setup, it would be much appreciated.\r\n\r\nI want to generate feedback before I write tests for this new feature implementation, whether this is the right way to go.\r\n\r\nTo use this, one would do \r\n\r\n $http.post(\'/file/upload/url\', formData)\r\n .then(null, null, function(e) { \r\n if (e.lengthComputable) console.log(e.loaded / e.total); \r\n });', '2', null, null, 'wesleycho', '2014-01-18T15:30:51Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4087', '37', '5875', 'docs(devguide.services): Use $log service properly', 'Need to call one of the logging functions exposed by the `$log` service.\r\n\r\nEven though the example isn\'t focused on how the `$log` service works, most people reading the document will be new to angular, so they should be exposed to proper use of common services.', '2', null, null, 'joshuaflanagan', '2014-01-18T16:15:33Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4088', '37', '5878', 'added missing function okToGreet', 'the function okToGreet wasn\'t defined, so this example wouldn\'t work properly.', '7', null, null, 'letsmakesense', '2014-01-18T20:02:48Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4089', '37', '5879', 'docs(ngInit): fix declaring ng-init as attribute', 'As discussed in https://github.com/angular/angular.js/commit/42ec95ebae716c81087684b55ed8fa8c13888abc', '1', null, null, 'campersau', '2014-01-18T21:53:05Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4090', '37', '588', 'Ie fix', '', '1', null, null, 'mhevery', '2011-10-12T18:05:18Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4091', '37', '5881', 'feat($parseProvider): add the `additionalIdentChars` configuration method', 'Allows extending of the set of character allowed in identifiers used in Angular expressions.\r\n\r\nUpdated the property name and also renamed the branch. #4747', '2', null, null, 'gurdiga', '2014-01-19T00:10:21Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4092', '37', '5882', 'clarify', 'this patch gave me pause when I was first read it several months back. I think this adds some clarity.', '8', null, null, 'gdennie', '2014-01-19T00:11:23Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4093', '37', '5883', 'clarity', 'Just wording changes to reduce the impedance', '6', null, null, 'gdennie', '2014-01-19T00:28:48Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4094', '37', '5884', 'clarify', '', '5', null, null, 'gdennie', '2014-01-19T00:53:08Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4095', '37', '5885', 'Fixed: format multilevel json to querystring correctly', 'Consider follow json convert to http query string\r\n```json\r\n{\r\n \"$or\": [\r\n {\r\n \"username\": {\r\n \"$regex\": \"admin\"\r\n },\r\n \"name\": {\r\n \"$regex\": \"admin\"\r\n }\r\n }\r\n ], \r\n \"limit\": 10, \r\n \"page\": 1, \r\n \"status\": {\r\n \"$ne\": \"removed\"\r\n }\r\n}\r\n\r\n```\r\n\r\nTO Query String\r\n```\r\nGET /users?status%5B$ne%5D=removed&$or%5B0%5D%5Busername%5D%5B$regex%5D=ad&$or%5B1%5D%5Bname%5D%5B$regex%5D=admin\r\n```\r\n\r\nSo, we can query mongo directly from angular.js\r\n\r\nhas rebase on 1.2.9', '0', null, null, 'guanbo', '2014-01-19T13:26:19Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4096', '37', '5888', 'feat(form): add $dirtyAfter state to form controls', 'This is my attempt to add features to client side validation and inline form validation.\r\n\r\nThe aim of having a $dirtyAfter state per control is to track user\'s progress through the form and not display validation messages prematurely.', '3', null, null, 'troch', '2014-01-19T20:22:12Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4097', '37', '589', 'Fix location', 'Do not rewrite links when meta/ctrl key pressed + unit tests...\r\n\r\nShould fix the other issue with docs as well - wrong base path (causing exception when hashbang url given)', '2', null, null, 'vojtajina', '2011-10-12T21:00:55Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4098', '37', '5891', 'refactor(*): simplify various regular expressions', 'removed uncessary character set escaping and non-capture grouping.\r\nsimplified character classes for brevity and readability', '20', null, null, 'JasonCust', '2014-01-20T06:43:15Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4099', '37', '5894', 'fix($http): add the PATCH shortcut back', 'The shortcut was dropped because it had a lot of unkowns about PATCH.\r\nSince we already know that using PATCH is good (http://www.mnot.net/blog/2012/09/05/patch), and only IE8 has issues with that, let\'s add the shortcut back.\r\n\r\nCloses #5823', '7', null, null, 'cironunes', '2014-01-20T13:32:10Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4100', '37', '5897', 'fix(a): don\'t preventDefault on click when SVGAElement has an xlink:href attribute', 'Before this change, an SVGAElement with an xlink:href attribute and no href or name attribute which was compiled by the angular HTML compiler would never be clickable, due to the htmlAnchorDirective calling event.preventDefault() due to the missing href attribute.\r\n\r\nThis change corrects this behaviour by also testing the xlink:href attribute if the element in question is determined to be an SVG anchor tag (with the href property having type SVGAnimatedString)\r\n\r\n---\r\n\r\nSome proper E2E testing would test this fix much more effectively.\r\n\r\nThis is demonstrated to be working [here](http://run.plnkr.co/iGaJgCfhYp1IRa3F/) ([edit here](http://plnkr.co/edit/Ypu8jihgWtE8rbYO64Tg?p=info), but the link won\'t work within the iframe, only outside it)\r\nCloses #5896', '4', null, null, 'caitp', '2014-01-20T16:26:14Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4101', '37', '5901', 'Add spacing to tutorial buttons', 'Added 5px of right margin to tutorial buttons (Previous, Live demom ...).', '2', null, null, 'janhancic', '2014-01-20T21:04:39Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4102', '37', '5903', 'fix($interval): call fn even if invokeApply is false', 'Becasue calling the interval function relies on a promise notify\r\nhandler, the interval function would not get called without \r\ninvokeApply being true. With this update, if invokeApply is false, the\r\nfunction is called normally.\r\n\r\nCloses #5902', '7', null, null, 'minznerjosh', '2014-01-20T22:49:04Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4103', '37', '5904', 'feat(ngHref): bind ng-href to xlink:href for SVGAElement', 'This change makes the ngHref directive useful for SVGAElements by having it bind to the xlink:href attribute rather than the href attribute.\r\n\r\n---\r\n\r\nI believe this could be refactored to be smaller, but overall I think this is a good thing.', '1', null, null, 'caitp', '2014-01-21T02:02:47Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4104', '37', '5906', 'refactor(externs): Move Closure Externs back to Closure code repository.', 'While Closure Compiler generally recommends to maintain the externs for\r\nprojects together with their source, this has not worked well for\r\nAngularJS:\r\n- Changes to externs must be tested; they can break clients. AngularJS\r\n has no testing infrastructure for this.\r\n- Changes mostly come from users inside of Google and are much more\r\n easily submitted together with the code using them within Google\'s\r\n repository.\r\n\r\nThis change deletes the externs here and adds a README.closure.md to\r\ndocument the change. They will be added back to Closure Compiler in a\r\nseparate submit.', '7', null, null, 'mprobst', '2014-01-21T10:13:54Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4105', '37', '5907', 'refactor(externs): Move Closure Externs back to Closure code repository.', 'While Closure Compiler generally recommends to maintain the externs for\r\nprojects together with their source, this has not worked well for\r\nAngularJS:\r\n- Changes to externs must be tested; they can break clients. AngularJS\r\n has no testing infrastructure for this.\r\n- Changes mostly come from users inside of Google and are much more\r\n easily submitted together with the code using them within Google\'s\r\n repository.\r\n\r\nThis change deletes the externs here and adds a README.closure.md to\r\ndocument the change. They will be added back to Closure Compiler in a\r\nseparate submit.', '3', null, null, 'mprobst', '2014-01-21T10:49:19Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4106', '37', '5908', 'Mention ng-min earlier in the developer guide', 'Wish I knew about ng-min earlier, would have saved me hours!', '6', null, null, 'canvaspixels', '2014-01-21T11:06:52Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4107', '37', '5909', 'fix grammar', 'minor grammar fix.', '3', null, null, 'gjvc', '2014-01-21T11:46:46Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4108', '37', '591', 'chore(libs): update libs (jasmine, jstd, jasmine-jstd adapter)', 'Eventually, we decided to just update the libs, instead of using git submodules...\r\n\r\n*Updating:*\r\njstd - 1.3.3c\r\njasmine - 1.1.0\r\njstd-jasmine adapter\r\n\r\nBuild is greeeeeeen like brad...\r\n', '1', null, null, 'vojtajina', '2011-10-13T18:56:23Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4109', '37', '5910', 'docs(guide/controller): Typo double and', 'Remove double word \"and\"', '1', null, null, 'forresst', '2014-01-21T12:05:56Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4110', '37', '5913', 'Use exposed equals inside watch and equals', 'This will allow using the proxy pattern for providing better equals implementation for specific cases\r\n\r\nvery good when you use an existing widget that performs watch on some property that you can provide a faster way to equal check it but you want to do it without changing the widget code', '7', null, null, 'lee-elenbaas', '2014-01-21T17:01:47Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4111', '37', '5914', 'remove \'going forward\' nonsense', 'time/space dimension error', '2', null, null, 'gjvc', '2014-01-21T20:20:00Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4112', '37', '5915', 'feat(form): add methods to set ng-working class, ng-idle class, $workin...', 'Forms submissions often require interaction with the server. Other items\r\non the form, as well as parent forms, should be able to know if\r\noutstanding interactions are in process so buttons can be disabled or\r\nchanged to a working state, etc. This feature adds native support in the\r\nangular form so that form elements can change the global state of the form\r\nbased on whether or not these interactions are pending.', '0', null, null, 'joeenzminger', '2014-01-21T20:54:14Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4113', '37', '5918', 'style(all): simplify regular expressions', 'removed uncessary character set escaping and non-capture grouping.\r\nsimplified character classes for brevity and readability', '5', null, null, 'JasonCust', '2014-01-21T22:39:16Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4114', '37', '5920', 'fix(ngRoute): pipe preceding route param no longer masks ? or * operator', 'Before this change,\r\n\r\n```js\r\n$routeProvider.when(\'/foo/:bar|?\', { ... });\r\n```\r\n\r\nwould not have the expected effect --- the parameter would not be optional, and the pipe would not be included in the parameter name.\r\n\r\nFollowing this change, the presence of the pipe operator will typically cause an exception to be thrown due to the fact that the generated regexp is invalid.\r\n\r\nThe net result of this change is that ? and * operators will not be masked, and pipe operators will need to be removed, although it\'s unexpected that these are being used anywhere.', '5', null, null, 'caitp', '2014-01-21T23:20:19Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4115', '37', '5921', 'Update step_12.ngdoc', 'Minor correction to the comments pointing out the CSS class used in the phone-list.html partial. Was printed as `phone-listing` CSS class, changed it to reflect the', '1', null, null, 'matthewhintzen', '2014-01-22T00:55:44Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4116', '37', '5922', 'Update step_12.ngdoc', 'This time I feel good about this modification to the document, the code listing on the tutorial page for the animation.js DID NOT match what was actually IN the file for that branch. Updated tutorial to reflect actual contents of file', '1', null, null, 'matthewhintzen', '2014-01-22T01:19:09Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4117', '37', '5923', 'Added support for route parameter regular expression constraints', 'Adds support for route parameters with regular expression constraints:\r\n\r\n /route/:parameter:regex/continued\r\n\r\nThis makes it possible to create two seemingly similar but different routes i.e.\r\n\r\n /user/:id:\\\\d+/:name?\r\n /user/:name:[a-z]+\r\n\r\nWhere parameter `:id` has numeric regular expression constraint and `:name` in second route has a letter constraint. Double backslash has to be used because single one is stripped out by Javascript as it\'s an escape character and since \"d\" doesn\'t need escaping, it gets stripped out. We have to use double to preserve single backslashes.\r\n\r\nRoute constraints work as follows:\r\n\r\n1. parameters with constraints can\'t be optional or greedy\r\n2. constraint regular expression can\'t have capture groups as all \"(\" and \")\" are being escaped anyway (existing functionality)\r\n3. regular expressions can\'t have forward slashes (\"/\") in them as they\'re route segment delimiters', '10', null, null, 'litera', '2014-01-22T01:48:57Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4118', '37', '5924', 'fix(input): use Chromium\'s email validation regexp', 'This change uses the regexp from Chromium/Blink to validate emails, and corrects an error in the validation engine, which previously considered an invalid email to be valid. Additionally, the regexp was invalidating emails with capital letters, however this is not the behaviour recomended in the spec, or implemented in Chromium.\r\n\r\n(The regexp can be seen in Blink at https://github.com/mirrors/blink/blob/9d8fc44892f633b1448d0daa638969ffac497bc4/Source/core/html/forms/EmailInputType.cpp#L45-L48)\r\nCloses #5899', '10', null, null, 'caitp', '2014-01-22T02:22:23Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4119', '37', '5928', 'Fixes Issue #5927', 'This pull request fixes Issue #5927', '14', null, null, 'kamilkp', '2014-01-22T08:55:04Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4120', '37', '593', 'fix(ng:options): compile null/blank option tag', 'The latest version was throwing some cryptic \r\n```cannot access childNodes property of undefined```\r\n when using template in select\'s blank option.\r\n\r\nThis one required going really deep down to compiler. Turns out that when `Template` instance is created, it saves `paths` to (indexes of) child nodes which are to be compiled, then executes _linker functions_ on given _element_ and then proceeds to it\'s childNodes.\r\n\r\nWhen <select> had `ng:options`, it removed all <options> from <select> causing `Template` go try linking with unexistent element\'s childNode.\r\n\r\n* added guard check for compiler\r\n* refactored `src/widget/select.js` to compile blank option (I tried several options, but this one seems the most natural)\r\n* added some tests\r\n\r\nFixes #562', '1', null, null, 'TEHEK', '2011-10-13T23:54:45Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4121', '37', '5932', 'Fix docstring typo.', '', '1', null, null, 'gabrielbrasil', '2014-01-22T14:48:32Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4122', '37', '5933', 'fix($location): hijack area links too', 'the $location service only hijacks anchor (<a href=\"\"></a>) links,\r\nbut there is one more element that has a href property and acts like a link:\r\nthe area child element (<area href=\"\"></area>) of an image map element (<map />)\r\n\r\n', '11', null, null, 'gion', '2014-01-22T15:17:11Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4123', '37', '5934', 'Update step_00.ngdoc', '', '2', null, null, 'alvindu', '2014-01-22T16:28:17Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4124', '37', '5937', 'Update route.js', 'grammar: occurs -> occur', '1', null, null, 'allonhadaya', '2014-01-22T17:44:11Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4125', '37', '5938', 'fix(ngSelect): Support static options on multi-select drop down', 'Removes a condition where static options are not added as part of render function when multiple attribute is enabled\r\n\r\nCloses #4325', '11', null, null, 'siddii', '2014-01-22T20:06:03Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4126', '37', '594', 'fix(checkbox): prefix true-value & false-value with ng:', '', '1', null, null, 'IgorMinar', '2011-10-13T23:59:28Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4127', '37', '5940', 'feat($animate): provide support for a close callback', 'Closes #5685\r\nCloses #5053\r\nCloses #4993', '3', null, null, 'matsko', '2014-01-23T00:34:02Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4128', '37', '5941', 'Fix the ngMock issue with ngAnimate', 'BREAKING CHANGE\r\n\r\nThis will break existing use of `mock.animate`. But the module itself is undocumented so it shouldn\'t be an issue.\r\n\r\nCloses #5822\r\nCloses #5917', '3', null, null, 'matsko', '2014-01-23T00:34:37Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4129', '37', '5942', 'd', '', '3', null, null, 'glix', '2014-01-23T03:12:08Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4130', '37', '5944', 'fix(input): use ValidityState to determine validity', 'In browsers where HTML5 constraint validation is (partially) implemented, an invalid number entered into an `input[type=number]` (for example) input element would be visible to the script context as the empty string. When the required or ngRequired attributes are not used, this results in the invalid state of the input being ignored and considered valid.\r\n\r\nTo address this, a validator which considers the state of the HTML5 ValidityState object is used when available.\r\n\r\n---\r\n\r\nIt is not entirely possible to test this outside of an E2E scenario, because browsers (or at least Chrome) do not seem to update validity in response to artificial events.\r\n\r\nIf I can get some help writing E2E tests for this, then I\'ll be more confident that this is an effective solution.\r\n\r\nIn the mean time, I\'ll put together another demo. **[DEMO](http://plnkr.co/edit/qF8rmye9MTbvignmDD7d?p=preview)**\r\n\r\nCloses #4293\r\nCloses #2144\r\nCloses #4857\r\nCloses #5120\r\nCloses #5500', '15', null, null, 'caitp', '2014-01-23T03:38:55Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4131', '37', '5950', 'docs(guide/templates.css-styling): fix \"`{{}}`\"', 'Replace {{}} to `{{}}` so that \"{{}}\" is rendered in the HTML page', '1', null, null, 'forresst', '2014-01-23T09:38:04Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4132', '37', '5953', 'Update step_00.ngdoc', 'The - (hyphen) renders as a special character in many browsers and make the document difficult to read.', '5', null, null, 'StevenInc', '2014-01-23T12:13:55Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4133', '37', '5954', 'Update step_02.ngdoc', 'Removed hyphen to improve document rendering in browsers.', '3', null, null, 'StevenInc', '2014-01-23T12:34:01Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4134', '37', '596', 'WIP: make ng:true/false-value bindable', 'do we want this?', '2', null, null, 'IgorMinar', '2011-10-14T16:37:28Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4135', '37', '5960', 'fix(input): don\'t dirty model when input event triggered due to placeholder change', 'Certain versions of IE inexplicably trigger an input event in response to a placeholder being set.\r\n\r\nIt is not possible to sniff for this behaviour nicely as the event is not triggered if the element is not attached to the document, and the event triggers asynchronously so it is not possible to accomplish this without deferring DOM compilation and slowing down load times.\r\n\r\nCloses #2614\r\nCloses #5960 \r\n\r\n----\r\n\r\nThis that could theoretically go wrong:\r\n\r\n- If a value change and a placeholder change both occur and emit a single coalesced event (rather than two independent events), this may lead to a model occasionally not being updated. I imagine this would be pretty rare in practice.\r\n\r\n- If a test for `lastValue === value` is added to the exit condition, then the same issue above still potentially happens when an empty string becomes an invalid string and constraint validation gives us an empty string.\r\n\r\nThere are probably a few more holes in this, unfortunately, which is why it would be better if MS would hotfix the affected browsers. But it\'s not breaking any tests and if it doesn\'t break any apps which dogfood it then that\'s probably fine.', '18', null, null, 'caitp', '2014-01-23T19:35:32Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4136', '37', '5961', 'Update step_05.ngdoc', '', '2', null, null, 'ParvSangha', '2014-01-23T21:07:18Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4137', '37', '5967', 'docs(cookbook): remove the cookbook docs', 'The cookbook docs are now superceded by the guide. They are no longer available\r\nin any menus and the only way to find them is to search for them. Remove!', '0', null, null, 'juliemr', '2014-01-23T23:19:59Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4138', '37', '597', 'Closure Compiler Advanced Optimization Pretotype', 'THIS IS JUST A PRETOTYPE!\r\n\r\nI had an idea last night and it appears to work!\r\n\r\n# Main points\r\n\r\n- write angular app app (make sure you export it into window namespace so that the compiler doesn\'t throw it all away as dead code)\r\n- compile with closure compiler in advanced mode (see command below)\r\n- change html file to reference the minified version of the js file\r\n- grap personalLog.min_props_map.out and turn it into a comma separated string\r\n- put the string into symbols.js (this is a pretotype hack)\r\n- load symbols.js as a js script\r\n- load the app in the browser\r\n- since I modified the parser and injector to consult the `symbol` function when looking up any symbols, all lookups work properly and all minified symbols get properly resolved!\r\n\r\n# Issues\r\n\r\nSince you have to include the symbols maps with your app so that angular can maps symbols correctly, there are two issues with this approach:\r\n\r\n- the size of the minified app is slightly bigger that when the symbols map is not included (for large apps this should be insignificant)\r\n- it\'s easy to de-obfuscate the code and read it (the symbols can be seen in the templates so this is no worse than simple optimization\r\n\r\nIn order to make this work properly, we\'ll also need to export all of the angular api\'s or create an externs file.\r\n\r\n\r\n# Size comparison\r\n\r\nsimple vs advanced optimizations: 414 bytes vs 435 (348+87) bytes\r\n\r\nyes yes.. it\'s worse then simple optimization because of the symbols map overhead, but this app is tiny. I\'m quite sure that in large apps the difference between the two will be significantly better for advanced optimizations.\r\n\r\n# Conclusion\r\n\r\nWe do want full advanced optimization with template rewriting, but until we get there, this is could be a valuable feature with many of the same benefits and few drawbacks. Best of all, it is significantly easier to implement.\r\n\r\n\r\n# Misc\r\n\r\ncompiler command used:\r\n\r\n```\r\njava -jar ../../lib/closure-compiler/compiler.jar \\\r\n --compilation_level ADVANCED_OPTIMIZATIONS \\\r\n --js personalLog.js \\\r\n --js_output_file ./personalLog.min.js \\\r\n --create_name_map_files\r\n```', '3', null, null, 'IgorMinar', '2011-10-15T23:48:28Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4139', '37', '5970', 'Update step_04.ngdoc', 'Removed hyphen that was rendering incorrectly in the browser', '1', null, null, 'StevenInc', '2014-01-24T09:58:19Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4140', '37', '5972', 'hash rewrite causing the application to load', 'This is in relation to: https://github.com/angular/angular.js/issues/5963', '0', null, null, 'ahmednuaman', '2014-01-24T11:31:56Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4141', '37', '5975', 'docs(search): make sure the forward slash doesn\'t focus on search while on another input element', 'If you\'re already focussed on an input/textarea/select element and you hit the forward slash \"/\" then it will switch focus and jump to the search bar. This also makes it impossible to type in \"/\" into the existing input element. This fix ensures that doesn\'t happen anymore.\r\n\r\nCloses #5969', '3', null, null, 'matsko', '2014-01-24T17:31:02Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4142', '37', '5976', 'refactor($q): make $q Promises A+ v1.1 compilant', 'Refactor to make $q Promises A+ v1.1 compilant', '71', null, null, 'lgalfaso', '2014-01-24T20:57:19Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4143', '37', '5977', 'fix($location): parse query string when path is empty in hashbang mode', 'Before this fix, search queries in hashbang mode were ignored if the hash was not present in the url. This patch corrects this by ensuring that the search query is available to be parsed by urlResolve when the hashbang is not present.\r\n\r\nCloses #5964', '12', null, null, 'caitp', '2014-01-24T21:28:41Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4144', '37', '5978', 'typo fixes', '', '0', null, null, 'jnoconor', '2014-01-24T21:41:19Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4145', '37', '598', 'Updated htmlparser with HTML5 tags', 'Updated lib/htmlparser/htmlparser.js element arrays with HTML5 tags and missing HTML4 tags.', '2', null, null, 'ijonlester', '2011-10-17T13:23:00Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4146', '37', '5981', 'grammar fix', 'use of the article, both definite and indefinite, is not optional', '0', null, null, 'gjvc', '2014-01-25T05:37:20Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4147', '37', '5984', 'fix(jqLite): triggerHandler support listeners that unbind from the event', 'Fixes event handlers registered with `.one` if the event is invoked from `triggerHandler`.\r\n\r\nRelated to #5109 and #5269. \r\n\r\nDOM callback events from the ngAnimate uses triggerHandler so I think this is pretty important, and it\'s a small change.', '1', null, null, 'chrisirhc', '2014-01-25T19:46:37Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4148', '37', '5986', 'feat(form) - validating, working, and idle states for forms and form elements.', 'Server validation and submission are asynchronous. It is useful in markup to be able to enable or disable form elements (such as working animations, submit buttons, etc.) while these asynchronous operations are in progress. The changes in this pull request add methods to form and input that allow directives that begin asynchronous actions to set form and input variables $validating, $working, and $idle, as well as adding the CSS classes ng-idle, ng-working, and ng-validating when these actions are in progress.\r\n', '0', null, null, 'joeenzminger', '2014-01-25T22:47:14Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4149', '37', '5988', 'perf(jqLite): use classList when available', 'Use classList when the browser supports it to add/remove/detect the `class` value\r\n\r\nhttp://jsperf.com/classlist-vs-addclass/7\r\n', '2', null, null, 'lgalfaso', '2014-01-26T03:07:02Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4150', '37', '5989', 'Add links to ngResource and $resource', '', '2', null, null, 'janhancic', '2014-01-26T15:02:30Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4151', '37', '5990', 'Add more links to API docs in the tutorial', '', '1', null, null, 'janhancic', '2014-01-26T15:14:14Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4152', '37', '5991', 'Update step_09.ngdoc', 'Line 43 - I believe the name of the module is \"phonecatApp\" not \"phonecat\".\r\n\r\nLine 48, From the previous steps, ngRoute and phonecatControllers are also dependencies for the phonecatApp module.', '3', null, null, 'tpiere', '2014-01-26T16:22:09Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4153', '37', '5992', 'fixed typo \'choses\' to \'chooses\'', '', '3', null, null, 'davidjnelson', '2014-01-26T19:35:00Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4154', '37', '5993', 'added \'an\' and \'the\' to ngOptions sentence', '', '2', null, null, 'davidjnelson', '2014-01-26T20:28:23Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4155', '37', '5994', 'fix(select): avoid checking option element selected properties in render', 'In Firefox, hovering over an option in an open select menu updates the selected property of option\r\nelements. This means that when a render is triggered by the digest cycle, and the list of options\r\nis being rendered, the selected properties are reset to the values from the model and the option\r\nhovered over changes. This fix changes the code to only use DOM elements\' selected properties in a\r\ncomparison when a change event has been fired. Otherwise, the internal new and existing option\r\narrays are used.\r\n\r\nThis is based on the fix given in #2448, but updated to fix the regression discussed there.\r\n\r\nCloses #2448', '33', null, null, 'jbalboni', '2014-01-26T21:25:10Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4156', '37', '5999', 'Allowing decoration of $q service functions', 'Fixes #5998 issue', '7', null, null, 'egobrain', '2014-01-27T08:11:14Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4157', '37', '6', 'Add get methods to Resources', 'See the commit message for motivation and rationale.', '1', null, null, 'alkis', '2010-09-15T17:43:47Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4158', '37', '60', 'Fix toKeyValue() function - parse flags', '- added missing tests for toKeyValue() function (reverse copy from parseKeyValue())\r\n- fixed parsing true values into flags (to pass the test)\r\n\r\nExample:\r\ntoKeyValue({flag: true}) => \'flag\'\r\ninstead of \'flag=true\'', '1', null, null, 'vojtajina', '2010-10-16T15:23:26Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4159', '37', '600', 'Fix docs scripts to work with latest node.js', 'New version of Node (v0.5.x) does not support require.paths.push().', '1', null, null, 'vojtajina', '2011-10-17T22:51:50Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4160', '37', '6000', 'Update input.js', 'This commit solves de issue 5936 (https://github.com/angular/angular.js/issues/5936), by just retoring the previous condition in the negative form.', '15', null, null, 'vlopez5', '2014-01-27T10:58:38Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4161', '37', '6002', 'fix(input): ngMinlength/ngMaxlength should not invalidate non-stringlike values', 'A regression reported in #5936 shows that prior to cdc4d485a6daa0c74e5d07d8def2a3ee68d93d13, an input with an ngMinlength or ngMaxlength validator would not invalidate values where value.length was undefined.\r\n\r\nThis patch addresses this by making use of the Infinity global when a value\'s length property is undefined.\r\n\r\nThe behaviour of this validator is still incorrect in the case of objects with a length property which are not arrays or strings, and will most likely remain that way. This cannot change as it is possibly desirable to use ngMinlength/ngMaxlength in conjunction with ngList.\r\n\r\nCloses #5936\r\nCloses #6000', '5', null, null, 'caitp', '2014-01-27T15:00:15Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4162', '37', '6004', 'fix(ngResource): don\'t append number to \'$\' in url param value when encoding URI', 'Previously, if a URL parameter value included a $, it would replace the dollar sign with a literal \'$1\' for mysterious reasons. Using a function rather than a replacement string circumvents this behaviour and produces a more expected result.\r\n\r\nCloses #6003', '5', null, null, 'caitp', '2014-01-27T19:09:51Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4163', '37', '6008', 'Updating $provide.service method docs', 'The previous example provided for the service method did not work. I\'ve updated the example to a working example.', '4', null, null, 'clark-pan', '2014-01-28T00:53:45Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4164', '37', '6009', 'Filter path fix', 'Closes #6005', '23', null, null, 'IgorMinar', '2014-01-28T01:37:05Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4165', '37', '601', 'Length-based validation + \"password\" is correct input field type', 'First I added missing validation method based on field length. I use \"minlength\" and \"maxlength\" <input/>\'s attributes to set min and max value length, and set input.$error.MINLENGTH and input.$error.MAXLENGTH in case field\'s value is too short/long.\r\n\r\nThe second commit a fix: &lt;input type=\"password\" /> kept converted to &lt;input type=\"text\" /> by angular.js, which made it effectively useless for forms handling. I added \"password\" type to the list of correct HTML5 input types', '9', null, null, 'kstep', '2011-10-17T23:22:20Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4166', '37', '6011', 'Update $resource documentation', 'This updates the `$resource` docs with information on accessing the `$http` promise, as well as eliminate an outdated pattern that is deprecated (making use of `$parse` unwrapping the promise to access the user from a get request on the resource).', '4', null, null, 'wesleycho', '2014-01-28T04:00:57Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4167', '37', '6012', 'Edited the \'Flushing HTTP requests\' section', 'Minor grammatical edits in the Flushing HTTP requests section.', '4', null, null, 'sflahave', '2014-01-28T04:36:31Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4168', '37', '6014', 'fix(mocks): refactor currentSpec to work w/ Jasmine 2', 'Closes #5662', '0', null, null, 'IgorMinar', '2014-01-28T06:27:44Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4169', '37', '6016', 'feat(ngRepeat): ngRepeat is now immune to removing or moving its elements without its corresponding comment node', 'This PR closes issues: #5054, #4954, #5619.\r\n\r\nThe ngRepeatDirective internally checks if one of its elements is being removed/inserted properly (with its corresponding comment element as ngRepeat does) or not. And if not (as sortable functions/directives do) it removes the comment node when needed, and then inserts it when needed and where it\'s supposed to. Now any sortable directive will work properly (e.g. https://github.com/mostr/angular-ui-multi-sortable or even raw jQuery (multi)sortable)', '30', null, null, 'kamilkp', '2014-01-28T09:35:01Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4170', '37', '6018', 'Update dev_guide.e2e-testing.ngdoc', 'All of the documentation belongs to old angular e2e not to protractor. For protractor documentation people need to go to the protractor github page', '5', null, null, 'climboid', '2014-01-28T15:29:55Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4171', '37', '602', 'fix(radio): allows data-binding on value property. Closes#316', '', '1', null, null, 'mhevery', '2011-10-18T00:49:56Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4172', '37', '6022', 'docs(CHANGELOG): add breaking change notice for 1.2.9 $http default headers change', 'This commit is really a breaking change in some cases, as seen in #5997, so this needs to be clarified.', '0', null, null, 'caitp', '2014-01-28T16:50:25Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4173', '37', '6023', 'test(docs): convert example end to end doc tests from scenario runner to protractor', 'Thanks to jeffbcross, petebacondarwin, btford, jdeboer, tbosch for contributions!', '0', null, null, 'juliemr', '2014-01-28T18:03:41Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4174', '37', '6024', 'Update window.js', 'docs($window): add bootstrap style to form button', '6', null, null, 'bcamp1973', '2014-01-28T18:07:09Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4175', '37', '6026', 'email validation regexp update with tests', 'Added some improved testing and regexp matching to be a closer match to chromium and to rfc1035', '10', null, null, 'KevinBrogan', '2014-01-28T21:25:21Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4176', '37', '6027', 'chore(end2end): remove old references to the scenario runner and update ...', '...to point to protractor', '1', null, null, 'juliemr', '2014-01-28T22:00:44Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4177', '37', '603', 'Select option fix with compiler with issue 599', '\r\nCloses #562, #599\r\n', '1', null, null, 'TEHEK', '2011-10-18T01:57:16Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4178', '37', '6031', 'Changes \"then\" for \"than\"', 'Changes line 247. \"...a little different then...\" to \"...a little different than...\" which is a conjunction instead of an adverb.', '5', null, null, 'edrpls', '2014-01-29T00:10:16Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4179', '37', '6033', 'fix(shallowCopy) logic error where \'$foo\' would be ignored', 'Introduced in this commit : https://github.com/angular/angular.js/commit/cb29632a5802e930262919b3db64ca4806c5cfc7 ', '9', null, null, 'basarat', '2014-01-29T01:01:12Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4180', '37', '6036', 'correcting directive name to ng-model instead of ng-mode in nodomevents....', '...ngdoc\r\n\r\nCorrecting use of ng-model directive', '2', null, null, 'mananbharara', '2014-01-29T06:33:36Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4181', '37', '604', 'fix(ng:options): select correct element when \'?\'-option was previously selected', 'fix(ng:options): select correct element when \'?\'-option was previously selected\r\n\r\nCloses #599', '4', null, null, 'TEHEK', '2011-10-18T03:01:54Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4182', '37', '6040', 'feat(directive): support injecting required controllers into a directive controller', 'Solves #5893\r\nThis should not break any existing applications, but there is an API-change: you can inject $requiredControllers in your directive controller, too.', '7', null, null, 'maklemenz', '2014-01-29T14:16:34Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4183', '37', '6045', 'recommend pre-compiling external templates', 'quite a few folks struggle with how to test directives with external templates. karma-ng-html2js-preprocessor provides an easy solution but the issues is not raised in the docs.', '4', null, null, 'dukehoops', '2014-01-29T18:05:30Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4184', '37', '6046', '`npm install` to `npm install karma`', '', '2', null, null, 'JianbaoTao', '2014-01-29T18:07:34Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4185', '37', '6047', 'clarify doc for \"args\" in $broadcast and $emit', 'Use of word \"set\" was confusing me: \"args\" is not a single thing, and it is not a computer science set. \"args\" here indicates: one or more arguments.', '2', null, null, 'bradw2k', '2014-01-29T18:17:24Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4186', '37', '6057', 'add cookie exist fuction', 'add a function to check if a cookie exists.', '16', null, null, 'gorjuce', '2014-01-30T11:44:18Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4187', '37', '606', 'Repeater fix', 'fix needed for feedback', '2', null, null, 'IgorMinar', '2011-10-18T23:47:23Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4188', '37', '6062', 'jscs style check', '', '4', null, null, 'IgorMinar', '2014-01-30T18:51:51Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4189', '37', '6063', 'docs(all): convert <pre>/</pre> snippets to GFM snippets', 'Title should be self-explanatory. @petebacondarwin please review and check in when ready', '6', null, null, 'caitp', '2014-01-30T21:16:14Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4190', '37', '6064', 'fix($compile): throw an exception when an attribute is unassigned', 'Documentation states that NON_ASSIGNABLE_MODEL_EXPRESSION exception should be thrown if\r\na two-way attribute doesn\'t exist. This commit adds a simple test and throws an error\r\nif the property is missing. Note that the documentation should probably be updated\r\nand a different exception should be thrown using minErr.\r\n\r\nThis commit refers to issue #6060', '12', null, null, 'panuhorsmalahti', '2014-01-30T22:09:55Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4191', '37', '6065', 'fix(input): ng-required conflicts with ng-true-value', 'Before this change, overridden \"isEmpty\" method which is called in \"requiredDirective\" would return a wrong result when the parameter is given as \"true\". This change corrects the statement value within method.\r\n\r\nCloses #5164', '8', null, null, 'tameraydin', '2014-01-30T23:31:39Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4192', '37', '6066', 'Update Angular.js', 'added missing closing tag to ngApp example.', '1', null, null, 'jesselpalmer', '2014-01-31T03:10:28Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4193', '37', '6067', 'feat(testing): run end to end tests on firefox and safari as well as chrome', 'Update the Travis and Jenkins configs to run protractor tests on Safari and Firefox as well,\r\nand make the Travis tests run output XML and turn off color.\r\n\r\nFix tests which were failing in Firefox due to clear() not working as expected.\r\n\r\nFix tests which were failing in Safari due to SafariDriver not understanding the minus key,\r\nand disable tests which SafariDriver has no support for.', '24', null, null, 'juliemr', '2014-01-31T03:21:26Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4194', '37', '6068', 'Update cacheFactory.js', 'Updated example formatting.', '4', null, null, 'jesselpalmer', '2014-01-31T03:22:04Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4195', '37', '607', 'fix(date filter): default to fullDate format', 'The browser\'s behave inconsistently, so we should just stick to one format\r\nwhen the format is not specified by the developer\r\n\r\nCloses #605', '1', null, null, 'IgorMinar', '2011-10-19T07:03:27Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4196', '37', '6071', 'fix($http): add support for PATCH short method', 'Commit 46691c2721735c27426b721d780e8816d502b9f2 removed the short method for PATCH from $http because there were too many unknowns. However, #5823 schedules PATCH to be re-added for the 1.3.x milestone.\r\n\r\nThis change adds the short method for PATCH back to the $http library, including tests.\r\n\r\nCloses #5823', '1', null, null, 'dagingaa', '2014-01-31T12:11:51Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4197', '37', '6073', 'WIP: angular + universal module definition', 'Here is a WIP at making angular work with UMD (based on [this format](https://github.com/umdjs/umd/blob/master/returnExports.js)).\r\n\r\nI did not attempt to remove angular from the window. That\'s a bigger project; so much of the source relies upon window.angular. Instead I just made angular export itself as a define/module.exports in addition to the window.\r\n\r\nI still don\'t know how to test the umd code, since tests don\'t include *.prefix and *.suffix files. \r\n\r\nI thought of moving the UMD code out of `angular.prefix`/`module.prefix` and into the code somewhere - but don\'t know where. Feedback is welcome - I will add tests as soon as it\'s possible.\r\n\r\nRelated Issue: #4919', '11', null, null, 'ajoslin', '2014-01-31T14:24:30Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4198', '37', '6076', 'fix($q): make $q.reject support `finally` and `catch`', 'Add support for the functions `finally` and `catch` to the promise returned by `$q.reject`\r\n\r\nCloses #6048', '4', null, null, 'lgalfaso', '2014-01-31T18:29:33Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4199', '37', '6081', 'docs(input): Removed invalid statement', '$parsers should return values regardless of validity to allow chaining validation.\r\n\r\nIf a $parser returns `undefined` then sequential parsers will all automatically fail and the validation message feedback will be inaccurate.\r\n\r\nSee this discussion: https://github.com/angular-ui/ui-utils/pull/149', '3', null, null, 'ProLoser', '2014-02-01T08:48:26Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4200', '37', '6082', 'Fixed grammatical error', '\"Promises\" should be of the possessive form.', '4', null, null, 'JohnKurlak', '2014-02-01T21:26:42Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4201', '37', '6083', 'chore(ngdoc): fix misspellling of Naturally in sortVersionsNatrually', 'Corrects \"sortVersionsNatrually\" method name in `ngdoc.js` in \"sortVersionsNaturally\"', '1', null, null, 'nicolasleger', '2014-02-02T01:01:10Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4202', '37', '6085', 'chore(Gruntfile.js, package.json): use load-grunt-tasks', 'I added load-grunt-tasks so you wont have to load each grunt plugin and moved grunt-contrib-jshint into devDependencies from dependencies', '0', null, null, 'gdi2290', '2014-02-02T07:16:33Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4203', '37', '6089', 'Fixing reference to ngClass documentation', 'I have fixed an linking error in the documentation - the ngClass was referencing the ngShow document by mistake.', '1', null, null, 'alanrubin', '2014-02-03T09:46:30Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4204', '37', '609', '$http service', 'New $http service (replacement for $xhr) along with $httpBackend and $httpBackend mocks...\r\n\r\nWe still need to polish the docs...', '3', null, null, 'vojtajina', '2011-10-19T18:32:46Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4205', '37', '6090', 'style(License): update copyright year', '', '0', null, null, 'gdi2290', '2014-02-03T09:51:45Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4206', '37', '6095', 'feat(form): add `parent` parameter', 'Makes it possible to:\r\n- disable the registration of a form in its parent form by specifying an empty or falsy value (preventing the propagation of validation, dirtiness and so on)\r\n- specify a custom parent form (that is not necessarily the parent in the DOM) via an Angular expression that is evaluated in the current scope\r\n\r\nIf the parameter is not specified, the form directive will traverse up the DOM to locate a parent form as before this change, so current implementations will not break. This fixes issue #5858.', '9', null, null, 'ghost', '2014-02-03T17:46:33Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4207', '37', '6096', 'Update concepts.ngdoc', 'Directive name was \'ngClick\' instead of \'ng-click\'', '2', null, null, 'Guern', '2014-02-03T17:53:33Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4208', '37', '6098', 'fix (filterFilter): ', 'allow both dotted predicate object fields, and nested predicate objects in filters.', '5', null, null, 'amj', '2014-02-03T19:01:44Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4209', '37', '61', 'Fix filter date test', 'This test had dependency on machine time zone. Unfortunately not all people use +7 hours TZ...\r\nSo on my machine, it was failing...\r\n\r\nIt would be better to move the logic to separate unit and test just this behavior (it\'s just conversion from minutes to HH:MM) instead of testing system timezone :-D\r\n\r\nJS Date object has not method for setting the timezone, so I hacked tested Date object like that...\r\n', '3', null, null, 'vojtajina', '2010-10-16T22:04:32Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4210', '37', '610', 'feat(input) add ng:minlength and ng:maxlength validation support', 'notes(igor): I also e2e tests and refactorred the e2e test example to be\r\nmore clear about what is a variable and what is an html/framework api.', '0', null, null, 'IgorMinar', '2011-10-19T23:22:15Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4211', '37', '6101', 'fix($compile): link async+replace element transclusion directives with comment element', 'Previously, element transclusion directives would not receive a comment node\nin their link functions when they were the root of an asynchronous replace\ntemplate. This would cause duplicate elements to appear in an ng-if expression\nwithin ng-repeat.\n\nCloses #6006\n\n---\n\nWARNING: This patch needs some serious dog-fooding, and very careful review.\n@IgorMinar, please take a look when you have some time for this.', '9', null, null, 'caitp', '2014-02-03T23:09:09Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4212', '37', '6102', 'bug(mocks): Correctly calls workFn with \"this\".', 'Currently, the workFn is called with the implied, global \"this\" instead of the current context as it should be.\r\nSee this bin for the problem and suggested solution:\r\nhttp://jsbin.com/EDohOlih/1/edit', '3', null, null, 'wesalvaro', '2014-02-04T00:54:02Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4213', '37', '6103', 'fix(ngMock): return immediately from mock $interval.cancel() when no promise argument is supplied', 'This is a fix for a possible cause of issue #6099. \r\n\r\nCalling `$interval.cancel()` without supplying the expected argument would cause a TypeError. There was a test for this but it was incomplete because it did not setup the instance of $interval with any repeated functions, so the function passed to `forEach` in which the error is thrown is never executed. The test failed when a repeated task was added.\r\n\r\nThis pull requests prevents the runtime exception by returning from `cancel()` immediately if no promise is supplied (doesn\'t even get to the loop) and improves the test by setting up a repeating task as the other tests do.', '5', null, null, 'dluxemburg', '2014-02-04T01:24:43Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4214', '37', '6105', 'feat(jqLite): IE7 support for adding/removing CSS classes', 'With this change most of Angular\'s features work again in IE7. As IE7 and below are not tested,\r\nthere is no guarantee what works and what not. Other browsers are not affected by the changes.\r\n\r\nSee #4562, #4880', '0', null, null, 'fbenz', '2014-02-04T08:37:33Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4215', '37', '6106', 'Update dev_guide.services.managing_dependencies.ngdoc', '', '0', null, null, 'PCASME', '2014-02-04T09:32:50Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4216', '37', '6108', 'feat(jqLite): IE7 support for adding/removing CSS classes', 'With this change most of Angular\'s features work again in IE7. As IE7 and below are not tested,\r\nthere is no guarantee what works and what not. Other browsers are not affected by the changes.\r\n\r\nSee #4562, #4880', '3', null, null, 'fbenz', '2014-02-04T10:20:20Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4217', '37', '6110', 'docs($compile): fixed syntax error.', '\"how to\" was written twice in a row.', '0', null, null, 'kamilkp', '2014-02-04T12:44:24Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4218', '37', '6111', 'param of debugEnabled is improperly documented as a string', '', '2', null, null, 'GiffenGood', '2014-02-04T15:19:24Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4219', '37', '6112', 'fix(jqLite): trim HTML string in jqLite constructor', 'jQuery will construct DOM nodes containing leading whitespace. Prior to this change, jqLite would throw a nosel minErr due to the first character of the string not being \'<\'. This change corrects this behaviour by trimming the element string in jqLite constructor before testing for \'<\'.\r\n\r\nCloses #6053', '1', null, null, 'caitp', '2014-02-04T16:40:14Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4220', '37', '6114', 'Implemented $log.table method to take advantage of chromes console.tabl...', '...e function.', '1', null, null, 'codevinsky', '2014-02-04T18:31:58Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4221', '37', '6116', 'chore(release): be able to release any commit', 'The version information is now stored only in the tags.\r\nBy this we are able to release commits in the past, which\r\nhave already been tested, so we don\'t need a code freeze\r\nor run tests any more. This is also the first step for\r\nletting Travis do the releases in the future.\r\n\r\nThe package.json now contains the new\r\nproperty \'branchVersion\' that defines which tags are\r\nvalid on this branch.', '2', null, null, 'tbosch', '2014-02-04T19:05:26Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4222', '37', '6118', 'renamed to match code', '', '0', null, null, 'jerryfan', '2014-02-04T20:55:42Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4223', '37', '612', 'fix($location): rewrite links with nested elements', 'So docs is fixed now, inner links do not reload the page:\r\nhttp://ci.angularjs.org/job/angular.js-vojta/41/artifact/build/pkg/0.10.4-849c5365/docs-0.10.4-849c5365/index.html\r\n\r\nFor example:\r\n\r\n````html\r\n<a href=\"some/link\">inner <span>text</span></a>\r\n````\r\n\r\nIf you click on \"text\", then the span element is event.target, so we need to traverse the DOM.', '0', null, null, 'vojtajina', '2011-10-20T16:06:27Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4224', '37', '6122', 'fix($http): ignore xhr.responseType setter exception if value is \"json\"', 'WebKit added support for the json responseType value on 09/03/2013 https://bugs.webkit.org/show_bug.cgi?id=73648. Versions of Safari prior to 7 are known to throw when setting the value \"json\" as the response type. Other older browsers implementing the responseType. Other browsers with infrequent update cycles may also be affected.\r\n\r\nThe json responseType value can be ignored if not supported, because JSON payloads are parsed on the client-side regardless.\r\n\r\nCloses #6115', '1', null, null, 'caitp', '2014-02-04T23:39:13Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4225', '37', '6124', 'Update Angular.js', 'spelling error', '1', null, null, 'Hopiu', '2014-02-05T09:39:20Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4226', '37', '6129', 'fix($location): support alternative means of setting application base path', 'In HTML, the <base> tag is used to configure how relative hyperlinks are resolved. In Angular, it has another use, configuring how URLs are rewritten. Because of this, setting the base URL to some external path outside of the application would cause $location.$$parse() to throw (which is the desired behaviour).\r\n\r\nThis change enables developers to imperatively configure the application basePath, taking advantage of the natural HTML use of the <base> tag without breaking Angular applications.\r\n\r\nExample:\r\n\r\n```\r\nangular.module(\"test\", [])\r\n .config(function($locationProvider) {\r\n $locationProvider.baseHref(\"http://foo.com/the/base/application/path/\");\r\n });\r\n```\r\n\r\nCloses #4442', '5', null, null, 'caitp', '2014-02-05T16:22:25Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4227', '37', '613', 'feat(sanitizer): add html5 elements to the whitelist', 'Closes #89', '0', null, null, 'IgorMinar', '2011-10-20T16:43:36Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4228', '37', '6130', 'docs(function): add missing space in test', '', '1', null, null, 'fdomig', '2014-02-05T16:29:54Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4229', '37', '6134', 'Fix usage example for ng-switch', 'Add on=\"expression\" to ng-switch usage example.', '1', null, null, 'peteygao', '2014-02-05T20:03:39Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4230', '37', '6136', 'fix(jqLite): avoid touching deprecated Event.returnValue property', '', '13', null, null, 'lookfirst', '2014-02-05T20:37:53Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4231', '37', '6139', 'feat($resource): add support for wrapped responses', 'add a resourceData field on the action configuration. This allows you to specify which field in the response should be turned into the resource object instead of the whole thing always being decorated. You can use a string to use just a single simple field or a function for more advanced control\r\n\r\nCloses #6138', '2', null, null, 'stephenleicht', '2014-02-05T22:50:28Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4232', '37', '614', 'fix(compiler): revert 8611ebe6 - calling after linking', 'Change introduced by me in 8611ebe6 results in considerable inefficiencies when the compiler\r\nand linker is used from within a widget, in which case, we call $digest unnecessary since it\r\nwill be called by the $apply which called the directive/widget in the first place.\r\n\r\nThere are only two places when the extra $digest call can be useful - when manually bootstrapping\r\nthe app or in tests. However even in tests this behavior can result in unwanted results (especially\r\nwhen ng:controller is involved). So it is better to leave it for the developer to call $digest\r\nwhen it is really needed.', '1', null, null, 'IgorMinar', '2011-10-20T22:38:34Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4233', '37', '6141', 'chore(testing): fix Jenkins breakage due to test directory already being...', '... present', '1', null, null, 'juliemr', '2014-02-05T23:52:30Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4234', '37', '6144', 'fix(orderBy): support string predicates containing non-ident characters', 'The orderBy filter now allows string predicates passed to the orderBy filter\nto make use property name predicates containing non-ident strings, such as\nspaces or percent signs, or non-latin characters.\n\nCloses #6143', '6', null, null, 'caitp', '2014-02-06T04:54:01Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4235', '37', '6145', 'Add missing npm package name `Karma`', 'The actual name of the package that is needed to be installed is missing, I added it by going to the webpage of the linked package. It instructs to run `npm install -g karma` which I\'ve added to the document.', '1', null, null, 'aalvarado', '2014-02-06T05:34:51Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4236', '37', '6146', '[documentation typo] $provide mistyped into $provider', 'decorator is a method of `$provide`, not `$provider` I think', '0', null, null, 'sunderls', '2014-02-06T07:02:32Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4237', '37', '615', 'App', 'refactor root scope into a service', '2', null, null, 'mhevery', '2011-10-21T17:34:27Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4238', '37', '6153', 'Completed karma install instructions for linux', '', '4', null, null, 'kanyuga', '2014-02-06T11:15:32Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4239', '37', '6156', 'Update started.ngdoc', 'changed \"building and application\" to \"building an application\"', '1', null, null, 'asif22', '2014-02-06T16:03:31Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4240', '37', '6157', 'ng-animation-detect - a new directive which tells you when animation starts, in-progress or ended', 'After doing some research, i found out that AngularJS was missing this very core feature. The current problem with CSS3 Animations is that you don\'t know when they ended. There should be a proper AngularJS directive which should inform you when it ended so you can proceed with your next functionality. \r\n\r\nFor me, i needed to display a poll to user and animate it when he clicked on it. I had to wait for animation to finish to hide the poll with another animation. So there were series of CSS3 animation which should have been applied one after another. But there was no such directive therefore i had to write this on my own. ', '3', null, null, 'Qambar', '2014-02-06T16:25:41Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4241', '37', '6159', 'refactor(testing): split travis end to end tests into separate jobs for jquery and jqlite', '', '0', null, null, 'juliemr', '2014-02-06T19:37:42Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4242', '37', '616', 'fix(angular): Allow widgets to be styled in IE8 and below', 'Closes #584', '6', null, null, 'dmanek', '2011-10-22T00:54:45Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4243', '37', '6160', 'chore(testing): de-flake a ngHref test for navigating away from the Angu...', '...lar page', '1', null, null, 'juliemr', '2014-02-06T21:00:14Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4244', '37', '6161', 'chore(dependencies): upgrade q to (hopefully) prevent process.nextTick error spam', 'CI builds on travis occasionally freak out because of the recursive use of\nprocess.nextTick, which has been deprecated in Node relatively recently, to be\nreplaced with setImmediate. As this issue is somewhat flakey, it\'s difficult\nto tell whether or not this will completely resolve the issue, but the hope is\nthat it will.', '2', null, null, 'caitp', '2014-02-06T22:09:07Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4245', '37', '6164', 'angular-locale_lt minor grammar amends', 'Very minor amends to Lithuanian locale files.', '4', null, null, 'foreachlt', '2014-02-06T23:43:42Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4246', '37', '6165', 'fix(docs): version drop down should be naturally sorted', 'Change the version sorting function at the docs generation so versions are ordered using natural order\r\n\r\nCloses #6029', '1', null, null, 'lgalfaso', '2014-02-06T23:52:44Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4247', '37', '6166', 'chore(readme): add dependency status', 'because the world needs more badges', '3', null, null, 'gdi2290', '2014-02-07T02:21:31Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4248', '37', '6167', 'feat($location): parse query parameters delimited by ; or &', 'In accordance with recomendation in http://www.w3.org/TR/1999/REC-html401-19991224/appendix/notes.html#h-B.2.2, the query parameters should support encoding and decoding using & or ; as a delimiter.\r\n\r\nAngular will consistently encode search queries using either \'&\' or \';\' as the delimiter, with \'&\' being the default. This can be configured like so:\r\n\r\n```js\r\n$locationProvider.queryDelimiter(\';\'); // any other value will be treated as \'&\'\r\n```\r\n\r\nCloses #6140', '4', null, null, 'caitp', '2014-02-07T02:34:53Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4249', '37', '6168', 'add workaround for people updating their ng app to hashbangs', 'will redirect the page to a hashbang.', '5', null, null, 'jasonswearingen', '2014-02-07T03:10:12Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4250', '37', '617', 'Docs app defer', '- various improvements to the docs app\r\n- $defer.cancel', '7', null, null, 'IgorMinar', '2011-10-22T06:37:37Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4251', '37', '6171', 'Update jqLite.js', 'Сorrect link.', '5', null, null, 'githubjeka', '2014-02-07T10:41:12Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4252', '37', '6174', 'docs: fix Karma install command in tutorial', 'it was `npm install`. changed it to `npm install karma`', '2', null, null, 'quakehead', '2014-02-07T15:16:52Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4253', '37', '6175', 'feat(i18n): Update and add locales from Google Closure Library.', 'Fixes #6164', '1', null, null, 'tbosch', '2014-02-07T17:23:17Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4254', '37', '6176', 'fix(ngAnimate): test for SVG element on animate', 'SVG elements contain an Object in the node.className variable. This causes a failure when trying to manipulate SVG elements using ng-class.\r\n\r\nThis change tests for the existence of the SVG Object and handles it appropriately.', '6', null, null, 'rorymadden', '2014-02-07T17:39:45Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4255', '37', '6177', '#3183: Added necessary fix for Firefox when using <option value=\"\">', '#3183 seems to mostly not appear, but it does appear in Firefox still when I have select elements when\r\n\r\n1. The select element is not nested in a form element, or\r\n2. When `<option value=\"\">` is used\r\n\r\nHowever, there seems to be some additional condition(s) where this arises - I\'m having problems reproducing this. It is something similar to what I have in this [Plunker](http://plnkr.co/edit/SX74hewnm0YPuwJHvKYH?p=preview), although more complicated than what is there.\r\n\r\nThis additional check stops a weird edge case from appearing on occasion.', '4', null, null, 'wesleycho', '2014-02-07T18:11:34Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4256', '37', '6178', 'docs($resource): Fix statement about instance actions', 'Before it led to misbelief, that only default $resource actions can be invoked using instance fashion.', '2', null, null, 'vucalur', '2014-02-07T18:36:59Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4257', '37', '618', 'fix(ng:repeat) with array ignore properties not representing array elements', '', '2', null, null, 'IgorMinar', '2011-10-24T16:19:28Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4258', '37', '6181', 'ngTransclude memory leak fix', 'I\'ve been profiling a one page app using Angular.js and have had a tough time nailing down this memory leak. I\'m using Angularjs for a custom template system that outputs data from a content DSL containing educational content. In this system I swap out a lot of templates full of other angular directives which in themselves sometimes compile/transclude content. After a few days of searching I\'ve finally narrowed down one of the larger memory leaks. Using `transclude: true` in a directive is fine, no problems with leaks, but as soon as `ng-include` is used within the template I was getting a lot of detached DOM fragments in the Chrome memory profiler.\r\n\r\nHere is a sample app which replicates the problem:\r\n\r\n```html\r\n<!DOCTYPE html>\r\n<html>\r\n<head>\r\n <title>angular.js bug test</title>\r\n</head>\r\n<body ng-app=\"app\">\r\n <first-level></first-level>\r\n</body>\r\n <script src=\"angular.js\"></script>\r\n <script>\r\n app = angular.module(\'app\', []);\r\n\r\n app.directive(\'ngTranscludeFixed\', function(){\r\n return {\r\n restrict: \'AC\',\r\n link: function(scope, element, attrs, ctrl, transclude){\r\n if (!transclude) {\r\n throw minErr(\'ngTransclude\')(\'orphan\',\r\n \'Illegal use of ngTransclude directive in the template! \' +\r\n \'No parent directive that requires a transclusion found. \' +\r\n \'Element: {0}\',\r\n startingTag(element));\r\n }\r\n\r\n transclude(function(clone) {\r\n element.empty();\r\n element.append(clone);\r\n });\r\n }\r\n }\r\n });\r\n\r\n app.directive(\'secondLevel\', function(){\r\n return {\r\n replace: true,\r\n restrict: \'E\',\r\n scope: {},\r\n transclude: true,\r\n template: \"<div><div class=\'number-2\' ng-transclude></div>\"\r\n }\r\n });\r\n\r\n app.directive(\'firstLevel\', function($compile){\r\n return {\r\n replace: true,\r\n restrict: \'E\',\r\n scope: {},\r\n template: \"<div class=\'number-1\'><button ng-click=\'switchContents(1)\'>One</button><button ng-click=\'switchContents(2)\'>two</button><p></p></div>\",\r\n link: function(scope, element, attrs){\r\n var content1 = \"<second-level>hello world! 1</second-level>\"\r\n var content2 = \"<second-level>hello world! 2</second-level>\"\r\n var pEl = element.find(\'p\')\r\n var childScope = null;\r\n\r\n scope.switchContents = function(number){\r\n if(childScope) {\r\n childScope.$destroy();\r\n childScope = null;\r\n }\r\n\r\n pEl.empty()\r\n childScope = scope.$new()\r\n if(number == 1) {\r\n pEl.append(angular.element(content1));\r\n }else{\r\n pEl.append(angular.element(content2));\r\n }\r\n\r\n $compile(pEl.contents())(childScope);\r\n }\r\n }\r\n }\r\n });\r\n </script>\r\n</html>\r\n```\r\n\r\nSo running this using `ng-transclude` in the `secondLevel` directive, you can click the buttons a few times to see the transclude working, but when profiled in dev tools we get:\r\n\r\n![screen shot 2014-02-07 at 2 16 42 pm](https://f.cloud.github.com/assets/599521/2113722/0cbe0782-9031-11e3-8a5e-26a1119df673.png)\r\n\r\nAs you can see there are 4 detached Dom node Trees as a result, not a huge deal in this smaller app, but in my larger app it\'s causing 350+ detached nodes and about 5mb heap increase per template change. This is a fairly large problem for a one page app since we never reload the page.\r\n\r\nNow if we swap out `ng-transclude` with the proposed changes (`ng-transclude-fix`) we get:\r\n![screen shot 2014-02-07 at 2 19 20 pm](https://f.cloud.github.com/assets/599521/2113725/1375f40e-9031-11e3-8001-40df4e6b4bae.png)\r\n\r\nNo detached dom nodes!\r\n \r\nThe tests pass, I\'m not entirely sure how you would even test for detached Dom nodes and memory heap size. From my testing, it seems like the act of assigning $transclude to the controller (or scope for that matter) causes the detached nodes. This fix uses the new transclude function included within the `link` function to handle the transclude, instead of passing the $transclude object from the controller to the linking function. This is functionally the same, and eliminates the leak.', '0', null, null, 'renz45', '2014-02-07T19:53:02Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4259', '37', '6182', 'Update step_03.ngdoc', 'change to make the search text next to the word search so the searchbox isnt located in front of the cellphone texts', '0', null, null, 'fofo1808', '2014-02-07T20:20:47Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4260', '37', '6186', 'Added an example of how angular.identity works to increase clarity of th...', '...e method', '3', null, null, 'feedmypixel', '2014-02-07T23:28:36Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4261', '37', '6187', 'chore(testing): switch Jenkins to test e2e only on chrome', 'End to end tests will continue to be run on Safari and Firefox on Travis.', '0', null, null, 'juliemr', '2014-02-08T01:51:26Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4262', '37', '6189', 'Update index.ngdoc', 'fix karma npm install command', '4', null, null, 'poum', '2014-02-08T10:19:24Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4263', '37', '6190', 'link to angular.equals in $watch documentation', 'Incorporates by reference the precise definition of object equality in this case; helpful for those new to Angular, and increases awareness of Angular\'s quite useful helper library.', '2', null, null, 'davidpope', '2014-02-08T14:24:20Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4264', '37', '6191', 'feat($ngModule): Add warning message when a module is reset/replaced', 'This PR warns the user if they are replacing an existing module, i.e.\r\n\r\n```js\r\nfoo.js: angular.module(\'modname\', []).directive(......\r\n\r\nbar.js: angular.module(\'modname\', []).directive(......\r\n```\r\n\r\nCloses #6034', '4', null, null, 'paolodm', '2014-02-08T15:49:51Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4265', '37', '6192', 'fix($rootScope): ng-repeat can\'t handle NaN values. #4605', '$watchCollection checks if oldValue !== newValue which does not work for NaN\r\n\r\nCloses #4605', '8', null, null, 'SekibOmazic', '2014-02-08T18:59:29Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4266', '37', '6194', 'Update index.ngdoc', 'Added a link to 10 reasons to use and online courses for Angular', '3', null, null, 'JeremyLikness', '2014-02-09T15:17:15Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4267', '37', '6196', 'Update ngEventDirs.js', 'NgSubmit\r\nThe documentation states only the \"action\" attribute triggers a page submission, which is incorrect. When using the attribute \"data-action\" (as for AJAX control, attempting to bypass the \"action\" attribute but still make it obvious what it\'s for), Angular thinks this is also classified as the attribute \"action\" and continues with the page submission.', '4', null, null, 'ZeeStorm', '2014-02-10T08:17:46Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4268', '37', '6197', 'Docs: Add link to MIT license from the FAQ page', 'The FAQ page was lacking a link to the MIT license so I added it.', '0', null, null, 'negativetwelve', '2014-02-10T10:04:43Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4269', '37', '62', 'Service $location update', 'This is a big update (changes in api), so purpose of this pull request is to start discussion not immediately merge into master...\r\n\r\n#### Questions\r\n* Do we need to update at the begining and end of $eval() both ?\r\nThere is a test for that, but I don\'t know, why we need this ?\r\nIt\'s a test \'should update hash before any processing\'\r\n* How about changing the API ? We should make some version releases to be able to mark these changes in the documentation on http://www.angularjs.org\r\n\r\n### New API for $location service\r\n#### update(objOrString)\r\n#### updateHash(objOrString [, objOrString])\r\n#### toString()\r\n#### cancel()\r\n#### parse() [deprecated, only for BC]\r\n\r\n### Some examples\r\n $location.update(\'http://www.angularjs.org/path#path?a=b\');\r\n $location.update({port: 443, protocol: \'https\'});\r\n $location.updateHash(\'hashPath\');\r\n $location.updateHash({a: \'b\'});\r\n $location.updateHash(\'hashPath\', {a: \'b\'});', '15', null, null, 'vojtajina', '2010-10-17T21:15:27Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4270', '37', '620', 'fix(scenario.dsl): Fix dsl for $location', 'New $location does not have hashSearch, hashPath.\r\nThe old dsl was mixing $location / window.location so this solves the problem as well...', '3', null, null, 'vojtajina', '2011-10-25T00:01:59Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4271', '37', '6200', 'ngResource - POST parameter value prefixed with @ is not extracted from the data object.', 'Documentation states:\r\n\r\nIf the parameter value is prefixed with @ then the value of that parameter is extracted from the data object (useful for non-GET operations).\r\n\r\nWe have the parameters prefixed with \'@\' but they are still present within the POST Object.', '4', null, null, 'theDustRoom', '2014-02-10T12:24:11Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4272', '37', '6201', 'feat($rootScope): add diff support for $digest / equals', 'when firing watchers in $digest, Angular includes the old and the new\r\nvalue. In case of arrays of objects, it\'s impossible to tell which\r\nproperties changed in which objects without manually doing a diff of the\r\nold and the new values. with this small change, it\'s possible for apps and\r\ncustom directive implementations to know exactly what changed, without\r\ndoing this diffs every time.', '7', null, null, 'attodorov', '2014-02-10T13:53:59Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4273', '37', '6202', 'doc(scope): fix a typo', '', '1', null, null, 'vicb', '2014-02-10T14:16:55Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4274', '37', '6206', 'Removing pointless `* 1`s', '', '6', null, null, 'Sequoia', '2014-02-10T20:57:39Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4275', '37', '6207', 'removing confusing use of hoisting', 'Why do\r\n```\r\nvar ...\r\nreturn exports;\r\nfunction for exports...\r\nanother function for exports...\r\n```\r\nWhy put return statement in the middle? This \"hoisting hack\" makes the code harder to read and will likely confuse beginners not familiar with the concept. Unless there\'s some really good reason to nest the return statement between properties & methods it should not be thus.', '1', null, null, 'Sequoia', '2014-02-10T21:01:52Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4276', '37', '6209', 'Inject phonecapApp module into unit test', 'When I was reading this doc I was thinking \"but what about phonecatApp?\" and when I looked in the file from the step-11 branch there it is. Should be reflected in the docs as well', '2', null, null, 'yono38', '2014-02-11T05:09:41Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4277', '37', '6215', 'feat(filterFilter): support deeply nested predicate objects', 'Due to 339a165, it became impossible to filter nested properties of an object\r\nusing the filterFilter. A proposed solution to this was to enable the use of\r\nnested predicate objects. This fix enables the use of these nested predicate\r\nobjects.\r\n\r\nExample:\r\n\r\n```html\r\n<div ng-repeat=\"it in items | filter:{ address: { country: \'Canuckistan\'}}\"></div>\r\n```\r\n\r\nOr\r\n\r\n```js\r\n$filter(\'filter\')(items, { address: { country: \'Canuckistan\' } });\r\n```\r\n\r\nRelated to #6009', '14', null, null, 'caitp', '2014-02-11T15:01:03Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4278', '37', '6216', 'docs(guide/index): Replace \"shold\" to \"should\"', '**Browser:** Other\n**Component:** misc core\n**Regression:** no\n\nReplace \"shold\" to \"should\"', '2', null, null, 'forresst', '2014-02-11T16:36:58Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4279', '37', '6217', 'fix(win8): Make Angular work on Windows 8 JS Apps', '**Browser:** Other\n**Component:** misc core\n**Regression:** no\n\n#### Make Angular JS work on Windows 8 JavaScript apps. \r\n\r\nIn order to ensure the right level of security, the Windows platform prevents certain things to be done in JavaScript code, therefore developers have to make some adjustments to their Web code.\r\nThe changes in the pull request for AngularJS are in line with Windows 8 recommendations without breaking the Web. \r\nAll the unit test cases for the web have been run. The scenario runners have also been run on Windows Store apps to ensure that these changes work. \r\n\r\nWith these changes, developers can use AngularJS for Windows Store apps the exact same way they do for their Web apps.\r\n', '39', null, null, 'panarasi', '2014-02-11T20:12:26Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4280', '37', '6219', 'docs: remove ngRoute.$routeParams link from ng module services example', '', '8', null, null, 'inetfuture', '2014-02-12T01:05:32Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4281', '37', '6220', 'fix(ngCookie): convert non-string values to string', 'Previously, non-string values stored in $cookies would be removed, without warning the user, and\r\ncausing difficulty debugging. Now, the value is converted to string before being stored, and the\r\nvalue is not dropped. Serialization may be customized using the toString() method of an object\'s\r\nprototype.\r\n\r\nCloses #6151', '0', null, null, 'caitp', '2014-02-12T02:11:41Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4282', '37', '6224', 'docs(input): fix $isEmpty documentation', '**Browser:** Other\n**Component:** forms\n**Regression:** no\n\n', '2', null, null, 'tricky21', '2014-02-12T09:54:18Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4283', '37', '6225', 'docs(guide/$location) : bad link (error 404)', '**Browser:** Other\n**Component:** misc core\n**Regression:** no\n\nCorrects the link to \"History API\"', '2', null, null, 'forresst', '2014-02-12T10:14:30Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4284', '37', '6226', 'refactor($cacheFactory): cache inefficient when no capacity', '**Browser:** Chrome\n**Component:** misc core\n**Regression:** yes\n\nskip maintaining the linked list when cache capacity not specified\r\n\r\ncloses #6193', '5', null, null, 'SekibOmazic', '2014-02-12T10:39:06Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4285', '37', '6227', 'Update ie.ngdoc', '**Browser**: IE8\r\n**Component**: docs\r\n**Regression**: no\r\n\r\nText specifies \"polyfill JSON.stringify for IE7 and below\" conditional comment for loading the polyfill was \"lte IE 8\". According to https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify IE8 supports JSON.stringify, so the text was correct, conditional comment was wrong.', '6', null, null, 'toebu', '2014-02-12T12:37:38Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4286', '37', '6228', 'docs(guide/$location) : improve table lisibility', '**Browser:** Other\n**Component:** misc core\n**Regression:** no\n\nImprove table lisibility', '4', null, null, 'forresst', '2014-02-12T13:04:50Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4287', '37', '6229', 'Added missing line break in currency doc', '**Browser:** Chrome\n**Component:** misc core\n**Regression:** no\n\n', '2', null, null, 'thejameskyle', '2014-02-12T14:40:08Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4288', '37', '6230', 'test(ngOptions): ensure correct option is selected when shrunk', '', '2', null, null, 'clkao', '2014-02-12T16:36:23Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4289', '37', '6232', 'Dgeni - Documentation Generation Rework', 'Here it is.\r\nStill a couple of protractor tests failing but will be sorted out very soon.', '3', null, null, 'petebacondarwin', '2014-02-12T23:15:29Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4290', '37', '6235', 'feat(angular.isEmptyObject): check object for enumerable properties', 'Would like to submit feature for checking if an object is empty ```{}``` or ```null```.\r\nPretty useful in removing duplicate code in checking empty objects or null.\r\ne.g. in cases where an async request returns {} \r\n', '2', null, null, 'anton000', '2014-02-13T02:31:13Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4291', '37', '6238', 'Update basic auth default headers example', 'Updating name of basic auth header in example to be \'Authorization\' as it should be instead of \'Authentication\'', '3', null, null, 'cgwyllie', '2014-02-13T09:38:31Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4292', '37', '624', '621 script name restrictions + cleanup', '\r\n', '0', null, null, 'IgorMinar', '2011-10-26T16:46:20Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4293', '37', '6240', 'fix(select): ensure option list is repainted on IE9', 'Fixes #6211', '6', null, null, 'clkao', '2014-02-13T13:33:38Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4294', '37', '6241', 'chore(tests): remove trailing comma in specs', '', '1', null, null, 'clkao', '2014-02-13T13:50:52Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4295', '37', '6242', 'fix($compile): fix duplicate style attributes', 'This fix avoids duplicating style attributes in directives that specify\r\n\'replace: true\' and \'template: &lt;div style=\"...\" /&gt;\'.\r\n\r\nCloses #6239', '10', null, null, 'vrutberg', '2014-02-13T14:19:52Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4296', '37', '6243', 'fix(input): apply directives to only suitable inputs', '', '15', null, null, 'twhitbeck', '2014-02-13T17:21:37Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4297', '37', '6245', 'Google logo in AngularJS.exports to vector format.', 'Browser: Other\r\nComponent: docs\r\nRegression: no', '1', null, null, 'brianhall', '2014-02-13T17:28:13Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4298', '37', '6247', 'fix(input): don\'t apply textInput to <input type=\"file\">', 'Browser: Chrome Component: misc core Regression: (sort of)\r\n\r\ntextInput shouldn\'t be applied to file inputs to ease writing of custom file input directives\r\n\r\nRelated #6243\r\nCloses #6231', '6', null, null, 'twhitbeck', '2014-02-13T18:31:12Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4299', '37', '6249', 'Add ngTrim doc to ng.directive:textarea', 'Just copied over from ng.directive:input.text', '4', null, null, 'cesutherland', '2014-02-13T22:04:53Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4300', '37', '625', '619 ng:view race condition', '', '1', null, null, 'IgorMinar', '2011-10-26T19:17:47Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4301', '37', '6250', 'Mention that filters can be used in directives', 'The doc mentions about filters can be used in services and controllers but directives aren\'t mentioned, which could lead to confusion for beginners.', '3', null, null, 'tamakisquare', '2014-02-13T22:05:00Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4302', '37', '6252', 'feat(ngSanitize): add $sanitizeExt factory', '**Browser:** Chrome\n**Component:** misc core\n**Regression:** no\n\nAdd $sanitizeExt factory to allow extenstion of the $sanitize element and\r\nattribute whitelists. This allows for unsupported, standard elements and\r\nattributes, as well as custom elements and attributes.\r\n\r\nCloses #5900', '11', null, null, 'bradyisom', '2014-02-13T23:57:19Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4303', '37', '6253', 'fix(angular.toJson): only strip properties beginning with $$, not $', 'This PR makes `angular.toJson` strip properties beginning with `$$`, instead of `$`\r\n\r\n##### Rationale behind this:\r\n\r\n2 years ago, angular switched from using it\'s own json serializer to the native `JSON.stringify` in 35125d25137ac2da13ed1ca3e652ec8f2c945053.\r\nIn the old serializer, angular was stripping the following properties: `this`, `$parent` and anything starting [with `$$`](https://github.com/angular/angular.js/blob/87f5c6e5b716100e203ec59c5874c3e927f83fa0/src/JSON.js#L141)\r\n\r\nWhen we switched to the native `JSON.stringify`, this got changed to stripping anything starting [with](https://github.com/angular/angular.js/blob/35125d25137ac2da13ed1ca3e652ec8f2c945053/src/JSON.js#L5) [`$`](https://github.com/angular/angular.js/commit/6c59e770084912d2345e7f83f983092a2d305ae3#diff-1d54c5f722aebc473dbe96f836ddf974R784)\r\n\r\nI don\'t know if this greedier stripping resulted from an internal discussion, but it seems to be causing problems to those who use properties beginning with `$` in their model (see #1463)\r\nSo I reverted to having `angular.toJson` only strip props that start with `$$`\r\n\r\nThere\'s the _issue_ that ngResource now defines the `$promise` and `$resolved` props on any resource instance: two properties that we don\'t want serialized and sent to the server on `$save`.\r\nI worked around this by having resources utilize the [`toJSON`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify#toJSON_behavior) method to not include both these properties on serialization.\r\n\r\nI didn\'t go with the whitelist approach mentioned in #1463 because it would require a lookup in an array/hash for every property of an object being serialized, and it would be an app-wide config potentially requiring a lot of whitelisting. A better alternative would be a blacklist of [$$hashKey, $promise, $resolved], or what I\'m doing here.', '22', null, null, 'rodyhaddad', '2014-02-14T02:04:25Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4304', '37', '6255', 'Update directive.ngdoc', 'More description of \"&\" bindings, the fact that they trigger evaluation of expressions in the original scope\'s context.', '3', null, null, 'bradw2k', '2014-02-14T03:56:26Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4305', '37', '6256', 'test(date): fix failing test when running in Seoul, Korea time zone (UTC...', '...+09:00)\r\n\r\nThis is a minor fix to a unit test assertion that fails when running in the Seoul time zone (UTC+09:00):\r\n\r\nexpect(date(\'2003-09-10T13:02:03.12345678Z\', format)).toEqual(\'2003-09-10\');\r\n\r\nUnderneath, the JavaScript setUTCHours() function is called and when the millisecond part is larger than 999, it just adds seconds, minutes, or hours to the date. For example, passing milliseconds of 70500 to this function will actually add 1 minute, 10 seconds, 500 milliseconds. So adding 12345678 milliseconds, combined with the +09:00 time zone, adds enough hours to shift the day to 11, thus causing the test to fail. This fix simply changes the milliseconds part to 00000001, which still tests the string parsing and date formatting without changing the date to the next day.', '3', null, null, 'gregkowalski', '2014-02-14T07:07:07Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4306', '37', '6259', 'Fix TypeError Cannot call method \'querySelectorAll\' of undefined in ngAnimate', 'Fix TypeError Cannot call method \'querySelectorAll\' of undefined in ngAnimate when use ng-if on ng-repeat fix #6205\r\n\r\nMore about issue is here https://github.com/angular/angular.js/issues/6205', '9', null, null, 'd4rkr00t', '2014-02-14T11:22:17Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4307', '37', '6261', 'Fix for number filter checking for numbers', 'Fix for number filter when passing not a number to a filter. isNaN is\r\nbroken, so we should use isNumber function in formatNumber function.\r\nClose #6188', '21', null, null, 'sagens42', '2014-02-14T11:55:30Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4308', '37', '6265', 'typofixes', 'A few typofixes. (This word seems to be strange also: BEGING_END_TAGE_REGEXP But I can\'t decide if this is intentional or not.)', '9', null, null, 'vlajos', '2014-02-14T15:40:23Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4309', '37', '6267', 'fix($animate): ensure $animate doesn\'t break natural CSS transitions', '', '4', null, null, 'matsko', '2014-02-14T19:26:42Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4310', '37', '6269', 'Changed config example to minify-friendly format', '', '4', null, null, 'breyed', '2014-02-15T02:55:35Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4311', '37', '627', 'Disqus integration', '\r\n', '2', null, null, 'IgorMinar', '2011-10-27T00:28:50Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4312', '37', '6270', 'linked to config docs', 'added link on where to find more info about how to use config', '3', null, null, 'breyed', '2014-02-15T02:55:43Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4313', '37', '6272', 'fix(ngCloack): ng-cloak directive gets removed too early', '**Browser:** Chrome\n**Component:** misc core\n**Regression:** no\n\nadd priority -500 to ngCloack to make sure the direcive will be compiled after all others\r\n\r\ncloses #5692', '2', null, null, 'SekibOmazic', '2014-02-15T10:06:06Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4314', '37', '6277', 'Update step_11.ngdoc', 'A misprint in name of the controller \"phonecatControllers\", which has been confused with the name of a module \"phonecatApp\".', '2', null, null, 'ahliddin', '2014-02-15T21:24:51Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4315', '37', '6278', 'Update concepts.ngdoc', '', '2', null, null, 'plmetz', '2014-02-15T22:30:30Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4316', '37', '6281', 'fix(ngTouch): ngSwipe outside the boundaries', 'Fix #5732\r\nIf the user releases swipe outside of the element\'s boundaries, the touchend /\r\nmouseup listeners wont be called.\r\n\r\nPlunker from #5732: http://plnkr.co/edit/VebWtE3HiFX3xHWzJmif', '2', null, null, 'sagens42', '2014-02-17T00:40:47Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4317', '37', '6282', 'Bike Shed PR', '', '9', null, null, 'matsko', '2014-02-17T01:06:32Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4318', '37', '6284', 'feat(ngBindOnceDirs.js): implementation of simple bindOnce directives', 'I have not seen or heard anything from the core team regarding the bindOnce issue, but I bet you guys are working on something, regarding the amount of +1s #5408 has received. But since I have not seen anything I thought someone would like this. \r\n\r\nThis is a super simple implementation which introduces many useful directives into the core with very little code. It has almost full parity with the popular bindonce library, in terms of the amount of directives it offers. It also works with promises, $timeouts, and any other values that are set after the initial digest. \r\n\r\nI did not want to create all the Docs for each directive just yet. Wanted to get some feedback on whether or not this type of functionality would be merged in or not? ', '9', null, null, 'joshkurz', '2014-02-17T04:24:45Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4319', '37', '6285', 'Update index.ngdoc', 'Added extra backslash `(\\)` character due to the backslash being used as an escape char', '4', null, null, 'louis-reed', '2014-02-17T05:43:20Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4320', '37', '6286', 'chore(doc-gen): add production deployment environment', 'This is a part of a fix for https://github.com/angular/dgeni/issues/56', '2', null, null, 'petebacondarwin', '2014-02-17T07:44:52Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4321', '37', '629', 'docs(jqlite): add missing methods', 'no real change, just docs...\r\n\r\nI think, we should mention, that even these methods that jqLite implements are not the same as the jQuery ones. For example `find()` is very simplistic...\r\nBut I don\'t know, how to say that - need a help by some native speakers from Slovakia :-D', '1', null, null, 'vojtajina', '2011-10-28T07:46:30Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4322', '37', '6290', 'fix($compile): support templates with thead and tfoot root elements', 'If the first element in a template is a `<thead>` or a `<tfoot>`, then use the existing logic to handle table elements compilation.\r\n\r\nCloses #6289', '11', null, null, 'lgalfaso', '2014-02-17T12:06:02Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4323', '37', '6291', 'docs(bike-shed-migration): add @step tag', 'To keep the same logic as the commit https://github.com/angular/angular.js/commit/bd4ffaba53b3800200ba034c30ea91bc143c4392', '5', null, null, 'forresst', '2014-02-17T12:23:46Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4324', '37', '6292', 'docs(bike-shed-migration): add @step tag', 'To keep the same logic as the commit https://github.com/angular/angular.js/commit/bd4ffaba53b3800200ba034c30ea91bc143c4392', '2', null, null, 'forresst', '2014-02-17T12:25:54Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4325', '37', '6293', 'docs(bike-shed-migration): convert doctype and names', 'To keep the same logic as the commit https://github.com/angular/angular.js/commit/2e641ac49f121a6e2cc70bd3879930b44a8a7710', '3', null, null, 'forresst', '2014-02-17T13:02:34Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4326', '37', '6294', 'currency update for Latvian locale', 'Latvian locale now should use Euro sign for currency display\r\nhttp://europa.eu/rapid/press-release_IP-13-1307_en.htm', '2', null, null, 'arcanous', '2014-02-17T13:15:14Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4327', '37', '6295', 'Remove trailing slashes for links to the tutorial', 'If the links to \"tutorial\" contains a slash, they will lead to a blank page. This commit removes them.', '2', null, null, 'wibron', '2014-02-17T15:24:19Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4328', '37', '6296', 'docs($interpolate): correct small typo', '', '2', null, null, 'pauldijou', '2014-02-17T15:46:53Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4329', '37', '6299', 'feat(ngResource): allow a resource URL to be a closure called when building URL', 'Hi everyone,\r\n\r\nI was in need of dynamic URL resources for a project where the user can configure from which API the data is fetched.\r\n\r\nI didn\'t find any way to do this properly, but I saw that URL param value can be a function called to get the effective value, so I did the same with URL.\r\n\r\nThanks.', '14', null, null, 'carab', '2014-02-17T19:12:07Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4330', '37', '630', 'fix(css): ng:form should always be a block element', 'fix for: http://jsfiddle.net/agamennon12345/twcvt/', '2', null, null, 'IgorMinar', '2011-10-29T05:12:10Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4331', '37', '6301', 'docs: update compiler.ngdoc', 'The $compile service accepts string as a value and wraps it if needed, so this statement isn\'t correct, at least by the source code.', '1', null, null, 'shairez', '2014-02-17T23:48:30Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4332', '37', '6302', 'Input click triggered by label click immediately following a touch event is busted', 'To reproduce\r\n - an element with ng-click\r\n - a radio button (with ng-model) and associated label\r\nIn a quick sequence tap on the element and then on the label.\r\nThe radio button will not be checked, unless PREVENT_DURATION has passed', '19', null, null, 'cconstantin', '2014-02-18T00:11:48Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4333', '37', '6303', 'fix($location): store REQUEST_URI in cookie', 'Request Type: feature\n\nHow to reproduce: \n\nComponent(s): $location\n\nImpact: \n\nComplexity: small\n\nThis issue is related to: \n\n**Detailed Description:**\n\nWith IE8 and html5mode, reloading the page to add hashbang lose server variables\n\n**Other Comments:**\n\nTo fix issue #6195, setting the REQUEST_URI in a cookie before refreshing the page (for IE8 in html5 mode), and remove the cookie after the refresh is done.\r\n\r\nWhat has been done:\r\n- adding pathInCookie (bool) to add the REQUEST_URI in a cookie to not loose it after refresh (IE8 in html5 mode) and pathInCookieName (string) to specify the name of the cookie. Default will be \"angular\"\r\n\r\nIf anybody can help me to create testing case for this pull request that would be awesome\r\n', '10', null, null, 'nolazybits', '2014-02-18T02:52:16Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4334', '37', '6306', 'docs($q): add mention of Android 2.x browser', 'This browser is still important according to stats.', '5', null, null, 'thorn0', '2014-02-18T09:52:22Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4335', '37', '6308', 'Decrease menu width', 'This prevents the search input from appearing on a new row on md window sizes ((992px -> 1200px).', '4', null, null, 'brutasse', '2014-02-18T10:44:49Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4336', '37', '6318', 'docs($q): fixup dgeni ngdoc annotations for $q methods', 'Just a tiny fixup, that\'s all.\n\nCloses #6317', '1', null, null, 'caitp', '2014-02-18T17:26:03Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4337', '37', '6319', 'Fix(filter): Filter objects with circular references', '**Overview of the issue** - When filtering confronts a circular reference, it causes an infinite recursion & subsequent stack overflow. \r\n\r\n**Motivation for or Use Case** - As modeling libraries evolve for Angular (I\'ve spent quite a bit of time on one myself https://github.com/FacultyCreative/ngActiveResource), circular references on related objects are likely to become more frequent. For instance, you have a post that has many comments:\r\n\r\n```\r\n post.comments[0] = {body: \'great comment\', post: post}\r\n```\r\n\r\nCurrently, the `search` method calls itself on each attribute on each object in the collection being filtered. Since `post` references this particular `comment`, and the `comment` references back, the `search` method will never end.\r\n\r\n**Angular Version(s)** - 1.2.13 (current) and before\r\n\r\n**Browsers and Operating System** - This is a problem for all browsers\r\n\r\n**Reproduce the error** - Test included, plus see this Fiddle: http://jsfiddle.net/S2UY6/9/\r\n\r\n**Related issues** - I do not see the same issue reported, though users seem to have particular difficulty with circular references in the DI system and `angular.extend`. \r\n\r\n**Suggest a Fix** - Fix included', '16', null, null, 'brettshollenberger', '2014-02-18T17:43:16Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4338', '37', '632', 'Infinite digest log', '', '2', null, null, 'IgorMinar', '2011-10-31T05:22:18Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4339', '37', '6323', 'fix(jqLite): make jqLite(\'<iframe src=\"someurl\">\').contents() return iframe document, as in jQuery', 'This is a very tiny change to make behaviour consistent with jQuery.\n\nCloses #6320', '8', null, null, 'caitp', '2014-02-18T20:24:10Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4340', '37', '6324', 'Update ngClass.js', 'Giving more description about how the three kinds of expression work.', '1', null, null, 'bradw2k', '2014-02-18T20:45:54Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4341', '37', '6327', 'fix(ngRoute): remove extra decodeURIComponent', 'Since `$location.$$path` is already decoded, doing an extra `decodeURIComponent` is both unnecessary and can cause problems. Specifically, if the path originally included an encoded `%` (aka `%25`), then ngRoute will throw \"URIError: URI malformed\".\r\n\r\nCloses #6326', '8', null, null, 'mllrjb', '2014-02-18T23:36:29Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4342', '37', '6328', 'chore(travis): don\'t run Travis-CI builds for G3 branches', 'Building the G3 commits occupies a lot of time, and these branches have \r\nalready been tested. (Based on http://docs.travis-ci.com/user/build-configuration/#White--or-blacklisting-branches)', '0', null, null, 'caitp', '2014-02-19T00:08:32Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4343', '37', '6329', 'Document Internet Explorer style attribute bug', 'See #2186', '1', null, null, 'richardcrichardc', '2014-02-19T00:49:11Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4344', '37', '633', 'Add mocks test', 'Unfortunately, there are some people in our team (me) who are not able to remember prepending all angular functions with angular.* inside angular-mocks.js...\r\nThe only solution is to test that, so here it is...', '1', null, null, 'vojtajina', '2011-11-01T02:38:07Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4345', '37', '6330', 'fix(ngClick): make ngTouch adhere to MOVE_TOLERANCE on click event', 'JSFiddle: http://jsfiddle.net/dK25u/\r\n\r\nOn Desktop if you swipe within the blue box and release, both the swipe\'s done function and click\'s done function are called together. This bug is also apparent on some mobile devices, for example wp8 that still call native `click` event handlers.\r\n\r\nIf you compare this JSFiddle on a Android Touch device you will notice the click\'s done function does not get called when swiped.\r\n\r\nWith this fix the click\'s done function is only called if within the MOVE_TOLERANCE amount, therefore the behaviour is consistent between mobile / pointer event mobile and desktop environments.', '5', null, null, '2ix', '2014-02-19T01:23:59Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4346', '37', '6332', 'docs(guide/providers): fix example snippet', '', '1', null, null, 'IgorMinar', '2014-02-19T03:33:29Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4347', '37', '6334', '$http : ability to clear a request from the cache #5968', 'Previously it was not possible to remove data from $http cache (without duplicating internal functions in http to calculate the key used, which could change in the future...).\r\n\r\nfeat($http): change $http to allow removing/replacing individual requests in $http cache\r\n\r\nAdds $http.removeCache method.\r\nAdds/implements replaceCache property in $http request configuration.\r\n\r\nCloses #5968', '10', null, null, 'njs50', '2014-02-19T05:32:39Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4348', '37', '6335', 'feat(ngCookies): Additional parameters for $cookies service (domain, expires, secure)', 'This PR allows setting additional parameters on cookies created by $cookieStore. The changes are only on $browser to avoid major changes.\r\n\r\nIt seems to me the cookie logic could be somehow moved to $cookies, but I will leave that to someone else.\r\n\r\nThe `expires` parameter can be specified as integer seconds or as a `Date` object.\r\n\r\nThe parameters are set as follows:\r\n```\r\nangular.extend($browser.cookieOptions, {\r\n path: \'/\',\r\n domain: \'.example.com\',\r\n expires: 3600\r\n});\r\n```\r\n\r\nCloses #590, and is an alternative PR to #2459', '5', null, null, 'kbanman', '2014-02-19T05:54:25Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4349', '37', '6337', 'feat(filter): orderBy for object collections', 'Allows to use orderBy filter on collection objects and not only arrays.\r\n\r\neg:\r\n\r\n var c = {\r\n b: {name: \'b\'},\r\n c: {name: \'c\'},\r\n a: {name: \'a\'}\r\n };\r\n orderBy(c, \'name\'); // => [{name: \'a\'}, {name: \'b\'}, {name: \'c\'}];\r\n\r\nCloses: #6210', '8', null, null, 'khepin', '2014-02-19T07:48:31Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4350', '37', '6340', 'feat($location): parse query parameters delimited by ; or & #6167', 'According to RFC (http://www.w3.org/TR/1999/REC-html401-19991224/appendix/notes.html#h-B.2.2)\r\nlocation should match either \';\' OR \'&\', but not both at the same time.\r\n\r\nCloses #6140', '3', null, null, 'khepin', '2014-02-19T10:11:09Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4351', '37', '6341', 'feat($location): parse query parameters delimited by ; or &', 'According to RFC (http://www.w3.org/TR/1999/REC-html401-19991224/appendix/notes.html#h-B.2.2)\r\nlocation should match either \';\' OR \'&\', but not both at the same time.\r\n\r\nCloses #6140', '5', null, null, 'khepin', '2014-02-19T10:23:49Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4352', '37', '6342', 'fix($http): do not add trailing question', 'Now if you pass empty object into params you will get url with unnecessary question mark.\r\nIt may cause some issues, like this [stackoverflow question](http://stackoverflow.com/questions/19575565/angularjs-resource-url-causes-question-mark-to-appear-with-no-params).\r\nMoreover it makes unit test less readable, because that need to add redundant question to end of some `$httpBackend` expectations.', '6', null, null, 'just-boris', '2014-02-19T11:22:13Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4353', '37', '6344', 'ngResource: Add a $set function on Resource.prototype', 'This is to enable setting of multiple attributes on a Resource instance. I want to be able to update all the attributes on a resource instance when I get a pusher event with the JSON entity.', '4', null, null, 'ejholmes', '2014-02-19T13:30:44Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4354', '37', '6345', 'Fix ngdocs in route.js', 'Somebody accidentally padded a list with one-too-many indentations, which caused the actual documentation page to render incorrectly. This should fix it.', '3', null, null, 'stevenpetryk', '2014-02-19T14:58:30Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4355', '37', '6346', 'fix(doc-gen): Run Gulp on Windows too', 'Using node_module/.bin/gulp will enable to gulp command to run\r\nboth on Windows and Linux. In its current form, opening a Javascript\r\nfile on Windows will not run the doc generation.', '10', null, null, 'panarasi', '2014-02-19T15:58:06Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4356', '37', '6348', 'chore(doc-gen): improve grouping and sorting of api nav items', '', '1', null, null, 'petebacondarwin', '2014-02-19T16:21:54Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4357', '37', '6349', 'Added array and error decoration', 'Array decoration allows metadata properties set on an array during transformation to be copied over to the resulting data. This allows us to do things like add pagination metadata to the result array.\r\n\r\nError decoration allows metadata properties set during transformation to be copied over to the resulting data, on error, without removing existing, non-conflicting properties. This allows us to do things like creating am \'error\' property on an existing model, without losing the model\'s existing property values.', '1', null, null, 'kmccullough', '2014-02-19T18:06:56Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4358', '37', '6353', 'Add note that isObject returns true for arrays/functions', '', '4', null, null, 'cnlevy', '2014-02-19T20:13:42Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4359', '37', '6355', 'chore(docs): make the layout fully responsive', 'Closes #6308\r\n\r\nhttp://ci.angularjs.org/job/angular.js-matias/lastBuild/artifact/build/docs/index.html', '3', null, null, 'matsko', '2014-02-19T21:27:20Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4360', '37', '6357', 'docs(ngAnimate): replace HTML entity references with characters in GFM code blocks', 'I thought I fixed these in f7d28cd!', '11', null, null, 'caitp', '2014-02-19T22:14:44Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4361', '37', '6359', 'Added array and error decoration', 'Array decoration allows metadata properties set on an array during transformation to be copied over to the resulting data. This allows us to do things like add pagination metadata to the result array.\r\n\r\nError decoration allows metadata properties set during transformation to be copied over to the resulting data, on error, without removing existing, non-conflicting properties. This allows us to do things like creating am \'error\' property on an existing model, without losing the model\'s existing property values.', '11', null, null, 'kmccullough', '2014-02-19T23:09:42Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4362', '37', '636', 'httpBulk service', 'preliminary version, not to be released with the http branch.\r\n\r\nI want to use this only in feedback and if it works well we can consider shipping it with angular or maybe as an extra angular module. (that\'s why I use angular.forEach instead of forEach, but I made it part of angularFiles so that I can easily run tests).', '1', null, null, 'IgorMinar', '2011-11-03T23:52:44Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4363', '37', '6361', 'chore(doc-gen): add a jquery deploy environment, and give examples one i...', '...ndex per environment\r\n\r\nAdds a jQuery environment, and adds a processor to the docs.angularjs.org package\r\nwhich runs after example index files have been generated. This processor copies\r\nthe index file once for each deployment environment, adding custom shared scripts\r\ndescribed in that env.\r\n\r\nThis does not yet handle changing the target of the iframe, so those all point\r\nto the default no matter the version of docs being accessed.', '7', null, null, 'juliemr', '2014-02-20T04:44:26Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4364', '37', '6362', 'chore(travis): reorganize protractor configs to group by spec', 'Hi folks, work in progress - I\'m submitting this as a PR early to kick off Travis builds and work out any issues. Please ignore until I comment with the go-ahead.', '3', null, null, 'juliemr', '2014-02-20T06:20:32Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4365', '37', '6363', 'chore(doc-gen): add formatted error messages to error pages', 'This got missed in the doc migration: When there is an error in an\r\nAngular app, extra information is placed in the URL, which can be used\r\nby the docs application to display a more useful message.\r\n\r\nThis fix adds that back in. The error message templates are extracted\r\nby the minerr tool during build and put into the errors.json file. The\r\nerrors-doc processor will load this up and attach these message templates\r\nto the error docs.\r\n\r\nThe display of these templates was already in place, via the errorDisplay\r\ndirective in docs/app/js/errors.js.\r\n\r\n(Also, moved the error.template.html file into the angular.js repository\r\nfrom the dgeni-packages repository as this is specific to the angular.js\r\nproject and all the other error related stuff is in here.', '1', null, null, 'petebacondarwin', '2014-02-20T06:30:26Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4366', '37', '6366', 'Update filter.ngdoc', 'I think there should be type=\"text\" not type=\"greeting\"', '3', null, null, 'kuldipem', '2014-02-20T11:03:39Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4367', '37', '6367', 'Add documentation to $interval.cancel();', 'I have been looking around and was not able to find any informations on how to clear the $interval but reading the source code, sharing is caring!', '3', null, null, 'SAFAD', '2014-02-20T14:03:52Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4368', '37', '6369', 'fix(input.min/max) re-validate input[type=number] when min/max changes', 'Value was not re-evaluated when min/max changed.', '6', null, null, 'quazzie', '2014-02-20T15:27:01Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4369', '37', '6375', 'Update ngEventDirs.js', 'switched from this to $scope.\r\nIt\'s confusing using $scope and this interchangeably.', '3', null, null, 'RefuX', '2014-02-20T22:07:05Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4370', '37', '6376', 'only use window.jQuery if it supports required jQuery.fn.on', 'This is a safe and simple fix to the legacy jQuery situation referenced in #2163 until the API in issue #608 is refined and implemented.', '19', null, null, 'snapwich', '2014-02-21T00:06:08Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4371', '37', '6377', 'Fix typo in Wikipedia link to minification', 'Right now the \"minify\" link in this document yields the URL \"http://en.wikipedia.org/wiki/Minification_(programming\". Escaping the first closing parenthesis should fix this.', '11', null, null, 'jennifersong', '2014-02-21T00:52:28Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4372', '37', '6380', 'fix($animate): ensure that animateable directives cancel expired leave animations', 'If enter -> leave -> enter -> leave occurs then the first leave animation will\r\nanimate alongside the second. This causes the very first DOM node (the view in ngView\r\nfor example) to animate at the same time as the most recent DOM node which ends\r\nup being an undesired effect. This fix takes care of this issue.\r\n\r\nCloses #5886', '3', null, null, 'matsko', '2014-02-21T08:52:49Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4373', '37', '6381', 'docs(guide/$location): fix url-based links refs to AUTO module', 'Request Type: docs\n\nHow to reproduce: \n\nComponent(s): \n\nImpact: small\n\nComplexity: small\n\nThis issue is related to: \n\n**Detailed Description:**\n\nThe link does not work. \n\nI think at commit https://github.com/angular/angular.js/commit/a564160511bf1bbed5a4fe5d2981fae1bb664eca, this correction has been forgotten.\n\n**Other Comments:**\n\n', '1', null, null, 'forresst', '2014-02-21T08:55:37Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4374', '37', '6382', 'docs(guide/scope): fix url-based links refs to AUTO module', 'Request Type: docs\n\nHow to reproduce: \n\nComponent(s): \n\nImpact: small\n\nComplexity: small\n\nThis issue is related to: \n\n**Detailed Description:**\n\nThe links do not work. \n\nI think at commit https://github.com/angular/angular.js/commit/a564160511bf1bbed5a4fe5d2981fae1bb664eca, this correction has been forgotten.\n\n**Other Comments:**\n\n', '1', null, null, 'forresst', '2014-02-21T09:31:57Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4375', '37', '6383', 'docs(guide/i18n): fix url-based links refs to AUTO module', 'Request Type: docs\r\n\r\nHow to reproduce: \r\n\r\nComponent(s): \r\n\r\nImpact: small\r\n\r\nComplexity: small\r\n\r\nThis issue is related to: \r\n\r\n**Detailed Description:**\r\n\r\nThe links do not work. \r\n\r\nI think at commit https://github.com/angular/angular.js/commit/a564160511bf1bbed5a4fe5d2981fae1bb664eca, this correction has been forgotten.\r\n\r\n**Other Comments:**', '1', null, null, 'forresst', '2014-02-21T10:52:29Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4376', '37', '6384', 'improve $interval#cancel documentation, TODO add example usage', 'It seems like the last pull request messed with the documentation see :\r\n[[http://new.tinygrab.com/96acd8f458722475e407c9363ed3101f74ad366f12.PNG]]\r\nThis one is much better (copied from the ng/interval.js file); \r\nRelated to #6367 \r\nSorry for messing up :)', '1', null, null, 'SAFAD', '2014-02-21T11:22:01Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4377', '37', '6385', 'docs(guide/compiler): fix url-based links refs to AUTO module', 'Request Type: docs\r\n\r\nHow to reproduce: \r\n\r\nComponent(s): \r\n\r\nImpact: small\r\n\r\nComplexity: small\r\n\r\nThis issue is related to: \r\n\r\n**Detailed Description:**\r\n\r\nThe links do not work. \r\n\r\nI think at commit https://github.com/angular/angular.js/commit/a564160511bf1bbed5a4fe5d2981fae1bb664eca, this correction has been forgotten.\r\n\r\n**Other Comments:**', '1', null, null, 'forresst', '2014-02-21T11:30:16Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4378', '37', '6386', 'docs(guide/di): fix url-based links refs to AUTO module', 'Request Type: docs\r\n\r\nHow to reproduce: \r\n\r\nComponent(s): \r\n\r\nImpact: small\r\n\r\nComplexity: small\r\n\r\nThis issue is related to: \r\n\r\n**Detailed Description:**\r\n\r\nThe links do not work. \r\n\r\nI think at commit https://github.com/angular/angular.js/commit/a564160511bf1bbed5a4fe5d2981fae1bb664eca, this correction has been forgotten.\r\n\r\n**Other Comments:**', '1', null, null, 'forresst', '2014-02-21T11:33:19Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4379', '37', '6387', 'docs(tutorial/step_05): fix url-based links refs to AUTO module', 'Request Type: docs\r\n\r\nHow to reproduce: \r\n\r\nComponent(s): \r\n\r\nImpact: small\r\n\r\nComplexity: small\r\n\r\nThis issue is related to: \r\n\r\n**Detailed Description:**\r\n\r\nThe links do not work. \r\n\r\nI think at commit https://github.com/angular/angular.js/commit/a564160511bf1bbed5a4fe5d2981fae1bb664eca, this correction has been forgotten.\r\n\r\n**Other Comments:**', '1', null, null, 'forresst', '2014-02-21T11:36:13Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4380', '37', '6388', 'docs(tutorial/step_06): fix url-based links refs to AUTO module', 'Request Type: docs\r\n\r\nHow to reproduce: \r\n\r\nComponent(s): \r\n\r\nImpact: small\r\n\r\nComplexity: small\r\n\r\nThis issue is related to: \r\n\r\n**Detailed Description:**\r\n\r\nThe links do not work. \r\n\r\nI think at commit https://github.com/angular/angular.js/commit/a564160511bf1bbed5a4fe5d2981fae1bb664eca, this correction has been forgotten.\r\n\r\n**Other Comments:**', '1', null, null, 'forresst', '2014-02-21T11:37:40Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4381', '37', '6389', 'docs(tutorial/step_11): fix url-based links refs to AUTO module', 'Request Type: docs\r\n\r\nHow to reproduce: \r\n\r\nComponent(s): \r\n\r\nImpact: small\r\n\r\nComplexity: small\r\n\r\nThis issue is related to: \r\n\r\n**Detailed Description:**\r\n\r\nThe links do not work. \r\n\r\nI think at commit https://github.com/angular/angular.js/commit/a564160511bf1bbed5a4fe5d2981fae1bb664eca, this correction has been forgotten.\r\n\r\n**Other Comments:**', '1', null, null, 'forresst', '2014-02-21T11:39:21Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4382', '37', '6396', 'fix(ngAnimate): TypeError Cannot call method \'querySelectorAll\' in cancelChildAnimations', 'When element with ng-repeat has an ng-if directive and user try to remove any item from array used for ng-repeat, he gets error \"TypeError Cannot call method \'querySelectorAll\' of undefined\". This happens because in method cancelChildAnimations of ngAnimate directive not checked value returned from extractElementNode(element) method.\r\nFix add a validation for result of extractElementNode(element) method.\r\n\r\nCloses #6205', '3', null, null, 'matsko', '2014-02-21T16:58:27Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4383', '37', '6398', 'chore(examples): remove ancient examples from the tree', 'Let these poor scripts retire, goodness.', '1', null, null, 'caitp', '2014-02-21T19:33:19Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4384', '37', '6399', 'feat(sliceFilter): create slice filter - more powerful limitTo filter', 'Request Type: feature\r\n\r\nHow to reproduce: \r\n\r\nComponent(s): misc core\r\n\r\nImpact: small\r\n\r\nComplexity: small\r\n\r\nThis issue is related to: \r\n\r\n**Detailed Description:**\r\n\r\nThis creates a new filter that passes a string or array to native slice() method. This is be useful for pagination or extracting a portion of a string or array. It differs from the limitTo filter because limitTo only has one bound, a starting position. Creating a new filter is more intuitive and reflective of native Javascript rather than extending limitTo.\r\n\r\n**Other Comments:**\r\n\r\nIt should close issue #5355.\r\n\r\nIncludes passing tests and docs.', '8', null, null, 'gnomeontherun', '2014-02-21T20:03:15Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4385', '37', '64', 'CSS cleanup + image inlining', '', '2', null, null, 'IgorMinar', '2010-10-18T06:07:33Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4386', '37', '640', 'Improve ng style', 'Improved and unobtrusive ng:style', '7', null, null, 'dmanek', '2011-11-06T22:21:18Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4387', '37', '6401', 'fix(http): send GET requests by default', 'Not sure why we were not enforcing / defaulting a http request method... but here it is...\r\n\r\nFixes #5985\r\nCloses #6401', '5', null, null, 'pkozlowski-opensource', '2014-02-21T21:34:26Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4388', '37', '6402', 'chore(doc-app): ensure only canonical paths get sent to Google Analytics', '', '2', null, null, 'petebacondarwin', '2014-02-21T22:03:55Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4389', '37', '6405', 'chore(examples): remove final traces of examples from the tree', 'Apparently some example files were referenced in angularFiles.js, and this was\nmissed when 2f4513339337bb8aa6c9dfe1191d169b4fc57999 was checked in. This\ncleans it up.', '1', null, null, 'caitp', '2014-02-21T23:09:11Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4390', '37', '6406', 'chore(protractor-jenkins-config): don\'t use `this` inside onPrepare', 'The jenkins build was failing because onPrepare was not bound to the config object and so was not accessing the correct `this` object.', '1', null, null, 'petebacondarwin', '2014-02-22T12:15:53Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4391', '37', '6407', 'fix trivial format', 'Request Type: docs\r\n\r\nHow to reproduce: \r\n\r\nComponent(s): \r\n\r\nImpact: small\r\n\r\nComplexity: small\r\n\r\nThis issue is related to: \r\n\r\n**Detailed Description:**\r\n\r\nWhile this may be no big deal, I found some issues format style.\r\n\r\n\"CHANGELOG.md\" contain 2-space indent and tab indent.\r\n\r\n\"CONTRIBUTING.md\" contain wasted spaces.\r\n\r\n**Other Comments:**\r\n\r\nTruth be told, I want to do more great things for ruby, but because my ability clumsy yet, start with these ...!', '3', null, null, 'gogotanaka', '2014-02-22T18:00:56Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4392', '37', '6408', 'docs(ngPluralize): Corrected \"bounded to\" to \"bound to\"', '(not attaching a CLA since I work for Google)', '2', null, null, 'abahgat', '2014-02-22T20:24:08Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4393', '37', '6409', 'fix($resource): Apply request interceptors', 'Request Type: bug\n\nHow to reproduce: Apply request/requestError interceptors on a $resource. It will never get called\n\nComponent(s): ngResource\n\nImpact: small\n\nComplexity: small\n\nThis issue is related to: \n\n**Detailed Description:**\n\nngResource previously ignored \'request\' and \'requestError\' interceptors.\nI\'ve added the ability to use both with $resource, althought\nI\'m not sure when (or if) requestError is supposed to be fired.\nThis is also the reason why I didn\'t include any tests.\nI don\'t know what triggers a requestError.\n\n**Other Comments:**\n\n', '4', null, null, 'gitnik', '2014-02-22T22:08:03Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4394', '37', '6412', 'feat(ngMock): add flushByIndex function', 'Request Type: feature\n\nHow to reproduce: \n\nComponent(s): ngMock\n\nImpact: small\n\nComplexity: small\n\nThis issue is related to: \n\n**Detailed Description:**\n\nI\'ve recently needed to flush httpBackend requests in an arbitrary order to add unit tests around an edge case. This PR satisfies that need.\n\n**Other Comments:**\n\nAdds a flushByIndex function to allow pending requests on httpBackend to be flushed in an arbitrary\r\norder.', '8', null, null, 'atogata', '2014-02-23T04:26:29Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4395', '37', '6414', 'feat($parse): log rendering issues', 'Logs a warning in console when an angular expression contains an undefined key.\r\nfixes #6204\r\n\r\nThis a naïve attempt to solve the problem in the related issue, but that\'s a first step to launch a discussion (if you have any interest in improving this).\r\n\r\nI\'ve added a simple `$log.warn` (is it a good idea? what level should that be? should we have some kind of options to enable or disable it?) when an expression has an undefined object in its path. \r\n\r\nEven with this raw first implementation, it\'s doing a fine job on my projects and it\'s helping to find typos in expressions or unwanted null objects.\r\n\r\nExemple : \r\n\r\n {{ person.name }} // person is undefined in scope\r\n // will log in console\r\n [$parse] Key `name` cannot be resolved in expression `person.name` because parent object is null\r\n', '8', null, null, 'cexbrayat', '2014-02-23T10:24:55Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4396', '37', '6415', 'docs(routeProvider): Corrected \"slashs\" to \"slashes\"', 'Another small fix to the docs', '1', null, null, 'abahgat', '2014-02-23T15:11:35Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4397', '37', '6418', 'Sample code appears unformatted in $interpolate docs', 'Request Type: docs\n\nHow to reproduce: It can be seen at the top of http://docs.angularjs.org/api/ng/service/$interpolate\n\nComponent(s): $compile\n\nImpact: large\n\nComplexity: small\n\nThis issue is related to: \n\n**Detailed Description:**\n\nThe code was appearing unformatted\n\n**Other Comments:**\n\n', '2', null, null, 'escalant3', '2014-02-23T21:19:57Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4398', '37', '642', 'Injector20', '', '0', null, null, 'mhevery', '2011-11-07T19:09:46Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4399', '37', '6420', 'feat($parse): Getter/Setter functions as assignable expressions', 'Request Type: feature\r\n\r\nHow to reproduce: \r\n\r\nComponent(s): $parse\r\n\r\nImpact: \r\n\r\nComplexity: small\r\n\r\nThis issue is related to: \r\n\r\n**Detailed Description:**\r\n\r\nAllow a getter/setter function to be treated as an assignable expression\r\nby calling the function with `$value` in its argument list. It is\r\nassumed that functions called this way will follow the convention used\r\nby angular in its providers, where calling the function with no\r\narguments acts as a getter, and calling it with arguments acts as a\r\nsetter.\r\n\r\nExample:\r\n\r\n```html\r\n<input ng-model=\"name($value)\" />\r\n```\r\n\r\n```js\r\nvar name;\r\n$scope.name = function(newName) {\r\n if (newName === undefined) {\r\n return name;\r\n } else {\r\n name = newName;\r\n }\r\n}\r\n```\r\n\r\nIn addition to `$parse`, the modules most affected by this change are\r\n`ngModel`, and `$compile` (when adding a bi-directional binding to the\r\nscope by using `\'=\'`). Tests and documentation are included for those modules,\r\nin addition to `$parse`, with a full usage example in `ngModel.NgModelController`.\r\n\r\nThe overall goal is to better allow support for \"computed\" properties,\r\nand allow easier delegation between modules, without consuming code\r\nhaving to change or break encapsulation to bind to these values.\r\n\r\n**Other Comments:**\r\n\r\nAn alternative API would be to have this behavior happen automatically if\r\nthe bound expression evaluates to a function, which would allow\r\nconsuming code to simply write `<input ng-model=\"name\" />`, and not have\r\nto care about whether name is a property or a getter/setter function.\r\nWhile this would better follow the uniform access principle, it would\r\nintroduce a fair amount of magic, and could lead to unexpected behavior\r\nwith bi-directional bindings on directives.', '7', null, null, 'sgrif', '2014-02-23T22:58:31Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4400', '37', '6421', 'Potential fix for #6162', 'See #6162.\r\n\r\nAs noted in #6162, this fix is not ready to merge.\r\n', '10', null, null, 'richardcrichardc', '2014-02-23T23:11:21Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4401', '37', '6430', 'fix($animate): ensure all animated elements are taken care of during the closing timeout', 'Closes #6395', '5', null, null, 'matsko', '2014-02-24T19:54:02Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4402', '37', '6431', 'Incomplete code block on tutorial/step_12', 'Request Type: docs\n\nHow to reproduce: The last code block (app/css/animations.css) of tutorial/step_12 is incomplete.\n\nComponent(s): \n\nImpact: small\n\nComplexity: small\n\nThis issue is related to: \n\n**Detailed Description:**\n\nGo to http://docs.angularjs.org/tutorial/step_12 and scroll to the bottom of the page.\n\n**Other Comments:**\n\nThis prevent the page to be truncated (incomplete).', '8', null, null, 'hugueschabot', '2014-02-24T21:28:23Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4403', '37', '6434', 'chore(triaging.md): update triaging guidelines', 'I removed the complexity metric as suggested by this blog post on triaging:\r\nhttp://www.lostgarden.com/2008/05/improving-bug-triage-with-user-pain.html\r\n(see The temptation to assign cost)\r\n\r\nBig thanks to @ashleygwilliams and @davidjnelson for their help and feedback!', '25', null, null, 'btford', '2014-02-24T22:18:37Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4404', '37', '6437', 'async animations callbacks using rAF', '', '3', null, null, 'matsko', '2014-02-25T01:15:05Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4405', '37', '6438', 'Update concepts.ngdoc', 'Fixed a mistake, changed invoice to invoice2.', '0', null, null, 'adeelcap15', '2014-02-25T04:06:19Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4406', '37', '644', 'docs(ng:bind-attr): improve examples', '', '1', null, null, 'IgorMinar', '2011-11-08T06:50:03Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4407', '37', '6441', 'Update index.ngdoc', 'i have added another useful resource about integration of angular with django, hope this help', '2', null, null, 'maurovitale', '2014-02-25T10:45:48Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4408', '37', '6442', 'Changed attribute to property', 'Changed attribute to property', '7', null, null, 'speedyankur', '2014-02-25T13:50:01Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4409', '37', '6448', 'fix(jqLite): properly toggle multiple classes', 'Impl could be approached differently, I guess, but yeh, the issue is here as demonstrated by tests.\r\n\r\nFixes #4467', '7', null, null, 'pkozlowski-opensource', '2014-02-25T19:26:08Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4410', '37', '6452', 'Added get method to $q', 'This adds a nice utility method present in [Q](https://github.com/kriskowal/q/wiki/API-Reference#wiki-promisegetpropertyname) which will allow you to fetch a particular key\'s value from a resolved/rejected value of a promise.\r\n\r\nThis is useful for doing stuff like `$http.get(url).get(\'data\')` instead of having to do `$http.get(url).then(function(res) { return res.data; })`. In addition, we can do\r\n\r\n<pre>\r\npromise = foo.bar();\r\nnewPromise = promise.get(\'reallyreallyreallyreallyreallyreallyLongKey\')\r\n .then(moo);\r\nanotherPromise = promise.get(\'anotherreallyreallyreallyreallyreallyLongKey\')\r\n .then(foobar)\r\n .then(bar)\r\n .then(baz);\r\nreturn $q.all[newPromise, anotherPromise];\r\n</pre>', '9', null, null, 'wesleycho', '2014-02-26T14:40:16Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4411', '37', '6453', 'feat($interpolate): Add \'strictMode\' option on $interpolateProvider to tell $compileProvider not to denormalize directives template.', 'With this option set to true, the default symbols \'{{\' and \'}}\' are left as is in the templates, and only the startSymbol and endSymbol defined by the developer are used.', '12', null, null, 'frederic-bonjour', '2014-02-26T14:56:04Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4412', '37', '6459', 'fix($animate): only block keyframes if a stagger is set to occur', 'Transitions must be blocked so that the initial CSS class can be applied\r\nwithout triggering an animation. Keyframes do not need to be blocked since\r\nanimations are always triggered on the starting CSS class, however, if a\r\nstagger animation is set to occur then all elements for index > 0 should\r\nbe blocked. This is to prevent the animation from occuring early on before\r\nthe stagger delay for the given element has passed.\r\n\r\nWith ngAnimate and keyframe animations, IE10 and Safari will render a slight\r\nflicker effect caused by the blocking. This fix resolves this issue.\r\n\r\nCloses #4225\r\n\r\nView broken effect (Safari || IE10):\r\nhttp://bit.ly/keyframe-fail\r\n\r\nView fixed effect (Safari || IE10):\r\nhttp://bit.ly/keyframe-success', '10', null, null, 'matsko', '2014-02-26T18:53:32Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4413', '37', '646', 'fix(directives): make directive names case-insensitive', 'CI is green: http://ci.angularjs.org/job/angular.js-igor/310/', '1', null, null, 'IgorMinar', '2011-11-09T01:53:48Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4414', '37', '6462', 'fix($animate): ensure all comment nodes are removed during a leave animation', 'Closes #6403', '3', null, null, 'matsko', '2014-02-26T21:08:45Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4415', '37', '6464', '$storageFactory ', 'Test Pull Request, to check fork', '0', null, null, 'albert-cyberhulk', '2014-02-26T22:08:51Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4416', '37', '6465', 'Update infdig.ngdoc', 'Mention common cause of error is binding to a new array on every $digest loop.', '0', null, null, 'bradw2k', '2014-02-26T22:27:28Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4417', '37', '6467', 'docs(contribute): add table of contents to contributing doc', '- add linked list to top of document\r\n- add anchor elements to secondary headings\r\n\r\ncloses #6287', '1', null, null, 'ashleygwilliams', '2014-02-26T23:30:53Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4418', '37', '6469', 'Update injector.js documentation', 'Duplicate \'that\' words present in the document, just remove one of them.', '1', null, null, 'desertapple', '2014-02-27T00:55:59Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4419', '37', '6470', 'Typofixes 20140227', 'A few typofixes. Refering to https://github.com/angular/angular.js/pull/6265#issuecomment-36196160', '4', null, null, 'vlajos', '2014-02-27T09:28:19Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4420', '37', '6474', 'chore(docs): fix layout between 769px and 992px', 'Left nav and main content were tucked slightly under the version picker / breadcrumb navbar\r\n\r\n![angulardocs](https://f.cloud.github.com/assets/1153097/2283956/f793dcf4-9fc3-11e3-9b7b-ab5a947e16ac.PNG)\r\n\r\n', '5', null, null, 'Narretz', '2014-02-27T15:29:53Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4421', '37', '6475', 'docs(core): update fromJson return values', 'Dates are not returned, so remove Date from list of return values.\r\n\r\nCloses #3070', '1', null, null, 'linclark', '2014-02-27T16:07:26Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4422', '37', '6476', 'fix($animate): delegate down to addClass/removeClass if setClass is not found', 'Closes #6463', '12', null, null, 'matsko', '2014-02-27T16:26:58Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4423', '37', '6478', 'Update ngController.js', 'replaces this with $scope in second example that highlight the fact that we are using $scope instead of this', '1', null, null, 'nderoche', '2014-02-27T16:32:27Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4424', '37', '6480', 'fix($resource): functions in params should not be executed if overridden', '', '7', null, null, 'kilianc', '2014-02-27T17:47:53Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4425', '37', '6485', 'Update interval.js', 'Docs seemed to show `number` as the type of the parameter the cancel callback accepts when it seems to only accept a promise from the $interval service.', '0', null, null, 'MikeMcElroy', '2014-02-27T21:33:36Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4426', '37', '6486', 'docs(*): ensure jsdoc type expressions are valid', 'These changes are to coincide with the forthcoming change to dgeni-packages: https://github.com/angular/dgeni-packages/pull/10\r\n\r\nThere are a bunch of invalid jsdoc type expressions that will break if you use the new dgeni tagParser. This PR will fix those. Unfortunately, the docs will look wrong if we merge them before the new tagParser arrives.', '0', null, null, 'petebacondarwin', '2014-02-27T21:57:40Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4427', '37', '6489', 'feat($animate): animate dirty, pristine, valid, invalid for form/fields', 'Add css animations when form or field status change to/from dirty,\r\npristine, valid or invalid. This works like animation system present\r\nwith ngClass, ngShow, etc.\r\n\r\nCloses #5378', '4', null, null, 'matsko', '2014-02-28T05:04:43Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4428', '37', '649', 'I discovered that IE7 and IE8 throw a javascript error on delete window[...', 'I discovered that IE7 and IE8 throw a javascript error on \r\n\r\ndelete window[callbackId];\r\n\r\nThe specific IE7/8 error reported is:\r\nMessage: Object doesn\'t support this action\r\n\r\nDoesn\'t seem to be a problem in IE9, Chrome, or Firefox\r\nthanks guys, you rock!\r\n\r\n\r\n', '4', null, null, 'nateflink', '2011-11-10T21:21:49Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4429', '37', '6492', 'feature(style): expressions in style tags', 'Request Type: feature\n\nHow to reproduce: \n\nComponent(s): $compile\n\nImpact: small\n\nComplexity: small\n\nThis issue is related to: \n\n**Detailed Description:**\n\nData-binding for style tag doesn\'t work (see style.js, terminal:true). Setting terminal to false in the directive will enable data-binding. Test provided.\n\n**Other Comments:**\n\nEnable data-binding for style tags\r\n\r\ncloses #2387', '7', null, null, 'SekibOmazic', '2014-02-28T11:47:23Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4430', '37', '6493', 'fix($compile): prevent inlined JSON values in directive templates from being broken by a wrong replacement of \'}}\' with the user-defined endSymbol.', 'Request Type: bug\r\n\r\nHow to reproduce:\r\n\r\n1. Change the *startSymbol* and *endSymbol* in *$interpolateProvider*.\r\n2. Put this inside a Directive template:\r\n```\r\n<div data-context=\'{\"context\":{\"id\":3,\"type\":\"page\"}}\">\r\n```\r\nResult: the \'}}\' at the end of the embedded JSON data gets transformed to the endSymbol defined by the developer.\r\n\r\nComponent(s): $compile\r\n\r\nImpact: small\r\n\r\nComplexity: medium\r\n\r\nThis issue is related to: \r\n\r\n**Detailed Description:**\r\n\r\n\r\n\r\n**Other Comments:**\r\n\r\nDiscussion about this in a previous PR: https://github.com/angular/angular.js/pull/6453', '7', null, null, 'frederic-bonjour', '2014-02-28T14:37:43Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4431', '37', '6496', 'fix($sniffer): add window.document to \'document\' assignment search tree', 'Unit tests were failing for my custom directive that had a text input with an ng-model attribute. The error was that document had no \'createElement\' function. Debugging revealed that the document object was using the empty object in the \'document\' assignment search tree. Adding window.document prior to that option fixed the issue and I don\'t think there\'s any downside to using \'window\' here since you\'re already assuming a browser. There was no functional problem in the usage of my app itself--this only occurred during unit testing in the Karma/Jasmine environment.', '4', null, null, 'bbrown', '2014-02-28T18:52:54Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4432', '37', '6498', 'Added information about the ternary if', 'Request Type: docs\n\nHow to reproduce: \n\nComponent(s): $parse\n\nImpact: large\n\nComplexity: small\n\nThis issue is related to: \n\n**Detailed Description:**\n\nThere was no information in the docs that you can use ternary if operator in angular expressions.\n\n**Other Comments:**\n\nI\'ve added information that ternary if can be used in expressions, since it was missing.', '5', null, null, 'maciek134', '2014-03-01T00:42:59Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4433', '37', '650', 'Upgrade to jquery 1.7', '', '3', null, null, 'dmanek', '2011-11-12T00:22:13Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4434', '37', '6500', 'docs(migration): note that services can now return functions', 'Request Type: docs\n\nHow to reproduce: \n\nComponent(s): misc core\n\nImpact: small\n\nComplexity: small\n\nThis issue is related to: \n\n**Detailed Description:**\n\nnoting breaking change in 1.2 where services need to correctly return the object or function it desires. \n\nThe change mostly effects preprocessed javascript, though javascript nonetheless.\n\nReferences https://github.com/angular/angular.js/commit/c22adbf160f32c1839fbb35382b7a8c6bcec2927\n\n**Other Comments:**\n\n', '9', null, null, 'wbyoko', '2014-03-01T02:09:12Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4435', '37', '6501', 'feat(bidi): Add bidirectional text support', 'This adds bidirectional text support to interpolations (`{{...}`),\r\n`ng-bind`, `ng-bind-html`, `ng-bind-template` and `ng-model`.\r\n\r\nThe main part of the implementation is copied from Google Closure Library.\r\n\r\nTodo: Add docs!', '3', null, null, 'tbosch', '2014-03-01T02:16:18Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4436', '37', '6502', 'Update btstrpd.ngdoc', 'Ran into this error and the documentation wasn\'t helpful, ended up finding I\'d loaded AngularJS scripts twice. This addition would have solved my problem.', '2', null, null, 'amagee', '2014-03-01T03:53:23Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4437', '37', '6504', 'fix($http): don\'t covert 0 status codes to 404 for non-file protocols', 'PR #5547 introduced conversion of all 0 status codes to 404 for cases\r\nwhere no response was recieved (previously this was done for the\r\nfile:// protocol only). But this mechanism is too eager and\r\nmasks legitimate cases where status 0 should be returned. This commits\r\nreverts to the previous mechanism of handling 0 status code for the\r\nfile:// protocol (converting 0 to 404) while retaining the returned\r\nstatus code 0 for all the protocols other than file://\r\n\r\nFixes #6074\r\nFixes #6155', '7', null, null, 'pkozlowski-opensource', '2014-03-01T12:13:31Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4438', '37', '6507', 'feat($browser): add cookie options plus ability to skip encoding', 'This change will add the expires, path, domain, and secure options for persisting cookies.\r\nIt will also add the ability to skip encoding of cookie name and value.\r\n\r\nThis change will not alter the existing API behavior.\r\nInstead it will expose the new behavior in two new methods.\r\n\r\nThere is a smaller changeset for a subset of the work done in this pull request here: #6335\r\n\r\nIn addition to #6335, this pull request:\r\n- Adds a separate API that the existing cookies method utilizes\r\n- Adds an option to skip encoding for cookie name and value\r\n- Adds additional unit tests to verify new behavior\r\n\r\nThis pull request would replace the need for #6335\r\n\r\nCloses #950', '5', null, null, 'longoria', '2014-03-01T20:16:52Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4439', '37', '6508', 'feat(filterFilter): support filterFilter for object literal collection', 'Request Type: feature\r\n\r\nHow to reproduce: Feed an object literal into an ngRepeat to loop over its properties with a filter in use, as shown here: http://plnkr.co/edit/mMvAgQgILcBVkbT2q4z4?p=preview\r\n\r\nComponent(s): misc core\r\n\r\nImpact: small\r\n\r\nComplexity: small\r\n\r\nThis issue is related to: \r\n\r\n**Detailed Description:**\r\n\r\nI switched the primary filterFilter iteration method to one that supports both array and object literal collections and added tests for the object version.\r\n\r\n**Other Comments:**\r\n\r\nfilterFilter was previously only available to array/array-like collections,\r\nbut ngRepeat supports iterating over object literals. This PR enables\r\nfiltering functionality over object literal properties.\r\n\r\nFixes #6490', '17', null, null, 'yaycmyk', '2014-03-02T01:00:53Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4440', '37', '6509', 'Added backslash escapes for asterisks', 'added Markdown backslash escapes for asterisks in Conceptual Overview sample code so that reader can copy and paste these code.', '5', null, null, 'enfk', '2014-03-02T01:17:59Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4441', '37', '651', 'Fix docs - guide $location example', '', '3', null, null, 'vojtajina', '2011-11-12T01:47:53Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4442', '37', '6511', 'feat($q): manage bulk promises as a promise', 'As $q.all() reject with a first rejected promise, $q.some() proceed execution until all promises\r\nare rejected or resolved. It can be useful for independent bulk promises.\r\n\r\nNo breaking changes.', '16', null, null, 'Teremok', '2014-03-02T04:03:57Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4443', '37', '6512', 'Fixed \"Back to Top\" link bug', 'Fixed bug where clicking Back to top was not actually taking you to the ...\r\n\r\nhttps://github.com/angular/angular.js/issues/6499', '6', null, null, 'deini', '2014-03-02T08:48:16Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4444', '37', '6515', 'fix(select): reset select model if valid options changed by ng-options', 'Request Type: bug\n\nHow to reproduce: select model not reset if valid options changed by ng-options #6379\n\nComponent(s): forms\n\nImpact: small\n\nComplexity: small\n\nThis issue is related to: \n\n**Detailed Description:**\n\nselect model not reset if valid options changed by ng-options #6379\n\n**Other Comments:**\n\nPreviously, changing the available options so the current model value was no longer valid would show no selection in the UI\r\nThe model value would still be the old value.\r\n\r\nCloses #6379\r\n\r\nFeedback welcome!', '4', null, null, 'manuel-woelker', '2014-03-02T15:53:38Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4445', '37', '6516', 'Added ng-app to First example: Data binding', 'Attempt at clearing confusion https://github.com/angular/angular.js/issues/6482', '2', null, null, 'deini', '2014-03-02T19:23:49Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4446', '37', '6519', 'fix(select): normalize options without value attrs', 'In order to fix #6351 I\'m submitting this changes based on @caitp comments.\r\nNote that the [commented expectation](https://github.com/cironunes/angular.js/blob/faeca99fddf40a277489a2ce9d3783904768422f/test/ng/directive/selectSpec.js#L169) is returning ```[[\"? undefined:undefined ?\"],\"--select--\",\"x\",\"y\"]``` is it expected?', '11', null, null, 'cironunes', '2014-03-02T22:40:22Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4447', '37', '652', 'WIP: Scroll to anchor', 'We need to find a name for this service...\r\n\r\nIt\'s actually only the last commit, I put it on the top of Misko\'s branch...', '1', null, null, 'vojtajina', '2011-11-14T18:57:31Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4448', '37', '6521', 'fixed typo', 'Request Type: docs\n\nHow to reproduce: \n\nComponent(s): \n\nImpact: small\n\nComplexity: small\n\nThis issue is related to: \n\n**Detailed Description:**\n\njust a typo -.-\"\n\n**Other Comments:**\n\nduplicate \"the\"', '2', null, null, 'nesQuick', '2014-03-02T23:46:46Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4449', '37', '6522', 'Prevent duplicate $digest calls', 'Hello. Having some trouble here with a Jasmine test...\r\n\r\nI\'m testing an API service that uses ```$http```, and mocking the backend with ```$httpBackend```.\r\n\r\nThe test looks like this:\r\n\r\n```javascript\r\n/// api.js\r\n\r\n.\r\n.\r\n.\r\n\r\ndescribe(\'API #get()\', function () {\r\n\r\n afterEach(function () {\r\n $httpBackend.verifyNoOutstandingRequest();\r\n $httpBackend.verifyNoOutstandingExpectation(); // LINE 33\r\n });\r\n\r\n it(\'should return something falsy when the server does\', function (done) {\r\n $httpBackend.expect(\'GET\', \'http://api.example.com/\')\r\n .respond({\r\n \'code\': \'200\',\r\n \'data\': {\r\n \'valid\': false\r\n }\r\n });\r\n\r\n API.get()\r\n .then(function (valid) {\r\n expect(valid).toBeFalsy();\r\n done(); // LINE 52\r\n });\r\n\r\n $httpBackend.flush(); // LINE 55\r\n });\r\n\r\n });\r\n\r\n});\r\n\r\n.\r\n.\r\n.\r\n```\r\n\r\nAnd here\'s the stack trace. I labeled the notable lines in ```api.js``` above with a comment.\r\n\r\n```\r\n Error: [$rootScope:inprog] $digest already in progress\r\n http://errors.angularjs.org/1.2.12/$rootScope/inprog?p0=%24digest\r\n at beginPhase (.../app/bower_components/angular/angular.js:12290)\r\n at .../app/bower_components/angular/angular.js:11792\r\n at .../app/bower_components/angular-mocks/angular-mocks.js:1484\r\n at .../test/spec/services/api.js:33\r\n at .../test/spec/services/api.js:52\r\n at .../app/bower_components/angular/angular.js:10965\r\n at .../app/bower_components/angular/angular.js:11051\r\n at .../app/bower_components/angular/angular.js:11977\r\n at .../app/bower_components/angular/angular.js:11803\r\n at .../app/bower_components/angular/angular.js:12083\r\n at done (.../app/bower_components/angular/angular.js:7841)\r\n at handleResponse (.../app/bower_components/angular-mocks/angular-mocks.js:1130)\r\n at .../app/bower_components/angular-mocks/angular-mocks.js:1461\r\n at .../test/spec/services/api.js:55\r\n```\r\n\r\nThe change that I\'m PRing seems to fix everything (hopefully!), but I\'m sure the experts have something different to say... (I\'m doing this all wrong?)\r\n\r\nThanks for your time!', '19', null, null, 'hollingberry', '2014-03-03T03:56:56Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4450', '37', '6531', 'docs(guide/*): make them better', 'This PR most notably merges all forty-three explanations of how DI annotations work that were previously scattered across the docs into the `guide/services` page. It also combines all the `services` guide pages into a single, concise page.', '8', null, null, 'btford', '2014-03-03T20:57:21Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4451', '37', '6533', 'docs(guide/forms): remove unnecessary controller reference', 'Request Type: docs\n\nHow to reproduce: Go to http://docs.angularjs.org/guide/forms, then Custom Validation -> the example does not work at all\n\nComponent(s): \n\nImpact: \n\nComplexity: \n\nThis issue is related to: \n\n**Detailed Description:**\n\nThe controller reference was breaking the custom validation example. Interestíngly, in 1.13 the example worked on the docs page, but was broken in the plunker example.\n\n**Other Comments:**\n\nCloses #6525', '2', null, null, 'Narretz', '2014-03-03T21:26:20Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4452', '37', '6534', 'fix($http): resolve cached requests with the proper config when hitting a cached promise', 'If an $http request is cached but not yet resolved, and a second request is made to the same\r\nURL; be sure to resolve the second request\'s promise with the second request\'s config object.\r\n\r\nThe way I read the current docs on $http, the original behavior is not described, so\r\nthis does not introduce any backwards compatibility concerns.\r\n\r\nMy use case is to communicate between interceptors on either side of the same request using data stashed in the config object. Since the interceptors are initialized once by the injector I don\'t see a good way to store the data in a closure instead. This behavior seems more consistent anyway, since the non-cached and cached-and-resolved cases both work as expected.', '6', null, null, 'mfield', '2014-03-04T05:03:42Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4453', '37', '6537', 'Update step_08.ngdoc', 'In line 110, it should be <li>, not </li>.', '3', null, null, 'bernardcheng', '2014-03-04T12:03:32Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4454', '37', '6538', 'Removing unnecessary white spaces in lib/grunt/utils.js', 'Request Type: refactor\r\n\r\nHow to reproduce:\r\n\r\nComponent(s): misc core\r\n\r\nImpact: small\r\n\r\nComplexity: small\r\n\r\nThis issue is related to:\r\n\r\n#### Detailed Description:\r\n\r\nI removed unnecessary white space in lib/grunt/utils.js\r\n\r\n#### Other Comments:\r\n\r\nI\'m not sure this change is suitable for PR. because the change like this is easily done with repo owners without PR). \r\nSo if this PR is not suitable for angular, please close this. Only I hope improving code quality of angular.js ', '3', null, null, 'takashi', '2014-03-04T12:26:39Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4455', '37', '6540', 'fix (ngAnimate $rAF): fix requestAnimationFrame for old version of Firefox', 'Request Type: bug\n\nHow to reproduce: Load a page with Angular >= 1.2.14 and ngAnimate >= 1.2.14 on a old version of Firefox (20 for example)\n\nComponent(s): ngAnimate\n\nImpact: small\n\nComplexity: small\n\nThis issue is related to: \n\n**Detailed Description:**\n\nThe recent $$RAFProvider which is a wrapper for the native\nrequestAnimationFrame method doesn\'t use the mozRequestAnimationFrame.\nOld versions of FF (20 for example) crash if ngAnimate is included\n\n**Other Comments:**\n\nNo breaking changes and fix issue https://github.com/angular/angular.js/issues/6535', '1', null, null, 'atomrc', '2014-03-04T16:37:22Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4456', '37', '6541', 'fix(ngAnimate): setting classNameFilter disables animation inside ng-if', 'Request Type: bug\n\nHow to reproduce: http://plnkr.co/edit/ylFiapyRcSErWC0aC0L0?p=preview\n\nComponent(s): ngAnimate\n\nImpact: small\n\nComplexity: medium\n\nThis issue is related to: \n\n**Detailed Description:**\n\n$animate.enter disables all animations on children while the element is being \'animated into\' the document. If classNameFilter is set, animations on children are never re-enabled. This fixes that.\n\n**Other Comments:**\n\nCloses #6539', '8', null, null, 'r3m0t', '2014-03-04T16:42:54Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4457', '37', '6542', 'fix($$RAFProvider): check for webkitCancelRequestAnimationFrame.', 'Request Type: bug\n\nHow to reproduce: Use AngularJS 1.2.14 together with ngAnimate in Cordova/PhoneGap WebView on Android 4.3\n\nComponent(s): ngAnimate\n\nImpact: small\n\nComplexity: small\n\nThis issue is related to: \n\n**Detailed Description:**\n\nRAFProvider is checking for `cancelAnimationFrame` and `webkitCancelAnimationFrame` ( see https://github.com/angular/angular.js/blob/04d7317cdd95ba00783389f89f6e9a7e1fc418f8/src/ng/raf.js#L8 )\nFor Android 4.3 we need to check for `webkitCancelRequestAnimationFrame` too, otherwise the animations will fail.\n\n**Other Comments:**\n\nNo breaking changes, closes #6526', '15', null, null, 'Traxmaxx', '2014-03-04T17:58:44Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4458', '37', '6544', 'style: enable jscs requireLeftStickedOperators rule', 'Request Type: \n\nHow to reproduce: \n\nComponent(s): \n\nImpact: small\n\nComplexity: small\n\nThis issue is related to: \n\n**Detailed Description:**\n\nEnable the **jscs** `requireLeftStickedOperators` rule.\n\n**Other Comments:**\n\nSome attribute comments have been moved from\n\n , true /* restrictBrowers */ ,\n\nto \n\n , /* restrictBrowers */ true,', '7', null, null, 'TimotheeJeannin', '2014-03-04T19:45:34Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4459', '37', '655', 'fix(radio): fix binding to value={{exp}}', '', '0', null, null, 'mhevery', '2011-11-15T19:06:16Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4460', '37', '6550', 'Fix documentation for ng-submit', 'Request Type: docs\n\nHow to reproduce: \n\nComponent(s): misc core\n\nImpact: small\n\nComplexity: small\n\nThis issue is related to: \n\n**Detailed Description:**\n\nCurrently the documentation for ng-submit is incorrect - it does not prevent the default action from happening. This fixes that problem.\n\n**Other Comments:**\n\n', '3', null, null, 'wesleycho', '2014-03-05T13:48:08Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4461', '37', '6551', 'directive.ngdoc typo fix', '', '3', null, null, 'tonybergeron', '2014-03-05T17:06:56Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4462', '37', '6552', 'docs(ngRoute): change routes property type to correct one', 'Request Type: docs\n\nHow to reproduce: go to http://docs.angularjs.org/api/ngRoute/service/$route in the **Properties** section > **routes**\n\nComponent(s): ngRoute\n\nImpact: \n\nComplexity: \n\nThis issue is related to: \n\n**Detailed Description:**\n\ndocumentation for ngRoute says that routes property should be an Array of Objects, but instead it is an Object with Objects as properties\n\n**Other Comments:**\n\n', '2', null, null, 'doodeec', '2014-03-05T17:36:19Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4463', '37', '6553', 'Add function parameters', 'For greater clarity.', '3', null, null, 'frisvold', '2014-03-05T17:51:42Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4464', '37', '6555', 'chore(publish.sh): publish to all serving backends', '', '2', null, null, 'chirayuk', '2014-03-05T19:21:20Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4465', '37', '6556', 'Fixed a typo in forms.ngdoc', '', '2', null, null, 'mgerstenblatt', '2014-03-05T20:52:00Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4466', '37', '6557', 'Clean up typos in new guide/services.ngdoc', 'Request Type: docs\r\nComplexity: small', '3', null, null, 'zakj', '2014-03-05T21:16:42Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4467', '37', '656', 'fix(input): treat all not number model as blank', '', '1', null, null, 'mhevery', '2011-11-15T19:21:35Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4468', '37', '6560', 'chore(build): remove IE8 target from all test configs', 'BREAKING CHANGE: As communicated before, IE8 is no longer supported.\r\n\r\nmore info: http://blog.angularjs.org/2013/12/angularjs-13-new-release-approaches.html', '3', null, null, 'IgorMinar', '2014-03-06T00:46:43Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4469', '37', '6561', '$cacheFactory Documentation Example', 'Request Type: docs\n\nHow to reproduce: \n\nComponent(s): misc core\n\nImpact: small\n\nComplexity: small\n\nThis issue is related to: \n\n**Detailed Description:**\n\nUpdated the $cacheFactory documentation to include a working example.\n\n**Other Comments:**\n\n', '3', null, null, 'tewen', '2014-03-06T01:49:00Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4470', '37', '6562', 'Docs($log): $log and $logProvider documentation improvement', 'Request Type: docs\r\n\r\nHow to reproduce:\r\n\r\nComponent(s): misc core\r\n\r\nImpact: small\r\n\r\nComplexity: small\r\n\r\nThis issue is related to:\r\n\r\n##### Detailed Description:\r\n\r\nDetails of the $log service and $logProvider provider added. \r\n\r\n##### Other Comments:', '1', null, null, 'pabloalonsos', '2014-03-06T02:04:38Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4471', '37', '6563', 'Improved $controller documentation to include an example for use.', 'Request Type: docs\n\nHow to reproduce: \n\nComponent(s): misc core\n\nImpact: small\n\nComplexity: small\n\nThis issue is related to: \n\n**Detailed Description:**\n\n$controller had no working examples, this is just a good look at how it can be used in other places at runtime to create controllers.\n\n**Other Comments:**\n\n', '5', null, null, 'tewen', '2014-03-06T02:27:48Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4472', '37', '6568', 'Minor fixes for Services documentation page', '', '3', null, null, 'moroshko', '2014-03-06T04:07:33Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4473', '37', '6569', 'feat(directive): ngName', 'Request Type: feature\n\nHow to reproduce: \n\nComponent(s): forms\n\nImpact: medium\n\nComplexity: small\n\nThis issue is related to: \n\n**Detailed Description:**\n\nHandle evaluation of angular expressions for control names. Create a directive that sets the element\'s name as well as the control\'s name, prior to the control being added to the form.\n\n**Other Comments:**\n\nCurrently there are multiple pull requests for an end result that it seems multiple people want - an evaluated control name. Doing so through binding causes issues with maintaining the adding and removing of controls to their parent. Most (if not, all) open issues on this subject make changes to the NgModelController. I approached it this way to avoid making any changes in existing controllers or directives (so this is a genuine \"new\" feature) and prevents changes on the expression from mucking up the controls.\r\n\r\nThe NgModelController is instantiated prior to the markup being compiled. So currently the following will not work either:\r\n```html\r\n<input type=\"text\" ng-model=\"something\" name=\"{{ myControl }}\">\r\n```\r\n\r\nThe `name` attribute will be set on the element, however the `$name` property on the controller would be `\"{{ myControl }}\"`.\r\n\r\nThis commit accomplishes the task through the use of a directive. Consider the following markup:\r\n```html\r\n<input type=\"text\" ng-model=\"something\" ng-name=\"myControl\">\r\n```\r\n\r\nWhere the scope expressions may be:\r\n```javascript\r\nscope.something = 123;\r\nscope.myControl = \"testControl\";\r\n```\r\n\r\nThe order we are concerned with is getting the `$name` property on the NgModelController for this control to be `\"testControl\"` and equally importantly, prior to the control being added to the parent form (if it exists).\r\n\r\nThis directive jumps in between the NgModelController instantiation and the ngModel linking function to set the `name` attribute and property and the `$name` controller property, prior to the control being added.\r\n\r\nSo, for a final example, if you wanted to build your form with `ng-repeat` using a data model:\r\n```html\r\n<form name=\"thisForm\">\r\n <div ng-repeat=\"c in controls\">\r\n <input type=\"text\" ng-model=\"c.val\" ng-name=\"\'control\' + c.code\" required><br>\r\n <span>True or false, am I $valid? - \r\n <b ng-bind=\"thisForm.{{ \'control\' + c.code }}.$valid\"></b>\r\n </span>\r\n </div>\r\n</form>\r\n<div>\r\n thisForm.controlA1.$valid = {{ thisForm.controlA1.$valid }}\r\n ...\r\n```\r\n```javascript\r\nscope.controls = [\r\n {\r\n code: \'A1\',\r\n val: \'\'\r\n },\r\n {\r\n code: \'B2\',\r\n val: \'\'\r\n },\r\n {\r\n code: \'C1\',\r\n val: \'\'\r\n }\r\n];', '20', null, null, 'sjbarker', '2014-03-06T04:13:49Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4474', '37', '6570', 'Add function parameters', 'For greater clarity. There is a ambiguity between the user param in the function and \"var user\" that I hope gets clarified as well.\r\n\r\nThis is a resubmit of #6553 from my personal account. I have also signed the CLA.', '4', null, null, 'tarjei', '2014-03-06T07:14:27Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4475', '37', '6573', 'fix($location): remove query args when passed in object', 'Request Type: \n\nHow to reproduce: \n\nComponent(s): $location\n\nImpact: small\n\nComplexity: small\n\nThis issue is related to: \n\n**Detailed Description:**\n\nPlease read the description from the issue #6565\n\n**Other Comments:**\n\nQuery args will be removed from $location search object if they are passed in as null or undefined object properties.\n\nUses Object.keys() to fix the bug so it will not work for IE8\n\ncloses #6565', '7', null, null, 'SekibOmazic', '2014-03-06T11:43:12Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4476', '37', '6578', 'feat(testing): include iOS and Android Browser for unit testing', 'We currently have no coverage for mobile browsers, including tablets. This updated config will include\r\ntesting for iOS 6.0 and 7.0 (iPhone) and Android Jelly Bean (4.3) via Sauce Labs WebDriver.', '13', null, null, 'yaycmyk', '2014-03-06T17:03:22Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4477', '37', '6579', 'feat(input): support types date, time, datetime-local, month, week', 'On older browser that don\'t support the new HTML5 inputs\r\nand display a text input instead, the user is required to enter\r\nthe data in the corresponding ISO format. The value in `ng-model`\r\nwill always be a date.\r\n\r\nE2e tests contain a workaround to a bug in webdriver,\r\nsee https://github.com/angular/protractor/issues/562.\r\n\r\nAlso adds weeks as format to the `dateFilter`.\r\n\r\nRelated to #757.\r\nCloses 5864.', '2', null, null, 'tbosch', '2014-03-06T19:01:10Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4478', '37', '658', 'Two NaN should be treated equal in digest cycle to prevent infinite recursion', '', '1', null, null, 'Codier', '2011-11-16T01:57:45Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4479', '37', '6582', 'Error thrown in xhr.onreadystatechange when javascript execution is suspended/resumed on iOS', 'Request Type: bug\n\nHow to reproduce: On iOS, javascript execution is suspended when user switches to another tab in browser, closes browser, performs back/forward using swipe gestions.\nIn our application, if http request is occurred when javascript execution is suspended/resumed, sometimes (apprx one time per dozen tries) the following error is thrown:\n\nTypeError: \'null\' is not an object (evaluating \'xhr.readyState\')\n\n src/ng/httpBackend.js\n xhr.onreadystatechange = function() {\n if (xhr.readyState == 4) { // Error is thrown in this line\nDebugging showed that xhr.onreadystatechange was invoked several times with readyState=4. On the first invocation xhr was nullified in completeRequest function, and then, on subsequent invocations, error was thrown.\n\nUnfortunately, I could not reproduce the problem in small example. But I found that jQuery and Zepto have appropriate guards. Please see, for example, madrobby/zepto#633\n\nComponent(s): $http\n\nImpact: large\n\nComplexity: small\n\nThis issue is related to: \n\n**Detailed Description:**\n\nIn certain cases Webkit will call the onreadystatechange method of a single XMLHttpRequest object multiple times indicating that it is ready (readyState == 4).\n\n**Other Comments:**\n\nThe actual approach didn\'t work. I took the Zepto.js approach (see: https://github.com/madrobby/zepto/pull/633).\r\n\r\nIn addition to manual and unit tests, I run a angular website with 250k unique visitor a day, I tested this patch there using getsentry.com and got no erros.\r\n\r\nSee: #5426', '6', null, null, 'peleteiro', '2014-03-06T22:16:57Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4480', '37', '6584', 'fix(sanitizeUri): Allow blob images', 'Closes #6581', '3', null, null, 'gsklee', '2014-03-07T00:00:12Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4481', '37', '6585', 'Issue ##3078 Updating search.js', 'Request Type: docs\n\nHow to reproduce: \n\nComponent(s): \n\nImpact: small\n\nComplexity: small\n\nThis issue is related to: \n\n**Detailed Description:**\n\nThe issue mentioned that searching the docs for fewer than 4 letters didn\'t return results and wasn\'t effective for searching smaller topics such as $q or ngIf. The docs were updated to fewer than 3 but this still doesn\'t include $q. The anchor tag directive still doesn\'t show up when the user searches for \"a\" however.\n\n**Other Comments:**\n\nSearching for the anchor tag directive doesn\'t work when searching \"a\" but searching \"q\" returns $q as a result.', '5', null, null, 'jarrettch', '2014-03-07T00:01:33Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4482', '37', '6588', 'docs(css): Fix word breaks issue in <pre>', 'Closes #6586', '2', null, null, 'gsklee', '2014-03-07T01:01:10Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4483', '37', '659', 'rake package is missing browser.js', 'Just noticed angularFiles.js mentioned src/service/browser.js, but the actual file is Browser.js in master head.\r\n\r\nNot really worth a separate commit though', '3', null, null, 'TEHEK', '2011-11-16T21:12:44Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4484', '37', '6590', 'Update concepts.ngdoc', 'Request Type: docs\n\nHow to reproduce: \n\nComponent(s): \n\nImpact: \n\nComplexity: small\n\nThis issue is related to: \n\n**Detailed Description:**\n\n\n\n**Other Comments:**\n\nChanges the reference to the service being discussed as no controllers with factory functions are used in this example', '2', null, null, 'jsouthard', '2014-03-07T03:20:19Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4485', '37', '6591', 'Link update for Jasmine', 'Jasmine doesn\'t live at the replaced link anymore. It has a link to click through, but I figured it would be better to just go directly to the correct location.', '4', null, null, 'edhedges', '2014-03-07T03:50:09Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4486', '37', '6593', 'fix(sanitizeUri): Allow references to WP8 Isolated Storage', 'Request Type: feature\n\nHow to reproduce: \n\nComponent(s): $compile\n\nImpact: small\n\nComplexity: small\n\nThis issue is related to: \n\n**Detailed Description:**\n\nMake generated links in Angular apps packaged with Apache Cordova work out of the box without requiring the app programmer to explicitly set img/aHref-SanitizationWhitelists on the $compileProvider. Also avoids the hassle of keeping these explicit whitelists in sync with the Angular default if that is upgraded in newer versions of Angular\n\n**Other Comments:**\n\nFixes the original reporters problem in #2303 (I think)', '3', null, null, 'jrftrifork', '2014-03-07T14:43:15Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4487', '37', '6595', 'Removed unnecessary white spaces', 'Request Type: refactor\r\n\r\nHow to reproduce:\r\n\r\nComponent(s): misc core\r\n\r\nImpact: small\r\n\r\nComplexity: small\r\n\r\nThis issue is related to:\r\n\r\n#### Detailed Description:\r\n\r\nI removed unnecessary white spaces\r\n\r\n#### Other Comments:\r\n\r\nAfter #6538 I researched all files which has unnecessary white spaces and I think this PR will covers all of these. \r\nI\'m not sure this change is suitable for PR. because the change like this is easily done with repo owners without PR). \r\nSo if this PR is not suitable for angular, please close this. Only I hope improving code quality of angular.js ', '4', null, null, 'takashi', '2014-03-07T17:07:18Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4488', '37', '6598', 'perf($interpolate/$compile): port optimization from dart', 'Motivated by [#4556 (comment)](https://github.com/angular/angular.js/pull/4556#issuecomment-35121623)\r\n\r\nMore info about the optimization can be found in that PR.\r\n\r\n**Brief description:**\r\nThis PR makes that given text like:\r\n`{{a}} text {{b}}`\r\nInstead of computing the whole string on each digest for dirty-checking,\r\nWe watch each expression individually, and only concatenate stuff when something changes.\r\n\r\nTo accomplish this, we use [`$scope.$watchSet`](https://github.com/angular/angular.dart/blob/4bf9447cc64650d6c73b66c844fb5396b4a2ae27/lib/core/scope.dart#L278). It has been implemented in AngularDart, but has been removed recently in favor of the change_detection lib\r\n\r\nEdit: Travis tests are failing because npm failed? I\'ll try to have travis run again tomorrow', '9', null, null, 'rodyhaddad', '2014-03-07T18:10:33Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4489', '37', '6599', 'docs(css): RegExp doesn\'t have .type-hint-regexp class', 'Request Type: docs\n\nHow to reproduce: Please see the description of the issue #6596\n\nComponent(s): \n\nImpact: small\n\nComplexity: small\n\nThis issue is related to: \n\n**Detailed Description:**\n\n\n\n**Other Comments:**\n\ntype-hint-regexp gets a nice color\r\n\r\ncloses #6596', '3', null, null, 'SekibOmazic', '2014-03-07T18:11:15Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4490', '37', '6604', 'Update directive.ngdoc', 'Request Type: \n\nHow to reproduce: \n\nComponent(s): \n\nImpact: small\n\nComplexity: small\n\nThis issue is related to: \n\n**Detailed Description:**\n\n\n\n**Other Comments:**\n\nTypo fixed', '2', null, null, 'SekibOmazic', '2014-03-07T21:07:16Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4491', '37', '6605', 'Update migration.ngdoc', 'Request Type: \n\nHow to reproduce: \n\nComponent(s): \n\nImpact: small\n\nComplexity: small\n\nThis issue is related to: \n\n**Detailed Description:**\n\n\n\n**Other Comments:**\n\nA few typos fixed.', '2', null, null, 'SekibOmazic', '2014-03-07T21:26:31Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4492', '37', '6606', 'Update ngBind.js', 'Request Type: \n\nHow to reproduce: \n\nComponent(s): \n\nImpact: small\n\nComplexity: small\n\nThis issue is related to: \n\n**Detailed Description:**\n\n\n\n**Other Comments:**\n\nTypo fixed', '3', null, null, 'SekibOmazic', '2014-03-07T22:13:08Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4493', '37', '6607', 'Update sce.js', 'Request Type: \n\nHow to reproduce: \n\nComponent(s): \n\nImpact: small\n\nComplexity: small\n\nThis issue is related to: \n\n**Detailed Description:**\n\nAnother typo\n\n**Other Comments:**\n\nTypo fixed', '1', null, null, 'SekibOmazic', '2014-03-07T22:56:13Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4494', '37', '661', 'make possible to use non primitive values for inputs data', 'currently , for non primitives data types bindings,view is not updated when binding is updated. Issue is more visible when you have multiple elements binded to the same data (array , object)', '1', null, null, 'bartes', '2011-11-18T18:28:02Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4495', '37', '6610', 'docs(README): use svg badge', 'Request Type: docs\n\nHow to reproduce: \n\nComponent(s): \n\nImpact: small\n\nComplexity: small\n\nThis issue is related to: \n\n**Detailed Description:**\n\nUse svg badge (http://shields.io/) so it looks nicer on retina displays.\n\n**Other Comments:**\n\n', '3', null, null, 'emmaguo', '2014-03-08T01:43:10Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4496', '37', '6611', 'Update step_12.ngdoc', 'docs(tutorial 12): change parameter name \r\n\r\nFixed wrong app name used in line 86:\r\n- phonecat -> phonecatApp, which meets the code at app.js in tutorial 12', '2', null, null, 'bernardcheng', '2014-03-08T01:52:06Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4497', '37', '6612', 'Update directive.ngdoc', 'Spent a far too much time trawling through the internet for information on why there is a ctrl argument in validators when, according to documentation, the link option only takes three arguments. The information is available further down the page but with the rather axiomatic specification in this part I saw no reason to look for it there.', '8', null, null, 'HeNine', '2014-03-08T10:33:38Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4498', '37', '6613', 'switching out global controller definitions to angular module syntax', 'Request Type: docs\r\n\r\nComponent(s): ngRoute\r\n\r\nImpact: small\r\n\r\nComplexity: small\r\n\r\nThis issue is related to: \r\n\r\n**Detailed Description:**\r\n\r\ndocs(ngView): change global controller declarations to module format in example\r\n\r\n* remove global function declarations\r\n* replace with module ```.controller``` syntax\r\n* replace controller function references in ```$routeProvider``` definitions with string tokens\r\n\r\n\r\n', '8', null, null, 'UnicodeSnowman', '2014-03-08T18:47:59Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4499', '37', '6615', 'Make the quote type explicit, and make it stand out', 'Request Type: docs\n\nHow to reproduce: \n\nComponent(s): $parse\n\nImpact: medium\n\nComplexity: small\n\nThis issue is related to: \n\n**Detailed Description:**\n\nDocumentation to make it easier to get this right. Might also help to make the error message better, but for now this is easily doable.\n\n**Other Comments:**\n\nShould help close #6614', '2', null, null, 'mark0978', '2014-03-08T19:19:43Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4500', '37', '6616', 'Update booleanAttrs.js', 'Request Type: \n\nHow to reproduce: \n\nComponent(s): \n\nImpact: small\n\nComplexity: small\n\nThis issue is related to: \n\n**Detailed Description:**\n\n\n\n**Other Comments:**\n\nFix typo', '2', null, null, 'SekibOmazic', '2014-03-08T21:05:07Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4501', '37', '6617', 'Tiny typo, incorrect grammar', '', '4', null, null, 'JackEllis', '2014-03-08T21:28:21Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4502', '37', '6619', 'docs remove the global controller syntax $route', 'Request Type: docs\n\nHow to reproduce: \n\nComponent(s): ngRoute\n\nImpact: small\n\nComplexity: small\n\nThis issue is related to: \n\n**Detailed Description:**\n\nRemove the global controller syntax and add the `.controller` syntax to $route examples to encourage best practices.\n\n**Other Comments:**\n\n', '3', null, null, 'bradwheel', '2014-03-09T01:39:56Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4503', '37', '662', 'bind inputs to oninput event', 'needed especially to handle arrow clicking on number type input, but generally useful.', '2', null, null, 'bartes', '2011-11-18T19:13:18Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4504', '37', '6622', 'no need to specify which space, there\'s only one', 'minor grammar nit :bowtie: as I learn AngularJS ', '2', null, null, 'chadfennell', '2014-03-09T16:43:40Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4505', '37', '6623', 'fix(filterFilter): comparator should return true if deep object key is undefined', 'Since the filtering of deep object predicates was fixed in https://github.com/angular/angular.js/commit/b4eed8ad94ce9719540462c1ee969dfd3c6b2355, an undefined key in a deep object predicate did not return true un the comparator like it does for non-nested object predicates and strings. See this plunker:\r\n\r\nhttp://plnkr.co/edit/uB7Mta?p=preview\r\n\r\nAt first, p2_filter is undefined, and the filer returns no results. When you type in the input, the filter is set, and when you clear the input, it is set to empty string, returning all results.\r\n\r\nThe first commit in the pull request adds a check to the comparator to see if a key is undefined.\r\nThe second commit adds the same test for non-nested objects predicate, in line with the string filter test\r\nThe third commit fixes multiple style issues in filterSpec.js\r\n\r\nI separated them to make the actual issue more visible\r\n\r\nCloses #6222', '4', null, null, 'Narretz', '2014-03-09T19:48:36Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4506', '37', '6625', 'feat(limitTo): extend the filter to take a beginning index argument', 'Request Type: feature\n\nHow to reproduce: \n\nComponent(s): \n\nImpact: small\n\nComplexity: small\n\nThis issue is related to: \n\n**Detailed Description:**\n\n\n\n**Other Comments:**\n\nExtend the limitTo filter to take an optional argument for beginning index. It provides a slice-alike functionality to manipulate the input.\r\n\r\nCloses #5355', '4', null, null, 'tameraydin', '2014-03-09T22:06:25Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4507', '37', '6627', 'feat(ngTouch): add optional ngSwipeDisableMouse attribute to ngSwipe', 'Request Type: feature\n\nHow to reproduce: \n\nComponent(s): ngTouch\n\nImpact: small\n\nComplexity: small\n\nThis issue is related to: \n\n**Detailed Description:**\n\n\n\n**Other Comments:**\n\nadd optional ngSwipeDisableMouse attribute to ngSwipe directives to ignore mouse events\r\nThis is a proposal for https://github.com/angular/angular.js/issues/6626 opened by @nesQuick \r\n\r\nLet\'s discuss this.\r\nIf it\'s okay - we should also extend the docs. \r\n\r\n\r\n', '6', null, null, 'robinboehm', '2014-03-09T23:50:08Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4508', '37', '6628', 'Update module.ngdoc', 'Request Type: docs\n\nHow to reproduce: \n\nComponent(s): \n\nImpact: \n\nComplexity: small\n\nThis issue is related to: \n\n**Detailed Description:**\n\nthere\'s no reference to a document about organizing modules\n\n**Other Comments:**\n\nReally would like to see the document to which the author is referring.', '4', null, null, 'drbitslayer', '2014-03-10T01:28:09Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4509', '37', '6629', 'docs(module): add link to mentioned resource', 'Explicitly mentions Google DoubleClick team\'s presentation during ng-conf 2014 in place of the original vague wording.\r\n\r\nCloses #6628', '4', null, null, 'gsklee', '2014-03-10T06:50:26Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4510', '37', '663', 'allow to create custom inputs on the all html5 input types not only text', '', '1', null, null, 'bartes', '2011-11-18T20:01:12Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4511', '37', '6632', 'changed html entities lt and gt to < and >', 'Request Type: docs\n\nHow to reproduce: Go to http://docs.angularjs.org/api/ngRoute/provider/$routeProvider. \n\n...If templateUrl is a function, it will be called with the following parameters:\n\n{Array.&lt;Object&gt;}\n\n... \n\nShows html entities instead of the \'<\' and \'>\' chars.\n\nComponent(s): ngRoute\n\nImpact: small\n\nComplexity: small\n\nThis issue is related to: \n\n**Detailed Description:**\n\n\n\n**Other Comments:**\n\n', '2', null, null, 'lhaussknecht', '2014-03-10T21:01:03Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4512', '37', '6633', 'docs(guide): Separate animation class in new lines', 'Moving to new lines & making it bold to avoid confusion when they are all in same line without any separation', '1', null, null, 'Basemm', '2014-03-10T21:10:08Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4513', '37', '6635', 'docs/chore(version stuff): fix how versions are handled in builds and docs', 'There are three somewhat independent commits.\r\n\r\n- The first is a simple bug fix in the docs\r\n- The second updates how the versions are managed in the docs\r\n- The third does the same for the build\r\n\r\n', '2', null, null, 'petebacondarwin', '2014-03-10T21:51:04Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4514', '37', '6636', 'Update directive.ngdoc', 'For the \'Creating a Directive that Manipulates the DOM\' example, the origin old seems not working. First, the $interval service cannot be found. Second, the \'element\' does not have a \'on\' method.', '7', null, null, 'rexwang', '2014-03-10T22:47:28Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4515', '37', '6637', 'fix(jqLite): traverse `host` property for DocumentFragment in inheritedData()', 'If dealing with a document fragment node with a host element, and no parent, use the host element as the parent. This enables directives within a Shadow DOM or polyfilled Shadow DOM to lookup parent controllers.\r\n\r\nThis is something which would be well-suited for 1.2.x as well as a 1.3 beta, in my opinion, as use of the shadowDOM may become more commonplace. This solution works for both the Polymer polyfill as well as the native implementation in Canary\r\n\r\n(might technically be a feature, but it feels like \"fixing things to work with modern web\", really)', '6', null, null, 'caitp', '2014-03-10T23:33:54Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4516', '37', '6639', 'Update concepts.ngdoc', 'wrong ng-app here, it should be ng-init', '10', null, null, 'IamAnn', '2014-03-11T02:28:41Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4517', '37', '664', 'keep reference to element in input widget scope', '', '6', null, null, 'bartes', '2011-11-18T20:42:40Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4518', '37', '6640', 'docs(providers): clean up recipe naming to match given recommendation', 'Request Type: docs\n\nHow to reproduce: N/A\n\nComponent(s): misc core\n\nImpact: small\n\nComplexity: small\n\nThis issue is related to: \n\n**Detailed Description:**\n\nThere are several places in this doc where it specifically recommends using the nameType pattern to keep easier track of the various snap-on recipes. I corrected the naming for each of the circumstances down the stream.\n\n**Other Comments:**\n\n', '2', null, null, 'yaycmyk', '2014-03-11T03:14:05Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4519', '37', '6641', 'docs(tutorial): display button icons (Previous, Live Demo, ...)', 'Request Type: docs\n\nHow to reproduce: For example, see http://docs.angularjs.org/tutorial/step_00\n\nComponent(s): \n\nImpact: small\n\nComplexity: small\n\nThis issue is related to: \n\n**Detailed Description:**\n\n\n\n**Other Comments:**\n\nIn relation to https://github.com/angular/dgeni-packages/pull/8\r\n\r\nThe icons are not visible yet, this commit do the necessary.', '1', null, null, 'forresst', '2014-03-11T09:28:52Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4520', '37', '6645', 'fix(select) 5449-update-model-properties-when-directly-changed', 'Attempted fix for issue #5449', '2', null, null, 'sriram-dev', '2014-03-11T13:51:26Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4521', '37', '6646', 'fix(ngOptions): isolated scope options refresh IE9', 'Request Type: bug\n\nHow to reproduce: http://jsfiddle.net/ySmah/12/\n\nComponent(s): forms\n\nImpact: medium\n\nComplexity: small\n\nThis issue is related to: \n\n**Detailed Description:**\n\nng-options placeholder in select not removed in IE9: wrong option selected on click\nrendering issues in IE9 (showing only first character on each option)\n\n**Other Comments:**\n\nFixes #6211\r\n', '5', null, null, 'albyrock87', '2014-03-11T15:48:58Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4522', '37', '6647', 'fixes a readme error', 'this cost me quite a lot of time to figure out', '6', null, null, 'meredrica', '2014-03-11T17:32:49Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4523', '37', '665', 'added possibility to stop route updating', 'Couldn\'t find better way to do it. Anyway it works.', '2', null, null, 'bartes', '2011-11-18T22:45:46Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4524', '37', '6650', 'fix(input):URL validation does not recognize URLs with no protocol', 'Request Type: \n\nHow to reproduce: \n\nComponent(s): \n\nImpact: small\n\nComplexity: small\n\nThis issue is related to: \n\n**Detailed Description:**\n\nNow recognizes URLs without protocol but it is far away from full-blown URL validator\n\n**Other Comments:**\n\nchange the url regexp to recognize urls without protocol\r\n\r\ncloses #6634', '3', null, null, 'SekibOmazic', '2014-03-11T20:20:37Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4525', '37', '6651', 'Lockdown', '', '3', null, null, 'auser', '2014-03-11T22:10:09Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4526', '37', '6653', 'chore(npm): add shrinkwrap to lock down dependencies', 'We need to be able to build angular at older shas, without the lock file / shrinkwrap file\r\nthe dependencies will resolve differently on different machines and at different times.\r\n\r\nThis will help us avoid broken builds and hard to track down issues.\r\n\r\nI had to manually edit this file after it was generated because `npm shrinkwrap` will install\r\noptional dependencies as if they were hard dependencies.\r\n\r\nSee: https://github.com/npm/npm/issues/2679#issuecomment-37361236\r\n\r\nMy manual edit:\r\n\r\n```\r\ndiff --git a/npm-shrinkwrap.json b/npm-shrinkwrap.json\r\nindex 756df44..dc157eb 100644\r\n--- a/npm-shrinkwrap.json\r\n+++ b/npm-shrinkwrap.json\r\n@@ -3110,19 +3110,7 @@\r\n \"chokidar\": {\r\n \"version\": \"0.8.1\",\r\n \"from\": \"https://registry.npmjs.org/chokidar/-/chokidar-0.8.1.tgz\",\r\n- \"resolved\": \"https://registry.npmjs.org/chokidar/-/chokidar-0.8.1.tgz\",\r\n- \"dependencies\": {\r\n- \"fsevents\": {\r\n- \"version\": \"0.1.6\",\r\n- \"from\": \"fsevents@0.1.6\",\r\n- \"resolved\": \"https://registry.npmjs.org/fsevents/-/fsevents-0.1.6.tgz\"\r\n- },\r\n- \"recursive-readdir\": {\r\n- \"version\": \"0.0.2\",\r\n- \"from\": \"recursive-readdir@0.0.2\",\r\n- \"resolved\": \"https://registry.npmjs.org/recursive-readdir/-/recursive-readdir-0.0.2.tgz\"\r\n- }\r\n- }\r\n+ \"resolved\": \"https://registry.npmjs.org/chokidar/-/chokidar-0.8.1.tgz\"\r\n },\r\n \"glob\": {\r\n \"version\": \"3.2.9\",\r\n```', '1', null, null, 'IgorMinar', '2014-03-12T02:28:03Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4527', '37', '666', 'made possible to use binded data in min, max and remove required validation from min/max', '', '3', null, null, 'bartes', '2011-11-18T23:26:17Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4528', '37', '6660', 'fixed indentation of input.js comment', 'Request Type: docs\r\n\r\nHow to reproduce: \r\n\r\nComponent(s): misc core\r\n\r\nImpact: small\r\n\r\nComplexity: small\r\n\r\nThis issue is related to: \r\n\r\n**Detailed Description:**\r\n\r\nthe doc\'s code block of `$formatter` in [http://docs.angularjs.org/api/ng/type/ngModel.NgModelController](http://docs.angularjs.org/api/ng/type/ngModel.NgModelController) looks like\r\n\r\n![2014-03-12 21 17 53](https://f.cloud.github.com/assets/1506738/2397075/99dc7492-a9e4-11e3-9e42-77a54a2bd616.png)\r\n\r\nSo I fixed indentation of code block in `input.js` \r\n\r\n\r\n**Other Comments:**\r\n\r\n', '8', null, null, 'takashi', '2014-03-12T12:46:24Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4529', '37', '6662', 'test(ngClass): add test for ngClassOdd/Even with negative $index', 'Request Type: test\n\nHow to reproduce: \n\nComponent(s): misc core\n\nImpact: small\n\nComplexity: small\n\nThis issue is related to: \n\n**Detailed Description:**\n\n\n\n**Other Comments:**\n\nAdd in a test to ensure that even/odd is calculated correctly with\r\nnegative index\r\n\r\nCloses #5204', '10', null, null, 'arbus', '2014-03-12T13:10:09Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4530', '37', '6663', 'fix($animate): insert elements at the start of the parent container instead of at the end', 'With 1.2.x, `$animate.enter` and `$animate.move` both insert the element at the end of the provided\r\nparent container element when only the `parent` element is provided. If an `after` element is provided\r\nthen they will place the inserted element after that one. This works fine, but there is no way to\r\nplace an item at the top of the provided parent container using these two APIs.\r\n\r\nWith this change, if the `after` argument is not specified for either `$animate.enter` or `$animate.move`,\r\nthe new child element will be inserted into the first position of the parent container element.\r\n\r\nCloses #4934\r\nCloses #6275\r\n\r\nBREAKING CHANGE: $animate will no longer default the after parameter to the last element of the parent\r\ncontainer. Instead, when after is not specified, the new element will be inserted as the first child of\r\nthe parent container.\r\n\r\nTo update existing code, change all instances of `$animate.enter()` or `$animate.move()` from:\r\n\r\n`$animate.enter(element, parent);`\r\n\r\nto:\r\n\r\n`$animate.enter(element, parent, angular.element(parent[0].lastChild));`', '16', null, null, 'matsko', '2014-03-12T19:41:17Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4531', '37', '6664', 'chore(travis): fix version for grunt-cli and clear npm cache', 'Related to https://github.com/npm/npm/issues/3259.', '1', null, null, 'tbosch', '2014-03-13T04:17:50Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4532', '37', '6665', 'chore(travis): install grunt-cli locally to prevent failed builds', '', '2', null, null, 'tbosch', '2014-03-13T04:52:11Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4533', '37', '6667', '(minor) Add missing closing parenthesis', 'Request Type: docs\n\nHow to reproduce: \n\nComponent(s): \n\nImpact: \n\nComplexity: \n\nThis issue is related to: \n\n**Detailed Description:**\n\n\n\n**Other Comments:**\n\n', '2', null, null, 'n0nick', '2014-03-13T12:47:19Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4534', '37', '6668', 'input[type=radio] with object behind ng-model', 'Request Type: bug\n\nHow to reproduce: Use object for ng-model for input[radio]\n\nComponent(s): misc core\n\nImpact: medium\n\nComplexity: small\n\nThis issue is related to: \n\n**Detailed Description:**\n\n\n\n**Other Comments:**\n\nIf you use object as models with radio, then the `$render` method won\'t be ever called, because of `{} == {}` is always `false`. So we should use angular.equals instead of ==.', '8', null, null, 'serzh', '2014-03-13T14:21:42Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4535', '37', '6670', 'Update unit-testing.ngdoc', 'docs(Unit Testing): change \"then\" to \"than\"\r\n\r\ngrammar, not much of a change. Will be on the lookout for similar issues in docs and likely make larger PRs as needed.', '2', null, null, 'thynctank', '2014-03-13T15:43:37Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4536', '37', '6672', 'Clean npm shrinkwrap', '', '8', null, null, 'petebacondarwin', '2014-03-13T18:28:10Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4537', '37', '6677', 'fix(docs) Update angular-mocks.js', 'Grammar nitpick - I got here by clicking the \"improve this doc\" feature on the website. That\'s neat.', '3', null, null, 'NickHeiner', '2014-03-13T23:42:09Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4538', '37', '6678', 'fix(version-info): explicitly specify the remote', '`git ls-remote --tags` assumes that you have a remote set up for your\r\ncurrent branch. That isn\'t the case, at least for me, when I\'m working\r\non local branches. `grunt write` doesn\'t do the right thing in that\r\ncase (`git ls-remote --tags` bails out and the silent: true param makes\r\nthis a pain to debug.) Prefer explicit to implicit.', '3', null, null, 'chirayuk', '2014-03-14T00:50:23Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4539', '37', '668', 'fix(browser): Fix IE7 and IE8 throwing error when deleting property on window', 'Closes #649', '1', null, null, 'dmanek', '2011-11-21T07:34:45Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4540', '37', '6680', 'fix(ngOptions): don\'t change user selections while <select> open in fire...', 'Sample patch that fixes issue #6679 but may regress parts of the code base.\r\n\r\nI\'m finding it difficult to verify the test suite because these unit tests are failing for me in New Zealand (see issue #5017). But time zone errors aside, I believe my patch breaks subtly with this output: \r\n```\r\nChrome 33.0.1750 (Linux) select ngOptions binding should select correct input if previously selected option was \"?\" FAILED\r\n Expected \'1\' to equal \'0\'.\r\n Error: Expected \'1\' to equal \'0\'.\r\n at null.<anonymous> (/home/mbgray/workspace/angular.js/test/ng/directive/selectSpec.js:965:31)\r\n Expected false to be truthy.\r\n Error: Expected false to be truthy.\r\n at null.<anonymous> (/home/mbgray/workspace/angular.js/test/ng/directive/selectSpec.js:966:63)\r\n```\r\nI\'m submitting it anyway because it might be a starting point for conversation and other fixes. I\'m not as comfortable this deep in the framework and didn\'t know how to take this further.', '4', null, null, 'theflimflam', '2014-03-14T02:39:22Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4541', '37', '6681', 'docs($http): update shortcut method description', 'Update docs to reflect that $http no longer requires passing in an HTTP method, as changed in #6401.', '2', null, null, 'linclark', '2014-03-14T02:54:57Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4542', '37', '6684', 'fix(input): format numeric string model values correctly', 'Previously, when a numeric string is used as a model value, the number input\ntype would not format the value. This patch corrects this behaviour by\nconverting to a number before performing validation, if the value is a string\nand not NaN.\n\nCloses #6683', '6', null, null, 'caitp', '2014-03-14T04:43:51Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4543', '37', '6686', 'Consistent capitalisation of \"Angular\" for step_05.ngdoc', 'Request Type: docs\n\nHow to reproduce: \n\nComponent(s): \n\nImpact: large\n\nComplexity: small\n\nThis issue is related to: \n\n**Detailed Description:**\n\nConsistent capitalisation of \"Angular\"\n\n**Other Comments:**\n\n', '1', null, null, 'emilesilvis', '2014-03-14T09:52:19Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4544', '37', '6687', 'Consistent capitalisation of \"Angular\" for step_06.ngdoc', 'Request Type: docs\n\nHow to reproduce: \n\nComponent(s): \n\nImpact: large\n\nComplexity: small\n\nThis issue is related to: \n\n**Detailed Description:**\n\nConsistent capitalisation of \"Angular\"\n\n**Other Comments:**\n\n', '1', null, null, 'emilesilvis', '2014-03-14T09:53:56Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4545', '37', '6688', 'Consistent capitalisation of \"Angular\" for step_07.ngdoc', 'Request Type: docs\n\nHow to reproduce: \n\nComponent(s): \n\nImpact: large\n\nComplexity: small\n\nThis issue is related to: \n\n**Detailed Description:**\n\nConsistent capitalisation of \"Angular\"\n\n**Other Comments:**\n\n', '2', null, null, 'emilesilvis', '2014-03-14T09:55:36Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4546', '37', '6689', 'Consistent capitalisation of \"Angular\" for step_08.ngdoc', 'Request Type: docs\n\nHow to reproduce: \n\nComponent(s): \n\nImpact: large\n\nComplexity: \n\nThis issue is related to: \n\n**Detailed Description:**\n\nConsistent capitalisation of \"Angular\"\n\n**Other Comments:**\n\n', '3', null, null, 'emilesilvis', '2014-03-14T09:57:29Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4547', '37', '669', 'NaN fix', '', '1', null, null, 'IgorMinar', '2011-11-21T19:53:42Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4548', '37', '6690', 'chore(angularjs.org/publish.sh): align release script with new website', '@tbosch - this seems to fit the bill - I have run it locally both on the 1.3 and 1.2 branches with various values for the cdnVersion.', '5', null, null, 'petebacondarwin', '2014-03-14T14:37:18Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4549', '37', '6691', 'fix($$rAF): always fallback to a $timeout incase native rAF isn\'t supported', '', '5', null, null, 'matsko', '2014-03-14T16:08:01Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4550', '37', '6692', 'Karma installation on Mac/Linux command fix', '', '6', null, null, 'csa-bee', '2014-03-14T19:59:29Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4551', '37', '6693', 'docs(orderBy): Clarify \"reverse\" vs. \"-property\"', 'docs(orderBy):\r\n\r\nThis clarifies the relationship between \"reverse\" and \"-property\". The original didn\'t make it clear they did the same thing. It also clarifies the required quoting for a property name and fixes one minor typo.', '4', null, null, 'davidmichaelkarr', '2014-03-14T22:19:42Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4552', '37', '6695', 'feat(filterFilter): support filterFilter for object literal collection', 'Request Type: feature\r\n\r\nHow to reproduce: Feed an object literal into an ngRepeat to loop over its properties with a filter in use, as shown here: http://plnkr.co/edit/mMvAgQgILcBVkbT2q4z4?p=preview\r\n\r\nComponent(s): misc core\r\n\r\nImpact: small\r\n\r\nComplexity: small\r\n\r\nThis issue is related to:\r\n\r\nDetailed Description:\r\n\r\nI switched the primary filterFilter iteration method to one that supports both array and object literal collections and added tests for the object version.\r\n\r\nOther Comments:\r\n\r\nfilterFilter was previously only available to array/array-like collections,\r\nbut ngRepeat supports iterating over object literals. This PR enables\r\nfiltering functionality over object literal properties.\r\n\r\nFixes #6490', '8', null, null, 'yaycmyk', '2014-03-15T07:33:54Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4553', '37', '6698', 'Add an experiment to update controller unit test', 'Add an experiment to update the controller unit test after modifying it with the new model property.', '3', null, null, 'neiljohnston', '2014-03-15T18:00:36Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4554', '37', '6699', 'Fast traversal', 'WIP(fast-traversal): LinkedList\r\n\r\nLinkedList check-in', '2', null, null, 'auser', '2014-03-15T20:50:29Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4555', '37', '67', 'Scenario runner dsl', 'Reworked DSL definitions and much more complete DSL language.\r\n\r\nSorry about the DSL.js -> dsl.js delete/add. I\'m not sure why dslSpec.js was committed as a rename, but dsl.js was committed as a delete/add.\r\n', '0', null, null, 'esprehn', '2010-10-19T07:52:41Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4556', '37', '6700', 'Added break and continue support to forEach and unit tests for both', '', '2', null, null, 'andytompkins', '2014-03-15T21:48:00Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4557', '37', '6701', 'Update step_03.ngdoc', 'Fixed a minor error in link', '6', null, null, 'Brianmanden', '2014-03-16T13:19:59Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4558', '37', '6703', 'feat(detailsDirective): 3867 Details directive with ngopen support', 'Attempt at detailsDirective for issue #3867', '10', null, null, 'andytompkins', '2014-03-16T19:47:47Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4559', '37', '6704', 'fix(ngForm): 2513 ngForm triggers click/submit events like normal form', 'Fix for issue #2513', '8', null, null, 'andytompkins', '2014-03-16T22:57:25Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4560', '37', '6705', '[doc] Cookies serializer only supports strings', '', '2', null, null, 'recurrence', '2014-03-16T23:53:06Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4561', '37', '6706', 'docs(misc/contribute): make anchor links work properly', 'The hash links in misc/contribute were never going to hit the right target, and would cause a\n404 (which, by the way, causes over 1000 errors in the console, it would be good to look into\nthose!).\n\nThis probably isn\'t the best solution for this, but it works for now, so that\'s nice.', '1', null, null, 'caitp', '2014-03-17T04:05:27Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4562', '37', '6709', 'Update module.ngdoc', 'Remove duplicate word', '2', null, null, 'x-cray', '2014-03-17T10:38:05Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4563', '37', '671', 'Add support for no top-level json array', 'The $resource service relies on the fact that JSON arrays are top-level arrays. However, JSON shouldn\'t contains top-level array for security reasons (see http://flask.pocoo.org/docs/security/#json-security). \r\n\r\nThis patch allows the usage of isArray:true in the $resource services. The expected JSON is a top-level object which contains an array:\r\n{\r\n foo: [bar, baz]\r\n}', '4', null, null, 'tleruitte', '2011-11-23T13:39:44Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4564', '37', '6713', 'feat($http): add xhr statusText to completeRequest callback', 'Makes xhr status text accessible is $http success/error callback. See\r\nwww.w3.org/TR/XMLHttpRequest/#dom-xmlhttprequest-statustext\r\n\r\n(This is just a rebased version of the other PR (#2665), meant to fix the bitrot so it can be merged.\r\nReview is needed!)\r\n\r\nCloses #2335\r\nCloses #2665', '10', null, null, 'caitp', '2014-03-17T15:07:01Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4565', '37', '6714', 'minor error in link', 'On page http://docs.angularjs.org/tutorial/step_05 link is broken.\r\n\r\nShould point to http://docs.angularjs.org/guide/services NOT http://docs.angularjs.org/guide/dev_guide.services', '2', null, null, 'Brianmanden', '2014-03-17T16:15:06Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4566', '37', '6715', 'minor error in link', 'Broken link on page http://docs.angularjs.org/tutorial/step_05', '4', null, null, 'Brianmanden', '2014-03-17T16:20:53Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4567', '37', '6716', 'Update index.ngdoc (karma-cli installation)', 'Request Type: docs\n\nHow to reproduce: \n\nComponent(s): \n\nImpact: small\n\nComplexity: small\n\nThis issue is related to: \n\n**Detailed Description:**\n\nAdded karma-cli installation (as proposed here http://stackoverflow.com/a/22329409/451962) which fixes karma\'s ability to run scripts\\test.bat on windows.\nTested and working.\n\n**Other Comments:**\n\n', '4', null, null, 'VipSaran', '2014-03-17T16:58:06Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4568', '37', '6719', 'feat(injector): \"strict-DI\" mode which disables \"automatic\" function annotation / inferred dependencies', 'This modifies the injector to prevent automatic annotation (or inferring dependencies based on formal parameter names) from occurring for a given injector.\r\n\r\nThis behaviour can be enabled when bootstrapping the application by using the attribute\r\n\"ng-strict-di\" on the root element (the element containing \"ng-app\"), or alternatively by passing\r\nan object with the property \"strictDi\" set to \"true\" in angular.bootstrap, when bootstrapping\r\nmanually.\r\n\r\nJS example:\r\n\r\n```js\r\n angular.module(\"name\", [\"dependencies\", \"otherdeps\"])\r\n .provider(\"$willBreak\", function() {\r\n this.$get = function($rootScope) {\r\n };\r\n })\r\n .run([\"$willBreak\", function($willBreak) {\r\n // This block will never run because the noMagic flag was set to true,\r\n // and the $willBreak \'$get\' function does not have an explicit\r\n // annotation.\r\n }]);\r\n\r\n angular.bootstrap(document, [\"name\"], {\r\n strictDi: true\r\n });\r\n```\r\n\r\nHTML:\r\n\r\n```html\r\n <html ng-app=\"name\" ng-strict-di>\r\n <!-- ... -->\r\n </html>\r\n```\r\nThis will only affect functions with an arity greater than 0, and without an $inject property.\r\n', '24', null, null, 'caitp', '2014-03-17T20:42:05Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4569', '37', '6720', 'docs(ngForm): remove duplicate @param annotation', 'Request Type: docs\n\nHow to reproduce: \n\nComponent(s): forms\n\nImpact: small\n\nComplexity: small\n\nThis issue is related to: \n\n**Detailed Description:**\n\nWhen the example for `ngAnimate` was added in commit:3344396, the `@param name` annotation was unintentionally duplicated. Remove this duplicate.\n\n**Other Comments:**\n\n', '3', null, null, 'al-the-x', '2014-03-17T20:45:06Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4570', '37', '6722', 'doc: html5Mode needs to be enabled on $location', '', '7', null, null, 'jayliu50', '2014-03-17T20:57:50Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4571', '37', '6724', 'clarify documentation for $event in ng-click et al', '', '7', null, null, 'mccloskey', '2014-03-17T22:26:25Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4572', '37', '6725', 'Update nonassign.ngdoc', 'Request Type: docs\n\nHow to reproduce: \n\nComponent(s): $compile\n\nImpact: medium\n\nComplexity: small\n\nThis issue is related to: \n\n**Detailed Description:**\n\nIt might seem obvious that if you don\'t supply \"bind\" attribute in this case, you\'ll get an error, but I feel this is worth adding to the doc, because this was my error, and the documentation led me to try every permutation of attribute values on <my-directive>1, and completely missed the fact that <my-directive>2 in my code didn\'t have ANY attribute. If my proposed edit had been there, I might have found my problem earlier.\n\n**Other Comments:**\n\n', '1', null, null, 'poshest', '2014-03-17T23:03:19Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4573', '37', '6728', 'chore(CONTRIBUTING): merge relevant updates from angular.dart', 'Back port changes to angular.dart `CONTRIBUTING.md`, as suggested by @vicb in AngularDart [#740](https://github.com/angular/angular.dart/pull/740).', '11', null, null, 'chalin', '2014-03-18T00:06:11Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4574', '37', '6729', 'docs($cacheFactory): document cache instance methods', 'These were apparently entirely undocumented. I\'m not sure if they\'re intended \nto be private, but in case they\'re not, I\'ve written some initial docs for\nthem\n\nCloses #5805', '2', null, null, 'caitp', '2014-03-18T00:51:11Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4575', '37', '673', 'Promises + $http', 'not completely polished, but ready for first review\r\n\r\nsome todos, some missing tests, some api questions to discuss', '2', null, null, 'IgorMinar', '2011-11-24T11:54:39Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4576', '37', '6730', 'test(ngMock): workaround issue with negative timestamps', 'In some specific timezones and operating systems, it seems that\r\ngetTimezoneOffset() can return an incorrect value for negative timestamps, as\r\ndescribed in #5017. While this isn\'t something easily fixed in the mock code,\r\nthe tests can avoid that particular timeframe by using a positive timestamp.\r\n\r\nCloses #5017', '5', null, null, 'brettporter', '2014-03-18T05:23:13Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4577', '37', '6732', 'feat(ngClass): one can pass an $element variable into ngClass expression functions', 'When using directives like `ngClick`, `ngFocus`, `ngKeydown`, `ngMousemove` etc. AngularJS passes a special `$event` object to any function that basically is an event listener. \r\n\r\nOne can then write in HTML\r\n```html\r\nng-click=\"someHandler($event)\"\r\n```\r\nand in javascript:\r\n```javascript\r\n$scope.someHandler = function(event){\r\n var element = $(event.currentTarget);\r\n // some other code\r\n};\r\n```\r\nto get ahold of the HTML element (actually jQuery of jqLite object containing it) that the `ngClick` directive was applied to in the first place.\r\n\r\nHowever in current version of AngularJS it is impossible to easily access that element using `ngClass` directive. This pull request makes it possible to pass a special `$element` object to any function in an `ngClass` expression so one can now write:\r\n\r\n```html\r\nng-class=\"{\'some-class\': someCondition($element)}\"\r\n```\r\n\r\n```javascript\r\n$scope.someCondition = function(element){\r\n if(conditionsThatElementMustMeet(element))\r\n return true;\r\n else\r\n return false;\r\n};\r\n```\r\n\r\nA real example might be a situation when one wants to apply a class to an element if and only if it\'s content is overflowing:\r\n\r\n```css\r\n#my-element{\r\n overflow: hidden;\r\n width: 50px;\r\n display: inline-block;\r\n white-space: nowrap;\r\n text-overflow: ellipsis;\r\n}\r\n```\r\n```html\r\n<div id=\"my-element\" ng-class=\"{\'it-is-overflowing\': isOverflowing($element)}\">\r\n {{modelBinding}}\r\n</div>\r\n```\r\n\r\n```javascript\r\n$scope.modelBinding = \'some string content\'; // this could be user input\r\n$scope.isOverflowing = function(element){\r\n // actual check whether the element\'s content is overflowing\r\n return element[0].scrollWidth > element[0].clientWidth;\r\n};\r\n```\r\n\r\nLive code example here: http://jsfiddle.net/YAWGd/', '4', null, null, 'kamilkp', '2014-03-18T08:30:46Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4578', '37', '6733', 'Small improvements for bugs I ran into on mobile devices and older webkit browsers', 'Request Type: bug\r\n\r\nHow to reproduce: \r\n\r\nCreate a multipage app in Angular v 1.2.6 that has some redirects, as soon as the app wants to redirect it ends up in an endless loop.\r\n\r\nExtra components we use: angular-route, angular-sanitize, angularitics, ng-i18next\r\n\r\nComponent(s): misc core\r\n\r\nImpact: small\r\n\r\nComplexity: small\r\n\r\nThis issue is related to: \r\n\r\n**Detailed Description:**\r\n\r\nWebkit browsers under version 534 don\'t support the history.pushState correctly, which breaks the routing in Angular and creates an endless loop on Safari and Android.\r\n\r\nAnd on iOS7 there seems to be a delay of a couple of milliseconds before the value gets updated, but the input change event has already been fired. Which causes form validation issues.', '8', null, null, 'WardMe', '2014-03-18T10:30:59Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4579', '37', '6734', 'feat($http): pass success flag to transformResponse', 'Request Type: feature\n\nHow to reproduce: \n\nComponent(s): $http\n\nImpact: small\n\nComplexity: small\n\nThis issue is related to: \n\n**Detailed Description:**\n\n\n\n**Other Comments:**\n\nNow `transformResponse` doesn\'t know about request is successful or not.\r\nSo, it is impossible to make some transformation only on success response. For example, I wrap response into object for easier handling:\r\n\r\n```javascript\r\nfunction Post(data) {\r\n this.author = data.user.name;\r\n this.annotation = data.content.split(\'\\n\')[0];\r\n}\r\n\r\n$http.get(\'/posts\', {\r\n transformResponse: function transformResponse(data) {\r\n return new Post(data)\r\n }\r\n});\r\n```\r\n\r\nWhen request has failed, response doesn\'t contain a fields required by the post and it causes an Exeption.\r\nWith this fix I will can create the post only from success responses\r\n\r\n```javascript\r\n$http.get(\'/posts\', {\r\n transformResponse: function transformResponse(data, headers, success) {\r\n return success ? new Post(data) : data\r\n }\r\n});\r\n```', '17', null, null, 'just-boris', '2014-03-18T12:23:53Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4580', '37', '6735', 'fix($httpBackend): don\'t error when JSONP callback called with no parameter', 'This change brings Angular\'s JSONP behaviour closer in line with jQuery\'s. It\nwill no longer treat a callback called with no data as an error, and will no\nlonger support IE8 via the onreadystatechanged event.\n\nBREAKING CHANGE:\n\nPreviously, the JSONP backend code would support IE8 by relying on the\nreadystatechanged events. This is no longer the case, as these events do not\nprovide adequate useful information for deeming whether or not a response is\nan error.\n\nPreviously, a JSONP response which did not pass data into the callback would\nbe given a status of -2, and treated as an error. Now, this situation will\ninstead be given a status of 200, despite the lack of data. This is useful for\ninteraction with certain APIs.\n\nPreviously, the onload and onerror callbacks were added to the JSONP script\ntag. These have been replaced with jQuery events, in order to gain access to\nthe event object. This means that it is now difficult to test if the callbacks\nare registered or not. This is possible with jQuery, using the\n$.data(\"events\") method, however it is currently impossible with jqLite. This\nis not expected to break applications.\n\nCloses #4987', '7', null, null, 'caitp', '2014-03-18T15:18:25Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4581', '37', '6736', 'Scope#$watchCollection oldValue == newValue fix', '', '15', null, null, 'IgorMinar', '2014-03-18T15:32:13Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4582', '37', '6737', 'fix(foreach): change foreach to support NamedNodeMap', 'Request Type: bug\n\nHow to reproduce: The Caja browser does not expose numeric accessors on Element.attributes, only the NamedNodeMap interface, so Element.attributes fails to pass isArrayLike and thus no appElement is ever set.\n\nhttps://code.google.com/p/google-caja/issues/detail?id=1905\n\nComponent(s): \n\nImpact: small\n\nComplexity: small\n\nThis issue is related to: \n\n**Detailed Description:**\n\nMost but not all browsers (e.g. Caja) make Element.attributes pass the isArrayLike() test, which is why this bug was not caught earlier.\n\n**Other Comments:**\n\n', '8', null, null, 'metaweta', '2014-03-18T16:10:23Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4583', '37', '674', 'feat(form): do not prevent submission if action attribute present', '', '3', null, null, 'vojtajina', '2011-11-25T04:14:09Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4584', '37', '6741', 'Update step_05.ngdoc', 'Removed stray \"a\"', '2', null, null, 'frandroid', '2014-03-18T21:19:42Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4585', '37', '6742', 'Fixed Services link.', '', '2', null, null, 'frandroid', '2014-03-18T21:22:24Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4586', '37', '6743', 'fix($$RAFProvider): check for webkitCancelRequestAnimationFrame', 'Android 4.3 only supports webkitCancelRequestAnimationFrame.\r\n\r\nCloses #6526', '3', null, null, 'matsko', '2014-03-19T01:02:13Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4587', '37', '6744', 'docs(ngMock/angular-mocks) added response to whenPOST mock', '**Request Type**: docs\r\n\r\n**How to reproduce:** Use whenPOST without returning a response\r\n\r\n**Component(s):** ngMocks\r\n\r\n**Impact:** small\r\n\r\n**Complexity:** small\r\n\r\n**This issue is related to:** whenPOST (mocking)\r\n\r\n**Detailed Description:** The ```whenPOST``` method should return a response containing status, response body and headers. If omitted the following error will be thrown:\r\n\r\n```Uncaught TypeError: Cannot read property \'2\' of undefined```\r\n\r\nThe documentation doesn\'t make it very clear, so I think it will be appropriate to add.', '6', null, null, 'sqren', '2014-03-19T07:47:27Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4588', '37', '6746', 'fix($filter): $orderBy filter with dates when sorting multiple fields', 'Request Type: \n\nHow to reproduce: \n\nComponent(s): misc core\n\nImpact: small\n\nComplexity: small\n\nThis issue is related to: \n\n**Detailed Description:**\n\n\n\n**Other Comments:**\n\nRequest Type: \r\n\r\nHow to reproduce: \r\n\r\nComponent(s): \r\n\r\nImpact: small\r\n\r\nComplexity: small\r\n\r\nThis issue is related to: \r\n\r\n**Detailed Description:**\r\n\r\n\r\n\r\n**Other Comments:**\r\n\r\n\r\nextend compare method to use Date.valueOf() when comparing dates\r\n\r\ncloses #6676 ', '3', null, null, 'SekibOmazic', '2014-03-19T11:36:29Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4589', '37', '6749', 'feat($debounce): add new service that \"debounces\" calls to a function', 'This is a useful service in general but, in particular, it also is needed\r\nto support the `ng-model-options` directive, that allows users to \"debounce\"\r\nthe ui event triggers that update the ng-model value.\r\n\r\nSee #2129 ', '22', null, null, 'petebacondarwin', '2014-03-19T14:20:16Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4590', '37', '675', 'fix(ng:options): select multiple to work with object as ng:options', 'Closes #634', '1', null, null, 'TEHEK', '2011-11-26T04:17:37Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4591', '37', '6752', 'package.json is missing the version field, which breaks npm install', 'Request Type: bug\r\n\r\nHow to reproduce: Try to do:\r\n\r\n```\r\nnpm install --save-dev https://github.com/angular/angular.js/tarball/master\r\n```\r\n\r\nNote that it won\'t succeed because there\'s no version in the package.json.\r\n\r\nComponent(s): misc core\r\n\r\nImpact: small\r\n\r\nComplexity: small\r\n\r\nThis issue is related to: \r\n\r\n**Detailed Description:**\r\n\r\nThis is fixed with pull request https://github.com/angular/angular.js/pull/6752\r\n\r\n**Other Comments:**\r\n\r\nIn order to be able to support `npm install --save-dev https://github.com/angular/angular.js/tarball/master`, repositories need to have a version field in their package.json.', '7', null, null, 'dankohn', '2014-03-19T17:17:53Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4592', '37', '6753', 'Clarify behaviour of $promise in ngResource when using an interceptor', 'Request Type: docs\n\nHow to reproduce: \n\nComponent(s): ngResource\n\nImpact: \n\nComplexity: \n\nThis issue is related to: \n\n**Detailed Description:**\n\nWhen an interceptor is used in ngResource, the $promise is no longer resolved with the resource object, but instead with the value returned by the interceptor. This is now specified in the docs.\n\n**Other Comments:**\n\n', '4', null, null, 'alexsanford', '2014-03-19T18:40:52Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4593', '37', '6756', 'Clarifying some confusing points on migration doc', 'Some parts of the migration doc were confusing or not totally accurate, based on my experience migrating an AngularJS project from 1.0 to 1.2.7. I\'ve tried to update the doc to clarify some confusing points.\r\n\r\nI am completely new to AngularJS. Some of these documentation changes themselves might be inaccurate. Please look over carefully!', '11', null, null, 'alexdmiller', '2014-03-19T19:28:37Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4594', '37', '6757', '$Document Example', 'Request Type: docs\n\nHow to reproduce: \n\nComponent(s): misc core\n\nImpact: small\n\nComplexity: small\n\nThis issue is related to: \n\n**Detailed Description:**\n\nAn example to show how $document is essentially the same as the window.document wrapped in an angular.element expression.\n\n**Other Comments:**\n\n', '2', null, null, 'tewen', '2014-03-20T01:08:18Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4595', '37', '6758', 'test($rootScope): add assertion to test ensuring that NaN -> NaN does not throw', 'https://github.com/angular/angular.js/commit/fb6062fb9d83545730b993e94ac7482ffd43a62c implements a fix for NaN values causing $watchCollection to throw an infdig error. This change updates the test by adding an assertion which explains what is actually being tested a bit better, and may also provide better information in the event that the test ever fails.', '1', null, null, 'caitp', '2014-03-20T03:51:43Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4596', '37', '6759', 'Added controllerAs example', 'Request Type: docs\n\nHow to reproduce: \n\nComponent(s): $compile\n\nImpact: small\n\nComplexity: small\n\nThis issue is related to: \n\n**Detailed Description:**\n\n\n\n**Other Comments:**\n\nThis documents the new `controllerAs` syntax in the example directive.', '4', null, null, 'wesleycho', '2014-03-20T03:56:56Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4597', '37', '676', 'Attach $widget scope to element data ', 'similar as $form is attached to form element. \r\nUseful when you have got list of dom input elements and you want to emit eg $validate on their widgets. \r\n\r\n', '2', null, null, 'bartes', '2011-11-27T18:30:07Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4598', '37', '6761', 'docs(ngMock/angular-mocks) added response to whenPOST mock', '**Request Type**: docs\r\n\r\n**How to reproduce:** Use whenPOST without returning a response\r\n\r\n**Component(s):** ngMocks\r\n\r\n**Impact:** small\r\n\r\n**Complexity:** small\r\n\r\n**This issue is related to:** whenPOST (mocking)\r\n\r\n**Detailed Description:** The ```whenPOST``` method should return a response containing status, response body and headers. If omitted the following error will be thrown:\r\n\r\n```Uncaught TypeError: Cannot read property \'2\' of undefined```\r\n\r\nThe documentation doesn\'t make it very clear, so I think it will be appropriate to add.', '5', null, null, 'sqren', '2014-03-20T04:44:35Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4599', '37', '6762', 'perf(ngMock): use exactly equal in browserTrigger', 'Request Type: perf\n\nHow to reproduce: \n\nComponent(s): ngMock\n\nImpact: medium\n\nComplexity: small\n\nThis issue is related to: performance regression\n\n**Detailed Description:**\n\nuse exactly equal for input type checks.\nIt\'s not a hotspot.\nBut just should be done correct.\n\n**Other Comments:**\n\n', '2', null, null, 'robinboehm', '2014-03-20T07:36:41Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4600', '37', '6763', 'perf(ngMock): use exactly equal in browserTrigger', 'Request Type: perf\r\n\r\nHow to reproduce: \r\n\r\nComponent(s): ngMock\r\n\r\nImpact: medium\r\n\r\nComplexity: small\r\n\r\nThis issue is related to: performance regression\r\n\r\n**Detailed Description:**\r\n\r\nuse exactly equal for input type checks.\r\nIt\'s not a hotspot.\r\nBut just should be done correct.\r\n\r\n**Other Comments:**\r\n', '1', null, null, 'robinboehm', '2014-03-20T07:47:12Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4601', '37', '6767', 'Spelling mistake', '', '1', null, null, 'alexgarrett', '2014-03-20T11:57:50Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4602', '37', '677', 'fix(jqLite): JQLiteHasClass should work even when minified', 'closure compiler is smarter than we expected and drops the unused fn\r\nargument - this breaks the meta-programing logic of jqLite.\r\n\r\nThe fix special cases JQLiteHasClass since its the only fn that needs\r\nthis treatment in a way that is minification-proof.', '1', null, null, 'IgorMinar', '2011-11-29T03:09:14Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4603', '37', '6772', 'fix(limitTo): do not convert Infinity to NaN', '`parseInt(Infinity, 10)` will result in `NaN`, which becomes undesirable when the\r\nexpected behaviour is to return the entire input.\r\n\r\nI believe this is possibly useful as a way to toggle input limiting based on\r\ncertain factors.\r\n\r\nCloses #6771', '9', null, null, 'caitp', '2014-03-20T15:16:04Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4604', '37', '6773', 'fix(ngResource): resource instances should be instantiated with the corr...', '### The problem\r\nConsider a simple Resource \'class\' with a custom method added to the prototype:\r\n```js\r\nvar User = $resource(\'/user/:userId\', {userId:\'@id\'});\r\nUser.prototype.sayHello = function(){};\r\n```\r\nThen this will work:\r\n```js\r\nvar user = new User();\r\nuser.sayHi();\r\n```\r\nBut when one or more instances are retrieved using `.get()` or `.query()`, the wrong constructor is used, causing this functionality to break:\r\n```js\r\n// When using .get()\r\nvar user = User.get({userId:123}, function() {\r\n user.sayHi(); // This will not work\r\n});\r\n\r\n// When using .query()\r\nusers = User.query(function(){\r\n var user = users[0];\r\n user.sayHi(); // This will not work\r\n});\r\n```\r\nThis is a result of instantiating the new resource instances directly from the `Resource` constructor defined in the `resourceFactory()` function and not the constructor of the current Resource \'class\'.\r\n\r\n### The fix\r\n\r\nThis PR makes sure the correct constructor is used and the prototype is chained correctly if resource instances are created by `.get()` or `.query()`.\r\n\r\n```js\r\n// When using .get()\r\nvar user = User.get({userId:123}, function() {\r\n user.sayHi(); // This will now work as expected\r\n});\r\n\r\n// When using .query()\r\nusers = User.query(function(){\r\n var user = users[0];\r\n user.sayHi(); // This will now work as expected\r\n});\r\n```\r\nThis PR replaces and extends #5168 in that it now also includes support for objects instantiated by `query()` and is using a newer version of `ngResource`.\r\n\r\n\r\n\r\n', '13', null, null, 'jvandemo', '2014-03-20T15:26:09Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4605', '37', '6775', 'Added the \'whileEach\' function', 'Invokes the `iterator` function once for each item in `obj` collection, which can be either an object or an array until any value is returned or the end of the collection. The `iterator` function is invoked with `iterator(value, key)`, where `value` is the value of an object property or an array element and `key` is the object property key or array element index. Specifying a `context` for the function is optional.\r\n\r\nExample:\r\n var values = [\r\n {name: \'sandra\', gender: \'female\'},\r\n {name: \'carlos\', gender: \'male\'},\r\n {name: \'wally\', gender: \'male\'},\r\n {name: \'john\', gender: \'male\'}\r\n ];\r\n var gender = angular.whileEach(values, function(value, key){\r\n if (value.name === \'wally\') {\r\n return value.gender;\r\n }\r\n }, undefined, \'not found\');\r\n expect(gender).toEqual(\'male\');\r\n\r\nCarlos', '5', null, null, 'carlosV2', '2014-03-20T15:57:12Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4606', '37', '6779', 'Fix link to Closure Library', 'Request Type: docs\n\nHow to reproduce: \n\nComponent(s): \n\nImpact: medium\n\nComplexity: small\n\nThis issue is related to: \n\n**Detailed Description:**\n\nThe link (http://code.google.com/closure/library) throws a 404. The correct link seems to be https://developers.google.com/closure/library/\n\n**Other Comments:**\n\n', '4', null, null, 'oboxodo', '2014-03-20T19:17:47Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4607', '37', '678', 'refactor(interpolate): into a service', '', '1', null, null, 'mhevery', '2011-11-29T20:26:15Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4608', '37', '6780', 'docs(README): use svg badge', 'Request Type: docs\r\n\r\nHow to reproduce: \r\n\r\nComponent(s): \r\n\r\nImpact: small\r\n\r\nComplexity: small\r\n\r\nThis issue is related to: https://github.com/angular/angular.js/pull/6610.\r\n\r\n**Detailed Description:**\r\n\r\nUse svg badge so it looks nicer on retina displays.\r\n\r\n**Other Comments:**\r\n\r\nTravis just updated their badge to use svg yesterday - https://github.com/travis-ci/travis-ci/issues/630#issuecomment-38054967.', '4', null, null, 'emmaguo', '2014-03-21T00:06:15Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4609', '37', '6781', 'refactor($compile): allow adding directive collectors and extractors', 'Refactor `$compile` so it is able to accept directive collectors and directive extractors. Add all the current directive collectors and directive extractors that handle the current operations\r\n\r\nThis patch is to start the conversation if the refactor into directive collectors and directive extractors should be done at 1.3 or if this should wait to 2.0', '9', null, null, 'lgalfaso', '2014-03-21T01:33:11Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4610', '37', '6784', 'refactor($rootScope): add warnings when emitting/broadcasting on a destroyed scope', 'When a scope is destroyed, all event listeners gets unregistered, and the connection to\r\nthe parent/child scopes are removed. Because of this, no one is noticed of the event.\r\n$emit and $broadcast now logs a warning when trying to emit or broadcast an event on\r\na destroyed scope.\r\n\r\nCloses #6768', '5', null, null, 'andersekdahl', '2014-03-21T07:57:12Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4611', '37', '6786', 'Update ngClass.js', '', '3', null, null, 'Argentum88', '2014-03-21T09:31:03Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4612', '37', '6789', 'Update index.ngdoc', '', '5', null, null, 'fchastanet', '2014-03-21T14:40:45Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4613', '37', '6790', 'Update index.ngdoc', '', '5', null, null, 'fchastanet', '2014-03-21T15:06:56Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4614', '37', '6792', 'Remove JSONP patch from v1.2.x branch', '', '1', null, null, 'tbosch', '2014-03-21T20:07:58Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4615', '37', '6793', 'fix($animate): prevent cancellation timestamp from being too far in the future', 'Closes #6748', '8', null, null, 'matsko', '2014-03-21T20:41:06Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4616', '37', '6799', 'fix($animate): run CSS animations before JS animations to avoid style inheritance', 'If a JS animation is run before a CSS animation then the JS animation may end up writing style\r\ndata to the element. If any transition or animation style data is written then it may end up\r\nbeing accidentally inherited into the CSS animation hanlder that ngAnimate uses. This may result\r\nin an unexpected outcome due to the tweaks and hacks that the CSS handler places on the element.\r\nIf the CSS animation is run before the JS animation then, if there are no transitions on the style\r\nattribute nor within the global CSS on the page then nothing will happen and the JS animation can\r\nwork as expected.\r\n\r\nCloses #6675', '8', null, null, 'matsko', '2014-03-21T23:14:28Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4617', '37', '68', 'Fix URL_MATCHER', 'See #66\r\n', '1', null, null, 'vojtajina', '2010-10-19T09:29:49Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4618', '37', '6801', 'fix($compile): fix memory leak', 'For functions that have a \'&\' binding on the scope, change the function from an inline definition to an external definition so the function closure has no access to the parent scope.\r\n\r\nCloses #6794\r\n\r\nNote: I am not sure this if this is a Chrome GC bug (as the function never uses the parent scope), but for the scenario from the issue, the patch fixes the leak\r\n', '4', null, null, 'lgalfaso', '2014-03-22T16:12:28Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4619', '37', '6802', 'Fix broken internal link in directive documentation.', 'Request Type: docs\n\nHow to reproduce: \n\nComponent(s): di\n\nImpact: large\n\nComplexity: small\n\nThis issue is related to: \n\n**Detailed Description:**\n\n\n\n**Other Comments:**\n\n', '2', null, null, 'johnkpaul', '2014-03-22T16:24:55Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4620', '37', '6803', 'minimal typo fix', 'Request Type: docs\n\nHow to reproduce: \n\nComponent(s): \n\nImpact: small\n\nComplexity: small\n\nThis issue is related to: \n\n**Detailed Description:**\n\n\n\n**Other Comments:**\n\nMinimal typo fix', '2', null, null, 'SekibOmazic', '2014-03-22T19:53:00Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4621', '37', '6804', 'add notification & link to 1.2.x CHANGELOG', 'ref #6800 Not common knowledge to look in separate branch for information for a Stable update.\r\n\r\nI hope that notification stays on top, & doesn\'t get burred. I\'m open to changing the `<h3>` to something else.', '4', null, null, 'tomByrer', '2014-03-22T19:58:42Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4622', '37', '6806', 'fix(input): don\'t perform HTML5 validation on updated model-value', 'Running html5-validation immediately after model-value is updated is incorrect, because the view has not updated, and HTML5 constraint validation has not adjusted. This should be properly fixed later on by performing html5 validation after the view value is updated, and a comment has been left to address this in the future.\r\n\r\nCloses #6796', '6', null, null, 'caitp', '2014-03-23T02:41:52Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4623', '37', '6807', 'fix($compile): Major Memory Leak in Directive \'&\' attribute', 'Request Type: bug\n\nHow to reproduce: http://plnkr.co/edit/TW2TjC8JkxlDyQRCLcRg\nStart on Home, click link for Leak directive, click link for Home page.\nIn chrome timeline force garbage collection.\nTake heap snapshot. Despite being entirely gone from the page and no external references, directive is not GC\'ed and because it contains a reference to it\'s parent, the parent is not collected either.\n\nComponent(s): $compile\n\nImpact: large\n\nComplexity: small\n\nThis issue is related to: a memory leak\n\n**Detailed Description:**\n\nWhen a directive is written using \'&\' reverse one way binding there is a major memory leak. \nwhen & attribute removed, leak is gone.\n\n**Other Comments:**\n\nFor functions that have a \'&\' binding on the scope, change the function\r\nfrom an inline definition to an external definition so the function\r\nclosure has no access to the parent scope.\r\nBackport of fix on 1.3.x\r\n\r\nCloses #6794', '5', null, null, 'btesser', '2014-03-23T02:53:41Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4624', '37', '6809', 'Update index.ngdoc', 'For installing karma, the command `npm install` should probably be `npm install karma`.', '1', null, null, 'basvandenberg', '2014-03-23T13:14:48Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4625', '37', '681', 'Controller / scope separation', '', '10', null, null, 'vojtajina', '2011-11-30T21:39:47Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4626', '37', '6813', 'WIP: initial spike at debouncing inside NgModelController', 'I thought I would have a play with the idea of NgModelController being responsible for debouncing.\r\n\r\nThings look good until you try to cancel a debounce based on a model change. If the model change is not going to change the actual model even though the pending view model is different we are a bit stuffed since we don\'t know whether to cancel the pending update or not...', '9', null, null, 'petebacondarwin', '2014-03-23T16:44:34Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4627', '37', '6814', 'Update step_02.ngdoc', 'Request Type: test\n\nHow to reproduce: Walk through step 2 on a machine without karma cli. Can\'t run the bash testing script.\n\nComponent(s): misc core\n\nImpact: medium\n\nComplexity: small\n\nThis issue is related to: \n\n**Detailed Description:**\n\nIt\'s just an improvement to make the tutorial actually work if you\'ve never installed karma before\n\n**Other Comments:**\n\nLine 189-Modified line to say what to install. Without -g karma-cli it won\'t run.', '4', null, null, 'mahopa', '2014-03-23T18:02:39Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4628', '37', '6819', 'Check if \"input\" variable is defined', 'By default, \"greeting\" textfield in this example is prepopulated with \"hello\" text, but it\'s pretty easy to copy just filter code to use it in your app. If your textfield is empty while app loads, you\'ll get an error: \"Error: [$interpolate:interr] Can\'t interpolate: Reverse: {{greeting|reverse}} TypeError: Cannot read property \'length\' of undefined\". To prevent this, we should check \"input\" variable, and proceed only in case it is defined.', '0', null, null, 'renatus', '2014-03-24T19:44:44Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4629', '37', '682', 'fix(route): $destroy scope after update and reload', 'When we update route (changing only search param, no route reload) and then reload (change to different\r\nroute), it did not $destroy last scope.', '2', null, null, 'vojtajina', '2011-12-01T04:45:53Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4630', '37', '6824', 'Update step_02.ngdoc', 'Request Type: docs\n\nHow to reproduce: In Windows attempt to run scripts\\test.bat\n\nComponent(s): misc core\n\nImpact: medium\n\nComplexity: small\n\nThis issue is related to: \n\n**Detailed Description:**\n\nIn Windows you need the karma-cli with -g flag installed to let the bat script (scripts\\test.bat) run.\n\n**Other Comments:**\n\nLine 189 does not install necessary dependencies in Windows\r\n![image](https://f.cloud.github.com/assets/4668335/2507028/7f8a9146-b3b2-11e3-9252-62edfd7d3137.jpg)\r\n', '8', null, null, 'mahopa', '2014-03-25T00:15:12Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4631', '37', '6825', 'Update filters.js', 'this is a much effective way with new Array()', '3', null, null, 'LukeLin', '2014-03-25T02:48:09Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4632', '37', '6826', 'docs(ngAnimate): change \"&#64\" to \"@\" symbol', 'Request Type: docs\r\n\r\nHow to reproduce:\r\nSee http://docs.angularjs.org/api/ngAnimate\r\n\r\nComponent(s): ngAnimate\r\n\r\nImpact: small\r\n\r\nComplexity: small\r\n\r\nThis issue is related to:\r\n\r\n**Detailed Description:**\r\n\r\n&#64 was not rendered as an \"@\" symbol (even after adding the missing semicolon). Replacing this with an actual \"@\" symbol.\r\nCloses #6822.', '1', null, null, 'teddywing', '2014-03-25T03:35:59Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4633', '37', '6830', 'Updated example for resource.js', 'Request Type: docs\n\nHow to reproduce: \n\nComponent(s): ngResource\n\nImpact: medium\n\nComplexity: small\n\nThis issue is related to: \n\n**Detailed Description:**\n\nWrong parameters in example of query function of ngResource\n\n**Other Comments:**\n\n', '5', null, null, 'bartoszhernas', '2014-03-25T09:28:05Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4634', '37', '6833', 'fix(ngRepeat): allow extra whitespaces in (key,value) of ngRepeat', 'Request Type: \n\nHow to reproduce: \n\nComponent(s): ngRepeat\n\nImpact: small\n\nComplexity: small\n\nThis issue is related to: \n\n**Detailed Description:**\n\n\n\n**Other Comments:**\n\nWhitespaces allowed in (key,value) expression of ngRepeat.\r\n\r\ne.g. ( aaa , bbb ) will be accepted by parser\r\n\r\ncloses #6827', '10', null, null, 'SekibOmazic', '2014-03-25T12:30:10Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4635', '37', '6834', 'ie8 fix for html5mode route', 'This is my fix for IE8 router problem - https://github.com/angular/angular.js/issues/6832 (issue is described here).', '4', null, null, 'LorDOniX', '2014-03-25T13:07:10Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4636', '37', '6838', 'Update ngStyle.js', 'Explaining that single quotes are needed for property/value pairs. Feel free to improve on this but it is something that is needed in the documentation.', '4', null, null, 'AJCraddock', '2014-03-25T14:55:57Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4637', '37', '6839', 'docs(css): Add background to .type-hint-domelement', 'Request Type: docs\n\nHow to reproduce: \n\nComponent(s): \n\nImpact: small\n\nComplexity: small\n\nThis issue is related to: \n\n**Detailed Description:**\n\n\n\n**Other Comments:**\n\n.type-hint-domelement does not have a background color assigned to it. DOM element type hint\'s are now proudly displayed with CadetBlue.', '4', null, null, 'adamdbradley', '2014-03-25T15:54:50Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4638', '37', '684', 'service decorator', 'decorator + some other fixes', '1', null, null, 'IgorMinar', '2011-12-03T00:40:12Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4639', '37', '6840', 'Update i18n.ngdoc', 'Fix broken links.', '2', null, null, 'Juanmcuello', '2014-03-25T16:20:21Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4640', '37', '6841', 'fix($animate): make CSS blocking optional for class-based animations', '$animate attempts places a `transition: none 0s` block on the element when\r\nthe first CSS class is applied if a transition animation is underway. This\r\nworks fine for structural animations (enter, leave and move), however, for\r\nclass-based animations, this poses a big problem. As of this patch, instead\r\nof $animate placing the block, it is now the responsibility of the user to\r\nplace `transition: 0s none` into their class-based transition setup CSS class.\r\nThis way the animation will avoid all snapping and any will allow $animate to\r\nplay nicely with class-based transitions that are defined outside of ngAnimate.\r\n\r\nCloses #6674\r\nCloses #6739\r\n\r\nBREAKING CHANGE: Any class-based animation code that makes use of transitions\r\nand uses the setup CSS classes (such as class-add and class-remove) must now\r\nprovide a empty transition value to ensure that its styling is applied right\r\naway. In other words if your animation code is expecting any styling to be\r\napplied that is defined in the setup class then it will not be applied\r\n\"instantly\" default unless a `transition:0s none` value is present in the styling\r\nfor that CSS class. This situation is only the case if a transition is already\r\npresent on the base CSS class once the animation kicks off.', '13', null, null, 'matsko', '2014-03-25T17:33:27Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4641', '37', '6842', 'Use the full list of google closure locales', 'The current list of locales is not complete and partly wrong.\r\n\r\nI adjusted the locale generation to use the full list of the locales in the google closure library in order to have \r\na) a correct generated list e.g. Peru had the currency euro because the fallback of Spanish as currency was euro \r\nb) a complete list of locales (why were they missing anyway?)\r\n\r\nBTW: in the currently used numberformatsymbols.js from Closure it says:\r\n```\r\n* To reduce the file size (which may cause issues in some JS\r\n* developing environments), this file will only contain locales\r\n* that are frequently used by web applications.\r\n```\r\nI think all possible locale files should be generated.', '10', null, null, 'klyrr', '2014-03-25T18:53:40Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4642', '37', '6843', 'small typos in step-2', '2 l\'s in controller!', '2', null, null, 'jfortunato', '2014-03-25T22:50:18Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4643', '37', '6846', 'docs(error/index): add header', '', '1', null, null, 'wbyoko', '2014-03-26T02:12:55Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4644', '37', '6847', 'docs(guide/unit-testing): correct link', 'Request Type: docs\n\nHow to reproduce: \n\nComponent(s): \n\nImpact: large\n\nComplexity: small\n\nThis issue is related to: \n\n**Detailed Description:**\n\n\n\n**Other Comments:**\n\ndocs not building. changed karma-ng-html2js-preprocessor to markdown link.', '2', null, null, 'wbyoko', '2014-03-26T02:25:32Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4645', '37', '6848', 'chore(docs): remove unneeded Bootstrap/jQuery files from distribution', 'Request Type: chore\n\nHow to reproduce: \n\nComponent(s): \n\nImpact: medium\n\nComplexity: medium\n\nThis issue is related to: \n\n**Detailed Description:**\n\n\n\n**Other Comments:**\n\nsaves .75 megabytes in the zip', '7', null, null, 'wbyoko', '2014-03-26T02:42:31Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4646', '37', '6849', 'docs(error/index): add header', 'Request Type: docs\n\nHow to reproduce: \n\nComponent(s): \n\nImpact: small\n\nComplexity: small\n\nThis issue is related to: \n\n**Detailed Description:**\n\n\n\n**Other Comments:**\n\n', '1', null, null, 'wbyoko', '2014-03-26T02:45:00Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4647', '37', '685', 'Directive', '', '0', null, null, 'mhevery', '2011-12-07T08:51:35Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4648', '37', '6850', 'docs(misc/index): add header; general links', 'Request Type: docs\n\nHow to reproduce: \n\nComponent(s): \n\nImpact: small\n\nComplexity: small\n\nThis issue is related to: \n\n**Detailed Description:**\n\n\n\n**Other Comments:**\n\n', '1', null, null, 'wbyoko', '2014-03-26T02:46:22Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4649', '37', '6851', 'docs(misc/started): add header', 'Request Type: docs\n\nHow to reproduce: \n\nComponent(s): \n\nImpact: small\n\nComplexity: small\n\nThis issue is related to: \n\n**Detailed Description:**\n\n\n\n**Other Comments:**\n\n', '1', null, null, 'wbyoko', '2014-03-26T02:47:59Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4650', '37', '6856', 'fix(Scope): aggressively clean up scope on $destroy to minimize leaks', 'Due to a known V8 memory leak[1] we need to perform extra cleanup to make it easier\r\nfor GC to collect this scope object.\r\n\r\nThe theory is that the V8 leaks are due to inline caches which are caches\r\nbuilt on the fly to speed up property access for javascript objects.\r\n\r\nBy cleaning the scope object and removing all properties, we clean up ICs\r\nas well and so no leaks occur.\r\n\r\nI was able to manually verify that this fixes the problem for the following\r\nexample app: http://plnkr.co/edit/FrSw6SCEVODk02Ljo8se?p=preview\r\n\r\nGiven the nature of the problem I\'m not 100% sure that this will work around\r\nthe V8 problem in scenarios common for Angular apps, but I guess it\'s better\r\nthan nothing.\r\n\r\nCloses #6794', '2', null, null, 'IgorMinar', '2014-03-26T06:14:04Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4651', '37', '6858', 'Update e2e-testing.ngdoc', 'typo', '3', null, null, 'ccfontes', '2014-03-26T11:52:11Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4652', '37', '6865', 'Fix confusing behaviour of ngResource callbacks', 'Request Type: bug\n\nHow to reproduce: Create a resource and add a response interceptor to an action. Make the interceptor return a function. Call the action and check the parameter handed into the callback function. The parameter will be a promise, not the resolved value of that promise.\n\nComponent(s): ngResource\n\nImpact: small\n\nComplexity: small\n\nThis issue is related to: \n\n**Detailed Description:**\n\nWhen using an interceptor in ngResource, if the interceptor returns a promise, this promise is given to the success callback. Instead, the object which resolves the promise should be given to the success callback.\n\n**Other Comments:**\n\nThis fixes issue #6731', '5', null, null, 'alexsanford', '2014-03-26T18:29:29Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4653', '37', '6867', 'Update step_12.ngdoc', 'missed word in copy.', '3', null, null, 'jerryfan', '2014-03-26T20:02:11Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4654', '37', '6868', 'Refactor and simplify release', '- don\'t update phonecat and seed during a release\r\n- calculate the cdnVersion on every build\r\n- remove after CDN scripts', '1', null, null, 'tbosch', '2014-03-26T22:56:12Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4655', '37', '6869', 'docs($compile): add note about recursive compilation in templates', 'I am not sure the explanation is clear, but I think it\'s something that should be noted.\r\n\r\nCloses https://github.com/angular/angular.js/issues/3079', '3', null, null, 'Narretz', '2014-03-26T23:03:49Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4656', '37', '6871', 'Filter docs', '', '5', null, null, 'jvans1', '2014-03-27T02:32:28Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4657', '37', '6874', 'Update ngShowHide.js', 'Typo \'hrml\'', '2', null, null, 'winkler1', '2014-03-27T13:44:49Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4658', '37', '6876', 'fix(input): Allow ng-true-value and ng-required on a checkbox', 'Put the input[checkbox] formatter and parser first in the `$formatters` and `$parsers` queue so they are the first being called when formatting and the last when parsing. This allows the existing logic at `ng-required` (that uses `$isEmpty`) to work on the `ng-true-value` value\r\n\r\nCloses #6875', '2', null, null, 'lgalfaso', '2014-03-27T15:45:58Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4659', '37', '6877', 'docs(guide/ngScope): fix links to $interpolate', '', '1', null, null, 'Narretz', '2014-03-27T18:12:07Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4660', '37', '6878', 'docs(css): Remove Firefox select element default', 'Request Type: docs\n\nHow to reproduce: View the docs from Firefox. The version picker\'s select elements arrow is still showing.\n\nComponent(s): \n\nImpact: small\n\nComplexity: small\n\nThis issue is related to: \n\n**Detailed Description:**\n\n\n\n**Other Comments:**\n\nIn firefox the version picker\'s dropdown from the default select element is still showing. This is a hack to force FF to hide the ugly default.', '2', null, null, 'adamdbradley', '2014-03-27T19:40:19Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4661', '37', '6879', 'Update orderBy.js', 'Fixed typo', '2', null, null, 'ChrisRose', '2014-03-27T20:30:04Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4662', '37', '6880', 'Created a new filter for doing in-place replacement.', 'Request Type: feature\n\nHow to reproduce: \n\nComponent(s): misc core\n\nImpact: small\n\nComplexity: small\n\nThis issue is related to: \n\n**Detailed Description:**\n\nThe filter is handy to do in-place value replace in template.\n\n**Other Comments:**\n\nThe filter can be used like this\r\n```\r\n<span>{{ name | replace : [null, undefined, \"\"] : \"N/A\" }}</span>\r\n```\r\n\r\nPlease check the doc for detail.', '3', null, null, 'zsong', '2014-03-27T21:23:15Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4663', '37', '6882', 'docs($sce): fix typo.', '', '1', null, null, 'davidlehn', '2014-03-28T00:15:58Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4664', '37', '6885', 'Documentation: Add missing argument to npm install', 'Request Type: docs\n\nHow to reproduce: \n\nComponent(s): \n\nImpact: small\n\nComplexity: small\n\nThis issue is related to: \n\n**Detailed Description:**\n\nThe argument `karma` was missing in the command `npm install` given for the installation of [Karma](http://karma-runner.github.io/0.12/index.html).\n\n**Other Comments:**\n\n', '3', null, null, 'anant-sogani', '2014-03-28T06:30:54Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4665', '37', '6886', 'feat($parse): Support for typeof, instanceof, void, in operators', 'This PR is a solution to Issue #6765.\r\n\r\nThe `$parse` service not supports `typeof`, `instanceof`, `void`, and `in` operators.\r\nFurthermore in case of `instanceof` we can check whether some object is an instance created by a constructor defined on scope:\r\n```javascript\r\nscope.Fn = function(){};\r\nscope.obj = new scope.Fn();\r\n$parse(\'obj instanceof Fn\')(scope); //yields \'true\'\r\n```\r\nas well as check whether some object is an instance of a global \'class\' like `Date` or `Array`:\r\n```javascript\r\nscope.arr = [1, 2, 3];\r\n$parse(\'arr instanceof Array\')(scope); //yields \'true\'\r\n```', '11', null, null, 'kamilkp', '2014-03-28T06:43:17Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4666', '37', '689', 'Q docs', '', '1', null, null, 'IgorMinar', '2011-12-12T16:10:32Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4667', '37', '6890', 'fix($sniffer) & fix(ng-input): add check for older webkit browsers and extra milliseconds for iOS7', '**Request Type**: bug\r\n\r\n#### How to reproduce:\r\n\r\n- $sniffer: Create a multipage app with redirects in angular and test it in Android or Safari 5 or lower, the app will end up in an endless loop and eventually crash the browser.\r\n- ng-input: Create a form with validation and try to submit on an iOS7 device, the last character never gets sent, so the form always returns invalid.\r\n\r\n**Component(s)**: misc core\r\n\r\n**Impact**: medium\r\n\r\n**Complexity**: small\r\n\r\n**This issue is related to**: [#6733](https://github.com/angular/angular.js/pull/6733)\r\n\r\n#### Detailed Description:\r\n\r\nWe created a responsive web app in angular, but ran into two issues:\r\n\r\n* older webkit engines (< 534) have problem with pushState, these are used in Safari 5 and lower and the Android default browser (not Chrome)\r\n* iOS7 the change event is fired before the value is updated', '5', null, null, 'WardMe', '2014-03-28T12:36:24Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4668', '37', '6891', 'fix(ngCloak) don\'t show template binding braces during ng-init', 'Request Type: \n\nHow to reproduce: \n\nComponent(s): misc core\n\nImpact: small\n\nComplexity: small\n\nThis issue is related to: \n\n**Detailed Description:**\n\n\n\n**Other Comments:**\n\nwill prevent showing binding braces during ng-init.\r\n\r\ncloses #2927', '2', null, null, 'SekibOmazic', '2014-03-28T12:38:26Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4669', '37', '6892', 'style(loader.js): correct JSDoc tags of the params of the function module(name, requires, configFn)', 'Request Type: docs\n\nHow to reproduce: \n\nComponent(s): misc core\n\nImpact: small\n\nComplexity: small\n\nThis issue is related to: \n\n**Detailed Description:**\n\n\n\n**Other Comments:**\n\nThis will improve the hints for IDE\'s which support the Google Closure Compiler (e.g. Webstorm)', '10', null, null, '4kochi', '2014-03-28T12:52:45Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4670', '37', '6893', 'refactor(filters): make numberFilter and currencyFilter take locale change into account', 'Request Type: refactor\n\nHow to reproduce: \n\nComponent(s): misc core\n\nImpact: small\n\nComplexity: small\n\nThis issue is related to: \n\n**Detailed Description:**\n\nMake numberFilter and currencyFilter filters take into account a locale change. Currently, if the locale is changed in an application, the filters will update their output without taking into account the new locale. This is because the locale NUMBER_FORMATS parameters are \"cached\" in those filters, unlike in dateFilter.\n\n**Other Comments:**\n\n', '3', null, null, 'troch', '2014-03-28T15:59:04Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4671', '37', '6894', 'extending resources with response data and support for instance\'s array actions', 'Request Type: feature\n\nHow to reproduce: \n\nComponent(s): ngResource\n\nImpact: small\n\nComplexity: small\n\nThis issue is related to: \n\n**Detailed Description:**\n\nA suggested solution for #4565\n\nWhen calling a Resource instance\'s ```GET``` actions such as ```$get``` and ```$query``` but mostly custom ones, it is sometimes needed to be able to extend the resource with the response data e.g:\n\n```javascript\nentity.$children()\n.then(function(){\n console.log(entity.children) //undefined\n});\n//the response did not become a part of the resource\n```\nAutomatically setting the response on the resource with the property name is a bad idea since it can lead to unexpected overrides (the resource might have had a property named children) and generally it should be up to the user to decide whether to extend or not and how.\n\nMy approach involves leveraging the Resource\'s interceptor to achieve a both flexible and clean way to extend instances. By calling the interceptor\'s response function with the instance as it\'s context (this) it is possible to reference it and set the desired properties:\n\n```javascript\n$resource(\'[...]/entity/:id\', {}, {\n \'children\': {\n method: \'GET\',\n url:\'[...]/entity/:id/children\',\n params:{id:\'@id\'},\n isArray:true,\n interceptor:{\n response: function(response){\n var data = response.data;\n this.children = data; //\"this\" references the entity resource\n return data;\n }\n }\n }\n});\n```\n\n**Other Comments:**\n\n', '4', null, null, 'yohairosen', '2014-03-28T16:01:56Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4672', '37', '6895', 'Changes `end 2 end` to `end-to-end`', 'Request Type: docs\n\nHow to reproduce: Read the directive docs.\n\nComponent(s): \n\nImpact: \n\nComplexity: small\n\nThis issue is related to: \n\n**Detailed Description:**\n\n\n\n**Other Comments:**\n\nThe \'to\' in \'end-to-end\' is directional, not numeric', '1', null, null, 'martco', '2014-03-28T16:49:42Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4673', '37', '6896', 'chore($animate): fix broken IE8 test', '', '1', null, null, 'matsko', '2014-03-28T17:36:55Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4674', '37', '6899', 'feat($location): test $location enhancements from #6421 and fix them', 'This is temporary, just to run a travis build and hopefully make the patch easier to review.', '8', null, null, 'caitp', '2014-03-28T18:15:09Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4675', '37', '69', 'release versioning + file renaming', '* added support for version numbers\r\n* renamed files to angular.js, angular.min.js, etc\r\n* added some missing specs', '1', null, null, 'IgorMinar', '2010-10-20T04:23:31Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4676', '37', '6900', 'Minimal typo fixed', 'Request Type: \n\nHow to reproduce: \n\nComponent(s): \n\nImpact: small\n\nComplexity: small\n\nThis issue is related to: \n\n**Detailed Description:**\n\n\n\n**Other Comments:**\n\nMinimal typo fixed', '2', null, null, 'SekibOmazic', '2014-03-28T19:15:58Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4677', '37', '6905', 'docs(tutorial/step_02): update out of date test example', 'I believe the previous example for testing @ line 165 in tutorial/step_02 may be out of date. Exact code was resulting in the following error http://code.angularjs.org/1.2.15/docs/error/$injector/unpr\r\n\r\nCorrection was suggested by someone in the #angularjs IRC.', '2', null, null, 'AKST', '2014-03-29T06:51:08Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4678', '37', '6906', 'Update ngInclude doc for quoted source', 'Request Type: docs\n\nHow to reproduce: \n\nComponent(s): \n\nImpact: medium\n\nComplexity: small\n\nThis issue is related to: \n\n**Detailed Description:**\n\nAs noted on stackoverflow.com (http://stackoverflow.com/questions/13943471/angularjs-ng-include), the use of ngInclude requires single quotes around the template filename. The documentation and examples should show: <div ng-include=\" \'template.url\' \"> instead of simply \"template.url\" to remind users to enclose the filename in single quotes. As a additional step ngInclude should issue some warning that the include failed. It now fails silently and makes for a bad day at the programming chair.\n\n**Other Comments:**\n\nIn my fork I attempted to update the document file for ngInclude. Probably due to my lack of experience I was unable to match the document source to what I see online at docs.angularjs.org//api/ng/directive/ngInclude. Specifically I would have liked to update the Usage section to show ng-include=\" \'template.html\' \" on all occurrences. I\'ve only experienced this issue using ngInclude as an HTML attribute, so I did not know if the Element and CSS class usage examples should also be updated. Thanks for the great product. Angular is awesome.', '2', null, null, 'wolfstevent', '2014-03-29T14:10:30Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4679', '37', '6907', 'docs(guide): fixes link in \"Complementary libraries\" section', 'the link to `angular-translate` is outdated. this commit fixes it.', '3', null, null, 'PascalPrecht', '2014-03-29T14:15:35Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4680', '37', '6908', 'fix(scope): do not remove the $listeners properties on $destroy', 'Destroying the listener properties cases many issues when any of these operations is being performed on a destroyed scope or a child scope\r\n* Registering a new event\r\n* Deregistering an existing event\r\n* Destroying an insolated child scope with a destroyed parent\r\n* Sending an `$emit` from a child scope with a destroyed parent\r\n\r\nCloses #6897', '8', null, null, 'lgalfaso', '2014-03-29T14:22:56Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4681', '37', '6909', 'Update index.ngdoc', 'Request Type: docs\n\nHow to reproduce: \n\nComponent(s): \n\nImpact: medium\n\nComplexity: \n\nThis issue is related to: \n\n**Detailed Description:**\n\nfor lot of beginners starting up the http server is puzzle and usually for beginners the current directory is unknown. I was trying to specify the current directory and how to turn on the server.\n\n**Other Comments:**\n\na little help for beginners who face issues while trying to start up the server.', '1', null, null, 'darojuv', '2014-03-29T15:14:09Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4682', '37', '691', 'Typo in docs - $watch instead of $digest.', '', '1', null, null, 'mhansen', '2011-12-16T03:49:51Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4683', '37', '6910', 'fix(ngEventDirs): blur and focus use $evalAsync to prevent inprog errors', 'Request Type: bug\r\n\r\nHow to reproduce: \r\n\r\n- ng-click triggers focus() on an element that has ng-focus \r\n- ng-key* triggers blur() on an element that has ng-blur \r\n- moving an element in an ng-repeat that has ng-blur before the preceding item\r\n\r\nComponent(s): \r\n\r\nImpact: medium\r\n\r\nComplexity: medium\r\n\r\nThis issue is related to: \r\n\r\n**Detailed Description:**\r\n\r\n\r\n\r\n**Other Comments:**\r\n\r\nThis fixes cases where ngFocus and ngBlur will throw $rootScope.inprog errors, because they have been called during an active digest. There are (at least) three scenarios where this can happen, see above\r\n\r\nng-click triggers focus() on an element that has ng-focus\r\nng-key* triggers blur() on an element that has ng-blur\r\nmoving an element with ng-blur in an ng-repeat before the preceding item\r\n\r\nThere\'s some discussion about this in #5402\r\n\r\nI\'d say we give it a shot and see if it causes any problems. Using $evalAsync was suggested by @caitp in https://github.com/angular/angular.js/issues/4979#issuecomment-35659108 .\r\n\r\nFixes #5945\r\nCloses #5402', '25', null, null, 'Narretz', '2014-03-29T21:30:32Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4684', '37', '6911', 'fix(ngSanitize): encode surrogate pair properly', 'The encodeEndities function encode non-alphanumeric characters to entities with charCodeAt.\r\ncharCodeAt does not return one value when their unicode codeponts is higher than 65,356.\r\nIt returns surrogate pair, and this is why the Emoji which has higher codepoints is garbled.\r\nWe need to handle them properly.\r\n\r\nCloses #5088', '14', null, null, 'memolog', '2014-03-29T21:53:02Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4685', '37', '6912', 'Update version-info.js', 'replaced grep with match\r\nWindows operating systems do not have grep by default', '6', null, null, 'Bobdina', '2014-03-30T06:58:20Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4686', '37', '6914', 'Improve wording for Model definition.', 'That makes more sense.\r\n\r\nWhere is the \"Directive Info\" published?\r\n\r\n```\r\nThis directive creates new scope.\r\n```\r\n\r\ncan be changed to\r\n\r\n```\r\nThis directive creates a new scope.\r\n```', '3', null, null, 'trusktr', '2014-03-30T21:24:11Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4687', '37', '6915', 'Some small grammatical changes.', '', '3', null, null, 'trusktr', '2014-03-30T21:57:39Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4688', '37', '6921', 'Save people time with this valuable info.', '', '4', null, null, 'trusktr', '2014-03-31T13:04:41Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4689', '37', '6923', 'ngAnimate: a requestAnimationFrame callback is created for each non-animated animatable child of a structurally animated element', 'Request Type: perf\n\nHow to reproduce: Enter an ng-view with ng-repeat items inside, check Developer Tools\' timeline.\n\nComponent(s): ngAnimate\n\nImpact: medium\n\nComplexity: small\n\nThis issue is related to: \n\n**Detailed Description:**\n\nWhen a view with animatable (e.g., ng-repeat) children is entered, the children don\'t get a structural animation since the parent is being animated. This is noticed in performAnimation with a call to animationsDisabled(...) and the code calls closeAnimation. closeAnimation is asynchronous when the animation that could have been run is structural, but this is unnecessary in this case as nothing has been done. One such callback costs 0.2 - 0.5ms on an iPhone5, a view with 100 items will cost 20ms of javascript execution.\n\n**Other Comments:**\n\n', '1', null, null, 'mikaraento', '2014-03-31T16:49:41Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4690', '37', '6924', 'Don\'t create history state when adding leading slash to hash', 'Request Type: bug\n\nHow to reproduce: \n\nComponent(s): $location\n\nImpact: small\n\nComplexity: small\n\nThis issue is related to: \n\n**Detailed Description:**\n\nWhen hash doesn\'t starts with \'/\' Angular adds it. This creates new history state in browser. After this window.history.back() and so the back button of browser don\'t work as expected.\n\n**Other Comments:**\n\n', '4', null, null, 'zuzusik', '2014-03-31T17:06:38Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4691', '37', '6925', 'perf(ngAnimate): closeAnimation synchronously when no animation', 'Request Type: perf\r\n\r\nHow to reproduce: Enter an ng-view with ng-repeat items inside, check Developer Tools\' timeline.\r\n\r\nComponent(s): ngAnimate\r\n\r\nImpact: medium\r\n\r\nComplexity: small\r\n\r\nThis issue is related to: \r\n\r\n**Detailed Description:**\r\n\r\nWhen a view with animatable (e.g., ng-repeat) children is entered, the children don\'t get a structural animation since the parent is being animated. This is noticed in performAnimation with a call to animationsDisabled(...) and the code calls closeAnimation. closeAnimation is asynchronous when the animation that could have been run is structural, but this is unnecessary in this case as nothing has been done. One such callback costs 0.2 - 0.5ms on an iPhone5, a view with 100 items will cost 20ms of javascript execution.\r\n\r\n**Other Comments:**', '7', null, null, 'mikaraento', '2014-03-31T17:11:51Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4692', '37', '6930', 'testing fail tutorial step_08.ngdoc', 'Request Type: docs\r\n\r\nHow to reproduce: angular-phonecat tutorial moved to step_08\r\nand running controllerSpec.js to karma testing\r\n\r\nComponent(s): \r\n\r\nImpact: small\r\n\r\nComplexity: small\r\n\r\nThis issue is related to: \r\n\r\n**Detailed Description:**\r\n\r\nUsers test angularjs tutorial. and finally reach to the 08 step.\r\nkarma testing is fail.\r\nfore documents(step_05.ngdoc) not describe that Global Module Loaded.\r\n\r\n**Other Comments:**\r\n\r\nfore documents(step_05.ngdoc) not describe that Global Module Loaded', '4', null, null, 'Nipol', '2014-03-31T22:48:14Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4693', '37', '6932', 'fix($parse): mark constant unary minus expressions as constant', 'Request Type: bug\n\nHow to reproduce: Parse an expression like `-42`. Check its `constant` flag. Expected: `true`. Actual: `false`.\n\nComponent(s): $parse\n\nImpact: small\n\nComplexity: small\n\nThis issue is related to: \n\n**Detailed Description:**\n\nExpressions that use the unary `-` operator are currently never marked as constants.\n\nMake `Parser.ZERO` a constant expression function, so that unary minus\nexpressions that use it may be marked constant.\n\n**Other Comments:**\n\n', '3', null, null, 'teropa', '2014-04-01T04:05:13Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4694', '37', '6935', 'Fix link in location.js documentation', 'Request Type: docs\n\nHow to reproduce: \n\nComponent(s): $location\n\nImpact: \n\nComplexity: \n\nThis issue is related to: \n\n**Detailed Description:**\n\n\n\n**Other Comments:**\n\nSee the top of http://docs.angularjs.org/api/ng/service/$location', '2', null, null, 'mormegil-cz', '2014-04-01T09:48:43Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4695', '37', '6937', 'Fixing weird formatting in filter documentation', 'Request Type: docs\n\nHow to reproduce: Go to Filter documentation (http://docs.angularjs.org/api/ng/filter/filter), in the arguments table, compare the details column of `expression` with `comparator`, specifically after the line \"Can be one of:\"\n\nComponent(s): \n\nImpact: small\n\nComplexity: small\n\nThis issue is related to: \n\n**Detailed Description:**\n\nMinor changes in the docs: the `comparator` argument description in the filter documentation (http://docs.angularjs.org/api/ng/filter/filter) was looking really weird, as it should look like the `expression` argument doc - a simple list of possible data types.\n\n**Other Comments:**\n\n', '11', null, null, 'viniciuspires', '2014-04-01T14:27:47Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4696', '37', '6938', 'feat(jqLite):support find element by id and class', 'Request Type: feature\n\nHow to reproduce: \n\nComponent(s): jqLite\n\nImpact: small\n\nComplexity: small\n\nThis issue is related to: \n\n**Detailed Description:**\n\n\n\n**Other Comments:**\n\nEasier to locate elements by providing more options of selectors instead of by tag name only', '7', null, null, 'co0lsky', '2014-04-01T15:51:18Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4697', '37', '6939', 'Outdated? start up instructions for web-server', 'Doesn\'t look like there is a scripts/web-server.js script, so doing \"node scripts/web-server.js\" doesn\'t work. On the other hand, \"npm start\" from the root project directory seems to start things up. No idea if this is still true in windows, but it probably is. Somebody should check that and make relevant changes to the windows tab of the instructions if needed. Similar changes will need to be made on the root tutorial page as well. Tested from Ubuntu 13.10', '4', null, null, 'awilliams199009', '2014-04-01T16:39:27Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4698', '37', '6940', 'docs(tutorial): update tutorial steps to discuss protractor', '', '3', null, null, 'juliemr', '2014-04-01T18:15:39Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4699', '37', '6941', 'fix($compile) support templates with select content root nodes', 'Request Type: bug\n\nHow to reproduce: Create a directive with the following template:\n```html\n<option>Hello there!</option>\n```\nIn IE9, it will throw an error complaining about more than one node in the template.\n\nComponent(s): $compile\n\nImpact: small\n\nComplexity: small\n\nThis issue is related to: \n\n**Detailed Description:**\n\n\n\n**Other Comments:**\n\nIf the first element in a template is an <option> or <optgroup> tag,\r\nthe compiler will wrap it with a <select> tag. This satisfies IE9.\r\n\r\nCloses #6926', '3', null, null, 'aeharding', '2014-04-01T20:03:25Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4700', '37', '6942', 'fix($compile): set $isolateScope correctly for sync template directives', 'Request Type: bug\n\nHow to reproduce: http://plnkr.co/edit/nxtZGWarSPKHbtuBSiST?p=preview\n\nThe directive with \'templateUrl\' is marked correctly as $isolateScope, while the directive with \'template\' is marked as $isolateScopeNoTemplate and causes jqLite#scope() to return the incorrect scope for children elements\n\nComponent(s): $compile\n\nImpact: small\n\nComplexity: small\n\nThis issue is related to: \n\n**Detailed Description:**\n\nall isolated scope directives that do not have \'templateUrl\' where marked as $isolateScopeNoTemplate even if they did have a \'template\' attribute. this caused jqLite#scope() to return a different value for child elements in the directive template just because the template loaded synchronously via \'template\' and not \'templateUrl\'.\n\n**Other Comments:**\n\n', '3', null, null, 'shahata', '2014-04-01T20:55:22Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4701', '37', '6943', 'Increase readability for test fail line', '', '6', null, null, 'bricejlin', '2014-04-01T21:08:26Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4702', '37', '6944', 'docs($resource): change \"request\" to \"response\"', 'docs($resource): change \"request\" to \"response\"\r\n\r\nThis was confusing me a bit when I first read it. It clearly is meant to refer to response.', '3', null, null, 'thynctank', '2014-04-01T22:08:34Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4703', '37', '6945', 'feat(ngModelOptions): Model update behavior can now be customized', 'By default, any change on the content will trigger an immediate model update and form validation. This PR implements a new directive `ng-model-options` that allow you to override this default behavior in several ways.\r\n\r\nYou should specify an object with the different parameters.\r\n\r\nFor example, it allows to trigger an update only when a particular event or list of events is received by the input using the `updateOn` key. Should you need multiple events, just use a space delimited string.\r\n\r\nI.e. `ng-model-options=\"{ updateOn: \'blur\' }\"` will update and validate only after the control loses focus.\r\n\r\nIf you want to keep the default behavior and just add new events that may trigger the model update and validation, add \"default\" as one of the specified events.\r\n\r\nI.e. `ng-model-options=\"{ updateOn: \'default submit\' }\"`\r\n\r\nAlso, with the `debounce` option, `ng-model-options` will allow deferring the actual model update until a timer expires. The timer will be reset each time an event is triggered.\r\n\r\nI.e. `ng-model-options=\"{ debounce: 500 }\" for 500ms after the latest event.\r\n\r\nCustom timeouts for each event can be set for each event if you use an object in `debounce`. This can be useful to force immediate updates on some specific circumstances (like blur events).\r\n\r\nI.e. `ng-model-options=\"{ updateOn: \'default blur\', debounce: { default: 500, blur: 0} }\"`\r\n\r\nYou can use the directive in any tag so its contents became the default settings for any child control, although they can be overridden.\r\n\r\nCloses #1285, #2129', '42', null, null, 'lrlopez', '2014-04-01T23:18:55Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4704', '37', '6946', 'Fix link to Using $location in Developer Guide from $location reference', '', '3', null, null, 'b9chris', '2014-04-02T01:03:56Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4705', '37', '695', 'fix(angular): fix to check if source and destination are equivalent in angular.copy', 'Closes #693', '3', null, null, 'dmanek', '2011-12-19T19:55:48Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4706', '37', '6958', 'refactor(jqLite): make HTML-parsing constructor more robust', 'Previously, the jqLite constructor was limited and would be unable to circumvent many of the HTML5\r\nspec\'s \"allowed content\" policies for various nodes. This led to complicated and gross hacks around\r\nthis in the HTML compiler.\r\n\r\nThis change refactors these hacks by simplifying them, and placing them in jqLite rather than in\r\n$compile, in order to better support these things, and simplify code.\r\n\r\nWhile the new jqLite constructor is still not even close to as robust as jQuery, it should be more\r\nthan suitable enough for the needs of the framework, while adding minimal code.\r\n\r\nCloses #6941\r\nCloses #6926\r\n', '15', null, null, 'caitp', '2014-04-02T16:10:50Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4707', '37', '696', 'fix(angular): fix to check if source and destination are equivalent in angular.copy', 'Closes #693', '1', null, null, 'dmanek', '2011-12-19T21:27:07Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4708', '37', '6960', 'Update tutorial documentation step_00.ngdoc', 'Request Type: docs\n\nHow to reproduce: \n\nComponent(s): \n\nImpact: small\n\nComplexity: small\n\nThis issue is related to: \n\n**Detailed Description:**\n\nAs a developer learning AngularJS through `PhoneCat Tutorial App` on page `0 - Bootstrapping`, I\'d like to see a code in tutorial\'s page in the same way like is coded within demo project. Tutorial uses `lib` and `css` folders for linking plugins instead of `bower_components`.\n\nIn Pull Request #6960 I fixed this small issue ;)\n\nCheers, Martin\n\n### angular-phonecat/app/index.html\n\n```html\n <link rel=\"stylesheet\" href=\"../bower_components/bootstrap/dist/css/bootstrap.css\">\n <link rel=\"stylesheet\" href=\"css/app.css\">\n <script src=\"../bower_components/angular/angular.js\"></script>\n```\n### AngularJS: Tutorial: 0 - Bootstrapping\n\n* Link: http://docs.angularjs.org/tutorial/step_00\n* File: step_00.ngdoc\n\n```html\n <link rel=\"stylesheet\" href=\"css/app.css\">\n <link rel=\"stylesheet\" href=\"css/bootstrap.css\">\n <script src=\"lib/angular/angular.js\"></script>\n```\n\nand\n\n```html\n <script src=\"lib/angular/angular.js\">\n```\n\n**Other Comments:**\n\nThis change/branch was created directly through `improve this doc` button', '6', null, null, 'martinjezek', '2014-04-02T17:03:11Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4709', '37', '6962', 'refactor(jqLite): make HTML-parsing constructor more robust', 'Previously, the jqLite constructor was limited and would be unable to\ncircumvent many of the HTML5 spec\'s \"allowed content\" policies for various\nnodes. This led to complicated and gross hacks around this in the HTML\ncompiler.\n\nThis change refactors these hacks by simplifying them, and placing them in\njqLite rather than in $compile, in order to better support these things, and simplify code.\n\nWhile the new jqLite constructor is still not even close to as robust as\njQuery, it should be more than suitable enough for the needs of the\nframework, while adding minimal code.\n\nCloses #6941 Closes #6926', '2', null, null, 'caitp', '2014-04-02T18:12:59Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4710', '37', '6963', 'refactor(jqLite): make HTML-parsing constructor more robust (v1.2.x)', 'Previously, the jqLite constructor was limited and would be unable to\ncircumvent many of the HTML5 spec\'s \"allowed content\" policies for various\nnodes. This led to complicated and gross hacks around this in the HTML\ncompiler.\n\nThis change refactors these hacks by simplifying them, and placing them in\njqLite rather than in\n$compile, in order to better support these things, and simplify code.\n\nWhile the new jqLite constructor is still not even close to as robust as\njQuery, it should be more than suitable enough for the needs of the\nframework, while adding minimal code.\n\nCloses #6941 Closes #6926', '1', null, null, 'caitp', '2014-04-02T18:24:37Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4711', '37', '6964', 'fix(Angular.js): not serializing null values', 'toKeyValue should not serialize a value if that value is set as null. \r\n', '11', null, null, 'joshkurz', '2014-04-02T23:03:05Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4712', '37', '6965', 'fix(ngClass): handle ngClassOdd/Even affecting the same classes', 'The basic approach is to introduce a new `elt.data()` called `$classCounts` that keeps track of how many times `ngClass`, `ngClassEven`, or `ngClassOdd` tries to add a given class. The class is added only when the count goes from `0` to `1`, and removed only when the count hits `0`.\r\n\r\nIn order to avoid duplicating work, I moved some of the logic for checking which classes to add/remove into this directive and make the call to `$animate` myself.\r\n\r\nCloses #5271', '6', null, null, 'btford', '2014-04-02T23:04:43Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4713', '37', '6966', 'Update step_00.ngdoc', 'script/web-server.js is not present anymore. This doc might be referencing a previous version of the code. Currently the only way to start the server seems to be using \"npm start\".', '3', null, null, 'yilinglu', '2014-04-02T23:27:06Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4714', '37', '6968', 'fix(Scope): more clean up scope on $destroy to minimize leaks', 'Due to a known V8 memory leak[1] we need to perform extra cleanup to make it easier\r\nfor GC to collect this scope object.\r\n\r\nV8 leaks are due to strong references from optimized code (fixed in M34) and inline\r\ncaches (fix in works). Inline caches are caches that the virtual machine builds on the\r\nfly to speed up property access for javascript objects. These caches contain strong\r\nreferences to objects so under certain conditions this can create a leak.\r\n\r\nThe reason why these leaks are extra bad for Scope instances is that scopes hold on\r\nto ton of stuff, so when a single scope leaks, it makes a ton of other stuff leak.\r\n\r\nThis change removes references to objects that might be holding other big\r\nobjects. This means that even if the destroyed scope leaks, the child scopes\r\nshould not leak because we are not explicitly holding onto them.\r\n\r\nAdditionally in theory we should also help make the current scope eligible for GC\r\nby changing properties of the current Scope object.\r\n\r\nI was able to manually verify that this fixes the problem for the following\r\nexample app: http://plnkr.co/edit/FrSw6SCEVODk02Ljo8se\r\n\r\nGiven the nature of the problem I\'m not 100% sure that this will work around\r\nthe V8 problem in scenarios common for Angular apps, but I guess it\'s better\r\nthan nothing.\r\n\r\nThis is a second attempt to enhance the cleanup, the first one failed and was\r\nreverted because it was too aggressive and caused problems for existing apps.\r\nSee: #6897\r\n\r\n[1] V8 bug: https://code.google.com/p/v8/issues/detail?id=2073\r\n\r\nCloses #6794\r\nCloses #6856', '11', null, null, 'IgorMinar', '2014-04-03T00:25:18Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4715', '37', '6969', 'Fix runtime error in sample code', 'Extra angular.module(\'myApp\', []) call wipes out previously defined myApp module', '2', null, null, 'woodardj', '2014-04-03T03:50:25Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4716', '37', '6970', 'fix($animate): ensure class-based animations always perform a domOperation if skipped', 'Closes #6957', '4', null, null, 'matsko', '2014-04-03T04:01:43Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4717', '37', '6971', 'fix($parse): make equality and relational operators left-associative', 'Request Type: bug\r\n\r\nHow to reproduce: Evaluate `\"1 === 1 === true\"`. Expected: `true`. Actual: `false`.\r\n\r\nComponent(s): $parse\r\n\r\nImpact: small\r\n\r\nComplexity: small\r\n\r\nThis issue is related to: \r\n\r\n**Detailed Description:**\r\n\r\nThis fixes an associativity issue in expressions that use multiple\r\nequality or relational operators back to back without grouping.\r\n\r\nPreviously, these expressions were right-associative, which may\r\ncause confusion for users who expect them to behave identically\r\nto JavaScript expressions.\r\n\r\nAn expression like \"a === b === c\" was evaluated as \"a === (b === c)\".\r\nNow it is evaluated as it is in JavaScript: \"(a === b) === c\".\r\n\r\nBreaks expressions that have relied on right-associativity.\r\n\r\n**Other Comments:**\r\n\r\n', '6', null, null, 'teropa', '2014-04-03T04:33:52Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4718', '37', '6972', 'Update step_02.ngdoc', 'Fixing outdated instructions on how to run the test', '1', null, null, 'stephnacios', '2014-04-03T04:52:04Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4719', '37', '6973', 'fix($animate): ensure the CSS driver properly works with SVG elements', 'The default CSS driver in ngAnimate directly uses node.className when reading\r\nthe CSS class string on the given element. While this works fine with standard\r\nHTML DOM elements, SVG elements have their own DOM property. By switching to use\r\nnode.getAttribute, ngAnimate can extract the element\'s className value without\r\nthrowing an exception.\r\n\r\nWhen using jQuery over jqLite, ngAnimate will not properly handle SVG elements\r\nfor an animation. This is because jQuery doesn\'t process SVG elements within it\'s\r\nDOM operation code by default. To get this to work, simply include the jquery.svg.js\r\nJavaScript file into your application.\r\n\r\nCloses #6030', '5', null, null, 'matsko', '2014-04-03T05:18:43Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4720', '37', '6977', 'Update FAQ with IE info', 'Good to have IE info in this file.', '3', null, null, 'dearfrankg', '2014-04-03T09:50:10Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4721', '37', '6982', 'ngRoute support for an array of paths.', 'ngRoute should support an array of paths that are going to use the same route.\r\n\r\nSo instead of doing this: \r\n```javascript\r\nroute = {...); \r\n\r\n$routeProvider\r\n.when(\'/foo\', route)\r\n.when(\'/bar\', route)\r\n.when(\'/baz\', route)\r\n```\r\n\r\nYou could do this:\r\n```javascript\r\n$routeProvider.when([\'/foo\', \'/bar\', \'/baz\'], {...});\r\n```', '7', null, null, 'sorahn', '2014-04-03T19:58:21Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4722', '37', '6983', 'fix(ngHref): allow setting href to empty string', 'Fixed issue 2755:\r\nhttps://github.com/angular/angular.js/issues/2755\r\n\r\nngHref should now allow empty strings, and ngSrc will not accept empty strings as intended: https://github.com/angular/angular.js/commit/b6e4a71166c7f00f4140fd7ea8f0cd81b4487a3f\r\n', '7', null, null, 'nickeddy', '2014-04-03T20:11:58Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4723', '37', '6985', 'Update step_03.ngdoc', 'Need to remove this single space for the regex to work here.', '3', null, null, 'yilinglu', '2014-04-03T23:18:43Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4724', '37', '6986', 'fix(ngHref): remove attribute when empty value instead of ignoring', 'this will allow updating the values of ng-src, ng-srcset, ng-href back to empty state while preserving the intended behavior of not setting the attribute to an empty string to prevent behavior like trying to download the current page as an image or creating a link to the current page.\r\n\r\nFixes https://github.com/angular/angular.js/issues/2755', '17', null, null, 'shahata', '2014-04-03T23:37:30Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4725', '37', '6987', 'Update step_03.ngdoc', 'Update the by.binding usage to make the test case work.', '2', null, null, 'yilinglu', '2014-04-03T23:50:06Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4726', '37', '699', 'In-line Documentation fix', 'Reverse order of [parameters] and postData in documentation for non-GET \"class\" actions.', '1', null, null, 'msgilligan', '2011-12-28T21:06:04Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4727', '37', '6991', 'refactor($interval): use clearInterval from $window instead of from global scope', '', '5', null, null, 'pr4v33n', '2014-04-04T09:11:54Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4728', '37', '6995', 'fix(ngTouch): fix ghost click on small touch delta', 'Request Type: bug\n\nHow to reproduce: http://plnkr.co/w1q2AJ\n\nSmall movements of your finger or touch device when tapping causes both a touchEnd and Click event to trigger the ngClick callback causing it to fire twice. Rapidly tap the numbers from bottom to top to observe this happening occasionally. By tapping rapidly in an upward directions it\'s easier to get your finger to skid a little. Try out this plunker on a mobile device or with touch emulation enabled.\n\nComponent(s): ngTouch\n\nImpact: medium\n\nComplexity: small\n\nThis issue is related to: \n\n**Detailed Description:**\n\nngClick was leaking ghost click events when a touch moved a small\ndistance. This is because if there was a touchMove event between the\ntouchStart and touchEnd preventGhostClick would not be called. This also\ncaused the MOVE_TOLERANCE threshold to be ignored because any change in\nposition would stop preventGhostClick from being run.\n\nCancelling a tap is now correctly based on the MOVE_TOLERANCE, and ghost\nclicks are not leaked.\n\n**Other Comments:**\n\nCloses #6251\n\n<!-- Reviewable:start -->\n[<img src=\"https://reviewable.io/review_button.png\" height=40 alt=\"Review on Reviewable\"/>](https://reviewable.io/reviews/angular/angular.js/6995)\n<!-- Reviewable:end -->\n', '8', null, null, 'jayvan', '2014-04-04T19:03:56Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4729', '37', '6996', 'Fix explanation of script tag change', 'Request Type: docs\n\nHow to reproduce: \n\nComponent(s): ngRoute\n\nImpact: small\n\nComplexity: small\n\nThis issue is related to: \n\n**Detailed Description:**\n\n\n\n**Other Comments:**\n\nThe description says we added \"to new tags\" which probably was supposed to be \"two new tags\". But even with that it\'s a bit confusing because there is one tag added compared to the previous step, that is the tag for `angular-route.js`. I just updated the doc to say this more clearly.', '11', null, null, 'akiani', '2014-04-04T22:32:14Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4730', '37', '6997', 'Made sentence more clear.', 'It didn\'t sound right.', '2', null, null, 'trusktr', '2014-04-05T00:52:14Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4731', '37', '6998', 'Made the sentence more clear.', 'It was hard to understand.', '5', null, null, 'trusktr', '2014-04-05T00:56:00Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4732', '37', '7', 'Allow query params in script src', '', '1', null, null, 'alkis', '2010-09-15T18:31:41Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4733', '37', '70', 'Scenario runner feedback', 'Updated scenario runner.', '0', null, null, 'esprehn', '2010-10-20T21:19:38Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4734', '37', '700', 'Http fixes', 'many http related fixes.\r\n\r\nthis is based on misko\'s directive\'s branch, so ignore the first many commits and review only from \"feat(browser.defer): flush should throw exception when queue is empty\"', '2', null, null, 'IgorMinar', '2011-12-28T22:52:27Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4735', '37', '7001', 'Update step_08.ngdoc', 'AngularJS test runner API has been deprecated, Protractor is advised: http://docs.angularjs.org/guide/e2e-testing\r\nLink is updated to direct reader to Protractor API.', '1', null, null, 'yilinglu', '2014-04-05T05:33:20Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4736', '37', '7002', 'Some small doc updates', 'I\'m new enough to angular that I\'m not positive I got the $save().then() example right, so I would appreciate a second pair of eyes.', '2', null, null, 'carver', '2014-04-05T05:53:48Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4737', '37', '7004', 'Update docs', 'sort key has to be prefixed with \'+\' or \'-\' when used in html or else it doesn\'t work!', '3', null, null, 'alcedo', '2014-04-05T06:45:16Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4738', '37', '7005', 'Update step_11.ngdoc', 'Minor change: add missing bower reference link.', '1', null, null, 'yilinglu', '2014-04-05T07:03:21Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4739', '37', '7007', 'Added a link for further info about Angular\'s DI on Tutorial, Step 7 - Routing & Multiple Views', 'Request Type: docs\n\nHow to reproduce: Visite the step 7 of the tutorial:\nhttp://code.angularjs.org/1.3.0-beta.4/docs/tutorial/step_07\n\nAfter reading \"A Note About DI, Injector and Providers\", DI on Angular was so clear to me.\n\nComponent(s): \n\nImpact: \n\nComplexity: \n\nThis issue is related to: \n\n**Detailed Description:**\n\nThis article is fantastic and really helped on understanding how DI works on Angular. It may be useful to other beginners -- because, at first glance, this topic (DI on Angular) ended a little bit hazy for me.\n\n**Other Comments:**\n\n', '4', null, null, 'colares', '2014-04-05T15:03:06Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4740', '37', '7009', '#7008 - break down compileSpec.js into smaller files for readabilty/main...', 'Request Type: refactor\n\nHow to reproduce: \n\nComponent(s): $compile\n\nImpact: small\n\nComplexity: small\n\nThis issue is related to: \n\n**Detailed Description:**\n\nA single spec file with 4797 lines of code makes it hard for new contributors as there is too much code to digest. This is the first pass of the refactoring where I\'ve moved 1.1K LOC from this file into separate files. Upon approval/suggestions, I\'ll continue this until all the logical parts are broken down to their separate files.\n\nThis large spec file indicates a bigger issue: The source file may need to be broken as well if it\'s doing too many things in single file/JS object.\n\n**Other Comments:**\n\n...tainability\r\n\r\ncompileSpec.js is now 1.1K lines slimmer. First pass, if this gets approved, I\'ll continue with this until all the logical parts are separated.', '14', null, null, 'smsohan', '2014-04-05T16:19:41Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4741', '37', '7010', 'Added a link for further info about Angular\'s DI (7007)', 'This article is fantastic and really helped on understanding how DI works on Angular. It may be useful to other beginners -- because, at first glance, this topic (DI on Angular) ended a little bit hazy for me.', '1', null, null, 'colares', '2014-04-05T17:35:45Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4742', '37', '7011', 'fix(ng-model-options): Canceling debounces now forces a view reset', 'This PR forces a view reset when canceling a pending debounce in order to fix some unexpected behaviors.\r\n\r\nCloses #6994', '18', null, null, 'lrlopez', '2014-04-05T19:51:02Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4743', '37', '7012', 'optimize sortedKeys function', 'Request Type: refactor\n\nHow to reproduce: \n\nComponent(s): \n\nImpact: medium\n\nComplexity: small\n\nThis issue is related to: performance regression\n\n**Detailed Description:**\n\nnative function Object.keys is much more faster than for loop when getting the array of keys.\n\n**Other Comments:**\n\nif there is Object.keys, it\'s much faster than for loop .\r\nThis is a test example:\r\nhttp://jsperf.com/angular-object-keys-vs-for-loop', '9', null, null, 'LukeLin', '2014-04-06T04:11:16Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4744', '37', '7013', 'Add the word \"the\" to \"as well as state of them\".', 'Request Type: docs\n\nHow to reproduce: \n\nComponent(s): forms\n\nImpact: small\n\nComplexity: small\n\nThis issue is related to: \n\n**Detailed Description:**\n\nSimply a grammatical correction to the Angular docs.\n\n**Other Comments:**\n\nSeems a typo to omit an article here.', '3', null, null, 'janaspage', '2014-04-06T04:45:24Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4745', '37', '7014', 'fix(ngModelOptions): introduce $cancelUpdate to cancel pending updates', '$cancelUpdate cancels any debounce action and resets the view value by invoking $render. this method should be invoked before programmatic update to the model of input that might have pending updates due to updateOn or debounced actions. Fixes https://github.com/angular/angular.js/issues/6994', '25', null, null, 'shahata', '2014-04-06T06:24:43Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4746', '37', '7020', 'Clarify which code (above and below)', '', '2', null, null, 'specialorange', '2014-04-06T19:30:58Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4747', '37', '7022', 'Improve intelligibility of module.factory note', 'docs: improving intelligibility of module.factory note\r\n\r\nIn its current form, the `module.factory` note regarding naming conventions reads contrary to what I believe the original author intended. Modify the text to approximate the intent of the original author.\r\n\r\nNo breaking changes.', '2', null, null, 'jonathansampson', '2014-04-07T01:58:01Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4748', '37', '7024', 'fix(ngOption): accept `0` as an option group', 'Accept `0` and an option group\r\n\r\nClose #7015\r\n\r\nBREAKING CHANGE\r\n\r\nWhen using option groups at an ng-option, the literal `0` will\r\nbe handled as a group with label `\'0\'`. Use the literal string `\'\'`\r\nor undefined for options that should not be in any option group', '9', null, null, 'lgalfaso', '2014-04-07T04:13:49Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4749', '37', '7026', 'docs(guide): fix dropped word in controller description', '', '1', null, null, 'corburn', '2014-04-07T07:25:51Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4750', '37', '7028', 'Update to index doc', 'Spelling error of server to serve on line 142', '2', null, null, 'thomaswicker', '2014-04-07T11:35:45Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4751', '37', '703', 'feat(scope): throw exception when recursive $apply', '', '1', null, null, 'IgorMinar', '2012-01-04T20:05:34Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4752', '37', '7030', 'improve(docs): add $location.search() example', 'Added a usage example for the retrieval of a specific value of the search (query) in a URL.', '5', null, null, 'zeropaper', '2014-04-07T13:41:25Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4753', '37', '7031', 'fix($httpBackend): don\'t error when JSONP callback called with no parameter', 'This change brings Angular\'s JSONP behaviour closer in line with jQuery\'s. The feature has\r\nalready landed in the 1.3 branch as 6680b7b, however this alternative version is intended\r\nto implement the feature in an IE8-compatible fashion.', '3', null, null, 'caitp', '2014-04-07T17:14:47Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4754', '37', '7034', 'Fix typo on angular-mocks.js', 'Request Type: docs\n\nHow to reproduce: \n\nComponent(s): ngMock\n\nImpact: small\n\nComplexity: small\n\nThis issue is related to: \n\n**Detailed Description:**\n\n\n\n**Other Comments:**\n\n', '2', null, null, 'tylermcginnis', '2014-04-07T20:28:43Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4755', '37', '7036', 'docs(e2e-testing): deprecate ng-scenario and update E2E testing doc to discuss protractor', 'Doc is much shorter, since Protractor has its own getting started doc and I think it makes sense to mostly refer folks there as opposed to duplicating the documentation.', '9', null, null, 'juliemr', '2014-04-08T00:33:55Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4756', '37', '7039', 'Update areq.ngdoc', 'Request Type: docs\n\nHow to reproduce: \n\nComponent(s): \n\nImpact: small\n\nComplexity: small\n\nThis issue is related to: \n\n**Detailed Description:**\n\nI faced an issue and didn\'t find any help in the doc.\n\n**Other Comments:**\n\nAdded a way to solve a common mistake that will bring people to the ng:areq page. When you forget about the app name in the ng-app directive, this error is thrown.', '2', null, null, 'volnt', '2014-04-08T09:01:13Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4757', '37', '7050', 'Update ie.ngdoc', 'Request Type: docs\n\nHow to reproduce: \n\nComponent(s): \n\nImpact: \n\nComplexity: \n\nThis issue is related to: \n\n**Detailed Description:**\n\ntypo fix\n\n**Other Comments:**\n\n', '2', null, null, 'Rosseyn', '2014-04-08T22:44:19Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4758', '37', '7061', 'Update directive.ngdoc', 'added Comment as a directive type in the first paragraph', '2', null, null, 'sbenjamin', '2014-04-09T18:21:07Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4759', '37', '7064', 'DO_NOT_MERGE feat($resource): Make stripping of trailing slashes configurable.', 'This is only to run tests on Travis before merging #5560 to `master`.', '0', null, null, 'mzgol', '2014-04-09T22:20:49Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4760', '37', '7065', 'docs(guide/unit-testing): fix small typo (than instead of then)', '', '2', null, null, 'lefos987', '2014-04-09T23:44:02Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4761', '37', '7067', 'fix($compile): reference correct directive name in ctreq error', 'Previously, ctreq would possibly reference the incorrect directive name, due to relying on a directiveName living outside of the closure which throws the exception, which can change before the call is ever made.\r\n\r\nThis change saves the current value of directiveName as a property of the link function, which prevents this from occurring.\r\n\r\nCloses #7062\r\nCloses #7059', '7', null, null, 'caitp', '2014-04-10T00:47:05Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4762', '37', '7068', 'Update unsafe.ngdoc', 'Suggest including ngSanatize.', '7', null, null, 'stephennancekivell', '2014-04-10T00:58:55Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4763', '37', '7069', 'Update bootstrap.ngdoc', 'Hi,\r\n\r\nngApp is directive name and ng-app is attribute name, right?\r\n\r\nThanks and regards,\r\nabhiroyg', '7', null, null, 'abhiroyg', '2014-04-10T07:31:38Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4764', '37', '707', 'fix for: ng:repeat=\"i in [null]\"', '', '1', null, null, 'IgorMinar', '2012-01-06T07:12:35Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4765', '37', '7071', 'Fix \"npm run update-webdriver\" command', 'Going through the tutorial, noticed this command was listed incorrectly.', '2', null, null, 'tsigo', '2014-04-10T12:19:05Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4766', '37', '7072', 'Inconsistency in first paragraph', 'I think the \"first line of defense\" are unit tests, not end-ot-end tests, otherwise the sentence makes little sense.', '3', null, null, 'vvvvalvalval', '2014-04-10T12:44:41Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4767', '37', '7073', 'Fixed repetition in Caveats paragraph', '\"manually\" was repeated.', '1', null, null, 'vvvvalvalval', '2014-04-10T12:53:08Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4768', '37', '7074', 'docs(ngTouch): include angular-touch.js in example iframes', 'Mystical [deps=\"angular-touch.js\"] is enough to get the correct file to be\nadded to the <head> tag.\n\nCloses #7058', '1', null, null, 'caitp', '2014-04-10T18:26:01Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4769', '37', '7075', 'Docs annotation', 'Added html annotation in the markdown.', '2', null, null, 'AntouanK', '2014-04-10T18:32:30Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4770', '37', '7077', 'docs(ngTouch): define module depending on ngTouch in ngTouch examples', 'In addition to requiring that the file is loaded, it\'s also necessary to\ndepend on the ngTouch module when creating the injector.', '2', null, null, 'caitp', '2014-04-10T19:26:33Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4771', '37', '7078', 'Update step_12.ngdoc', 'I find the path to jquery.js is jquery/dist/jquery.js rather than jquery/jquery.js', '2', null, null, 'edmondhuoxiang', '2014-04-10T20:11:06Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4772', '37', '7079', 'docs(docs.css): add media query fix', 'Request Type: docs\n\nHow to reproduce: resize browser to between 992px and 768px\n\nComponent(s): \n\nImpact: \n\nComplexity: small\n\nThis issue is related to: \n\n**Detailed Description:**\n\n\n\n**Other Comments:**\n\nshow main-body content that is hidden underneath bootstrap navbar\r\nbetween 992px and 768px screen width', '5', null, null, 'fijimunkii', '2014-04-10T22:32:40Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4773', '37', '708', 'Modules', '', '0', null, null, 'mhevery', '2012-01-07T03:56:05Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4774', '37', '7080', 'feat(injector): \"strict-DI\" mode which disables \"automatic\" function annotation', 'This modifies the injector to prevent automatic annotation from occurring for\na given injector.\n\nThis behaviour can be enabled when bootstrapping the application by using the\nattribute\n\"ng-strict-di\" on the root element (the element containing \"ng-app\"), or\nalternatively by passing an object with the property \"strictDi\" set to \"true\"\nin angular.bootstrap, when bootstrapping manually.\n\nJS example:\n\n angular.module(\"name\", [\"dependencies\", \"otherdeps\"])\n .provider(\"$willBreak\", function() {\n this.$get = function($rootScope) {\n };\n })\n .run([\"$willBreak\", function($willBreak) {\n // This block will never run because the noMagic flag was set to true,\n // and the $willBreak \'$get\' function does not have an explicit\n // annotation.\n }]);\n\n angular.bootstrap(document, [\"name\"], {\n strictDi: true\n });\n\nHTML:\n\n <html ng-app=\"name\" ng-strict-di>\n <!-- ... -->\n </html>\n\nThis will only affect functions with an arity greater than 0, and without an\n$inject property.\n\nCloses #6719 Closes #6717 Closes #4504 Closes #6069 Closes #3611', '4', null, null, 'caitp', '2014-04-11T00:29:56Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4775', '37', '7083', 'docs($httpBackend): grammar fix', 'Request Type: docs\n\nHow to reproduce: \n\nComponent(s): \n\nImpact: \n\nComplexity: \n\nThis issue is related to: \n\n**Detailed Description:**\n\nSmall grammar fix for $httpBackend documentation.\n\n**Other Comments:**\n\n', '3', null, null, 'swirlycheetah', '2014-04-11T07:19:13Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4776', '37', '7085', 'Removed ng-init from inner loop', 'This is unnecessary. $index should be used instead.', '5', null, null, 'lucasprus', '2014-04-11T09:05:09Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4777', '37', '7086', 'Example for angular.version', 'Request Type: docs\n\nHow to reproduce: \n\nComponent(s): \n\nImpact: large\n\nComplexity: small\n\nThis issue is related to: \n\n**Detailed Description:**\n\nAdded Example for angular.version\n\n**Other Comments:**\n\n', '8', null, null, 'nitulkukadia', '2014-04-11T11:33:47Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4778', '37', '709', 'Ng include auto scroll + httpBackend ', '', '1', null, null, 'vojtajina', '2012-01-07T03:57:37Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4779', '37', '7093', 'Webstorm IDE complains about Regex Range', 'Request Type: bug\n\nHow to reproduce: Open angular.js in WebStorm 8, complains that character class may not be used inside character range\n\nComponent(s): $compile\n\nImpact: small\n\nComplexity: small\n\nThis issue is related to: \n\n**Detailed Description:**\n\nIn CLASS_DIRECTIVE_REGEXP and COMMENT_DIRECTIVE_REGEXP, putting the \\- character at the end of the character patter speeds up many IDE parsers and alleviates some errors in certain IDE\'s. (WebStorm 8)\nFunctionally absolutely equivalent. No test change needed.\n\n**Other Comments:**\n\n', '8', null, null, 'malixsys', '2014-04-11T20:09:57Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4780', '37', '7094', 'feat(ngModelOptions): support submit trigger', 'Fixes https://github.com/angular/angular.js/issues/7017', '24', null, null, 'shahata', '2014-04-11T23:40:38Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4781', '37', '7096', 'docs(tutorial/step_12.ngdoc): add missing link to http://bower.io', '', '5', null, null, 'sin', '2014-04-12T03:55:22Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4782', '37', '7099', 'Update step_07.ngdoc', 'I attempted to tighten up the language around the DI overview so that it was clearer and more explicit. The sole responsibilities sentence was semantically jarring and I think looks better as a list. Some minor grammar improvements. I had no way of proofing final appearance so apologies if I have got any formatting wrong.', '7', null, null, 'RobertKielty', '2014-04-12T13:36:07Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4783', '37', '71', 'Issue nodeserver', 'Reimplement the node server so it doesn\'t have nasty security holes and shows nice directory lists.\r\n', '1', null, null, 'esprehn', '2010-10-21T03:27:58Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4784', '37', '7101', 'Fix broken link to \"Services\" in index.ngdoc', 'Nothing big. Simply a broken link to \"Services\".', '2', null, null, 'wojciechfornal', '2014-04-13T00:11:05Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4785', '37', '7104', 'Update step_02.ngdoc', 'Just to make clear that it should not go to test spec.', '4', null, null, 'expilo', '2014-04-13T09:41:43Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4786', '37', '7106', 'Create angular', '', '1', null, null, 'hbiao68', '2014-04-13T15:47:35Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4787', '37', '7107', 'Updated comments for functions', '', '2', null, null, 'jesselpalmer', '2014-04-13T23:03:30Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4788', '37', '711', 'feat($injector): throw error if overriding instantiated service', '', '2', null, null, 'IgorMinar', '2012-01-11T19:12:45Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4789', '37', '7111', 'Update to non-assignable documentation', 'I have come across that issue a couple of times and it may prove useful to provide users with the knowledge of the optional (\'=?\') scope parameter.', '3', null, null, 'afreeland', '2014-04-14T13:16:41Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4790', '37', '7113', 'Replace valid methods list in $resource documentation', 'Request Type: docs\r\n\r\nHow to reproduce: \r\n\r\nComponent(s): ngResource\r\n\r\nImpact: small\r\n\r\nComplexity: small\r\n\r\nThis issue is related to: \r\n\r\n**Detailed Description:**\r\n\r\nThe existing documentation places includes a small list of valid methods for custom resource actions. As any method will be passed through to $http, I see no reason to state that $resource has a more restrictive list of valid methods.\r\n\r\n**Other Comments:**\r\n\r\n', '3', null, null, 'hallipr', '2014-04-15T02:21:55Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4791', '37', '7116', 'feat(ngModelOptions): support submit trigger', 'This is another attempt to solve https://github.com/angular/angular.js/issues/7017 from a different direction. This one actually moves a big part of the `ngModelOptions` mechanism out of the various `input` directives and into `ngModelController` which is a better approach in my opinion.', '39', null, null, 'shahata', '2014-04-15T08:36:53Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4792', '37', '7118', 'dedupe jshint options', 'The .jshintrc file in src/ had a duplicate nodeName_ option. I removed the dupe.', '7', null, null, 'fourq', '2014-04-15T17:03:12Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4793', '37', '7120', 'Update step_03.ngdoc', 'updating the code from git', '2', null, null, 'darojuv', '2014-04-15T22:27:14Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4794', '37', '7121', 'style(everything): use parentheses next to a function name and a space before braces', 'Request Type: chore\n\nHow to reproduce: \n\nComponent(s): \n\nImpact: small\n\nComplexity: small\n\nThis issue is related to: \n\n**Detailed Description:**\n\nAngularJS style guide and Google JavaScript style guide uses `function() {` and `function name() {`, not `function (){` and `function name(){` style.\n\n[AngularJS style guide](https://google-styleguide.googlecode.com/svn/trunk/angularjs-google-style.html)\n\n[Google JavaScript style guide](http://google-styleguide.googlecode.com/svn/trunk/javascriptguide.xml)\n\n**Other Comments:**\n\nThis might be too trivial for a commit or too big for one pull request, I just thought about it reading through AngularJS sources for the first time and looking at \"Contributing to AngularJS\" document.', '3', null, null, 'khasinski', '2014-04-15T23:32:23Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4795', '37', '7122', 'Update cacheFactory.js', 'Fix typo in documentation.', '5', null, null, 'aenmeyk', '2014-04-15T23:45:55Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4796', '37', '7123', 'feat(input): use ValidityState for required state', 'Change NgModelController $isEmpty method to consider HTML5 constraint validation\r\nin supporting browsers, fallback to normal empty data check', '9', null, null, 'starr0stealer', '2014-04-16T02:55:07Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4797', '37', '7124', 'fix(input): allow use of integers in ng-true-value', 'Request Type: bug\n\nHow to reproduce: PR for: https://github.com/angular/angular.js/issues/7109\n\nPlunker from that issue: http://plnkr.co/edit/VxJVpbRV4vkbivKpAUUn?p=preview\n\nComponent(s): forms\n\nImpact: medium\n\nComplexity: small\n\nThis issue is related to: \n\n**Detailed Description:**\n\n\n\n**Other Comments:**\n\nResolves an issue where values of \'1\' in ng-true-value would not set the\r\ncheckbox to a checked state when the scope\'s value was 1.\r\n\r\nCloses #7109', '4', null, null, 'Eleeleth', '2014-04-16T02:57:27Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4798', '37', '7125', 'Render sample code properly in downloading page', 'Markdown needed fixing to use spaces vs. <pre> block so that the html would be escaped properly.\r\nAlso updated example to point to 1.2.16\r\n\r\nCloses #6070', '4', null, null, 'mbosch', '2014-04-16T03:59:21Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4799', '37', '7127', 'Update index.ngdoc', 'Request Type: docs\n\nHow to reproduce: When following documentation with a proxy, it does not work. \nSome minor tips need to be given to git or npm beginner.\n\nComponent(s): \n\nImpact: small\n\nComplexity: small\n\nThis issue is related to: \n\n**Detailed Description:**\n\nI\'ve already did a documentation patch for it.\n\n**Other Comments:**\n\nThe documentation do not work if your are working with a proxy.', '5', null, null, 'LaurentTardif', '2014-04-16T07:32:33Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4800', '37', '7128', 'Update index.ngdoc for proxy configuration during installation', 'Some additionnal steps are needed when doing the tutorial behind a proxy.', '3', null, null, 'LaurentTardif', '2014-04-16T08:16:26Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4801', '37', '713', 'Fix httpbackend mock', '', '0', null, null, 'vojtajina', '2012-01-11T22:49:41Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4802', '37', '7133', '/:largecode*\\ not working.', '/:largecode*\\ not working for me instead of this /:largecode* working.', '3', null, null, 'vinaymavi', '2014-04-16T13:29:25Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4803', '37', '7134', 'Prevent Ghost Cliking for old browser ( like android 2.3 ) with ngTouch', 'Request Type: bug\n\nHow to reproduce: bug here on android 2.3 with ngTouch : http://goo.gl/5JNQIG\nsame exemple without ngTouch : http://goo.gl/5X9tlS\nwith ngTouchPatched : http://goo.gl/65aWg9\n\nComponent(s): ngTouch\n\nImpact: small\n\nComplexity: small\n\nThis issue is related to: \n\n**Detailed Description:**\n\n\n\n**Other Comments:**\n\nPrevent Ghost Cliking for old browser who don\'t support stopImmediatePropagation ( like android 2.3 )\r\n\r\nA ghost click appears when clicking on an element and select the element behind.\r\n\r\nExemple :\r\nbug here on android 2.3 with ngTouch : http://goo.gl/5JNQIG\r\nsame exemple without ngTouch : http://goo.gl/5X9tlS\r\nwith ngTouchPatched : http://goo.gl/65aWg9', '4', null, null, 'Smurf81', '2014-04-16T14:35:02Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4804', '37', '7136', 'fix(jqLite): Chrome specific issue for `<select required>`', 'Request Type: bug, regression\r\n\r\nHow to reproduce: Look at #6828\r\n\r\nComponent(s): jqLite\r\n\r\nImpact: medium\r\n\r\nComplexity: small\r\n\r\nThis issue is related to: regression\r\n\r\nDetailed Description:\r\n\r\nWhen using Chrome and adding a `<option selected=\"selected\">` to a `<select required>` then the new added option is not selected\r\n\r\nOther Comments:', '20', null, null, 'lgalfaso', '2014-04-16T17:28:32Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4805', '37', '7138', 'Fixed a typo in step 2', 'Request Type: docs\n\nHow to reproduce: \n\nComponent(s): misc core\n\nImpact: large\n\nComplexity: small\n\nThis issue is related to: \n\n**Detailed Description:**\n\n\n\n**Other Comments:**\n\n', '2', null, null, 'thom801', '2014-04-16T20:20:38Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4806', '37', '7140', 'feat(ngClass): support multiple classes in key', 'fixes https://github.com/angular/angular.js/issues/7135', '19', null, null, 'shahata', '2014-04-16T21:00:34Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4807', '37', '7142', 'Update step_03.ngdoc', 'When running protractor the documentation does not mention that you will need the application to be running via the web-server. You should put in some note to run \"npm start\"', '2', null, null, 'TheMrSteve', '2014-04-17T01:00:00Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4808', '37', '7144', 'Instructions for Chromium users', 'docs(protractor): Add instruction for chromium users\r\n\r\nChromium users need a bit of a change\r\n\r\n', '6', null, null, 'ajf-', '2014-04-17T06:22:30Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4809', '37', '7146', 'fix one build warning in `minall`', 'Request Type: bug\n\nHow to reproduce: build with `grunt`, warning shows in `minall`\n\nComponent(s): scope\n\nImpact: small\n\nComplexity: small\n\nThis issue is related to: \n\n**Detailed Description:**\n\nThere are several more issues like this, but I\'m not sure if I know the right way to fix them.\n\n**Other Comments:**\n\nUsed code from cironunes/angular.js, slightly modified (Firefox should be abbreviated Fx, exception variable should not be reassigned).', '6', null, null, 'khasinski', '2014-04-17T10:36:53Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4810', '37', '7147', 'fix(injector): invoke config blocks for module after all providers', 'This change ensures that a module\'s config blocks are always invoked after all of its providers are registered.\r\n\r\nNOTE: I\'m not entirely sure if this is desirable yet, because the point mentioned in the BREAKING CHANGE section below may actually be something which is desirable. However, I do feel it is probably better to always invoke config blocks for a single module after all of its providers. The config blocks should not play a role in how providers are registered, in my own opinion.\r\n\r\nBREAKING CHANGE:\r\n\r\nPreviously, config blocks would be able to control behaviour of provider registration, due to being invoked prior to provider registration. Now, provider registration always occurs prior to configuration for a given module, and therefore config blocks are not able to have any control over a providers \r\nregistration.\r\n\r\nExample:\r\n\r\nPreviously, the following:\r\n\r\n```js\r\n angular.module(\'foo\', [])\r\n .provider(\'$rootProvider\', function() {\r\n this.$get = function() { ... }\r\n })\r\n .config(function($rootProvider) {\r\n $rootProvider.dependentMode = \"B\";\r\n })\r\n .provider(\'$dependentProvider\', function($rootProvider) {\r\n if ($rootProvider.dependentMode === \"A\") {\r\n this.$get = function() {\r\n // Special mode!\r\n }\r\n } else {\r\n this.$get = function() {\r\n // something else\r\n }\r\n }\r\n });\r\n```\r\n\r\nwould have \"worked\", meaning behaviour of the config block between the registration of \"$rootProvider\" and \"$dependentProvider\" would have actually accomplished something and changed the behaviour of the app. This is no longer possible within a single module.\r\n\r\nFixes #7139', '11', null, null, 'caitp', '2014-04-17T14:21:40Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4811', '37', '7148', 'Update step_06.ngdoc', 'In the description of adding the ng-Src to the image tag, there was a typo: \'ngSrc\' instead of ng-Src.', '2', null, null, 'jeremymfinch', '2014-04-17T16:23:23Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4812', '37', '7149', 'docs(CONTRIBUTING.md): fix link to CLA under Submitting a Pull Request', 'Request Type: docs\n\nHow to reproduce: \n\nComponent(s): \n\nImpact: \n\nComplexity: \n\nThis issue is related to: \n\n**Detailed Description:**\n\n\n\n**Other Comments:**\n\nAddresses a bad link to the CLA under Submitting a Pull Request section.', '3', null, null, 'rhuynh', '2014-04-17T17:31:57Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4813', '37', '715', 'Fix scrolling', '', '4', null, null, 'vojtajina', '2012-01-12T18:30:24Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4814', '37', '7150', 'Backport of html5Mode fixes to v1.2.x', 'This is just for a CI run, that\'s all. If it\'s green, it will go into the tree.', '1', null, null, 'caitp', '2014-04-17T21:49:36Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4815', '37', '7152', 'fix($location): make behaviour of relative links consistent in html5Mode', '3f047704c70a957596371fec554d3e1fb066a29d supposedly made html5Mode work consistently for both legacy browsers and modern browsers. However, Chrome 34 and Firefox 31 both fail to handle relative links with the default base URL, at least within an Angular app. This patch allows the URL processing which occurs for legacy browsers to also occur in modern browsers when html5Mode is enabled, and corrects this behaviour.\r\n\r\nCloses #7151', '8', null, null, 'caitp', '2014-04-18T04:10:22Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4816', '37', '7153', 'Update index.ngdoc', 'Target set to blank.', '5', null, null, 'magoswiat', '2014-04-18T08:05:38Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4817', '37', '7154', 'Update filters.js', 'I have added a day suffix for days of the month using \'D\'. I was going to use S like PHP does.\r\n\r\nAdded daySuffixGetter and modified the DATE_FORMATS and DATE_FORMATS_SPLIT\r\n\r\nThis is probably not the level of update or patch you are used to. I needed the functionality and thought it would be nice to get something included in angular.\r\n\r\nCheers\r\n\r\nJustin.', '5', null, null, 'TracesOfNut', '2014-04-18T09:12:41Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4818', '37', '7158', 'scope.$watchGroup + $interpolation speedup', 'This is my refactoring of @rodyhaddad\'s PR #6598\r\n\r\nI tried several approaches to clean it up and ended up doing a full circle by keeping the $interpolate optimization that Rody did for parsing but then reimplementing the `$watchGroup` logic inside of the function returned by $interpolate. This resulted in almost no breaking change (the only difference is that fn returned by $interpolate now expects a proper Scope instance rather than an object), removal of all hacks and still preserving the performance boost.\r\n\r\nThere are three minor todos left before this can be merged, but I\'m throwing it out here so that others can start reviewing.\r\n\r\nTodos left:\r\n- [x] remove the single expression optimization from watchGroup, we don\'t need it any more\r\n- [x] hide the `compute` fn currently exposed as a property of the fn returned by `$interpolate`. this requires changes to 17 tests.\r\n- [ ] squash', '17', null, null, 'IgorMinar', '2014-04-18T23:30:05Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4819', '37', '716', 'Http fixes3', 'hopefully the last set of http fixes and docs', '1', null, null, 'IgorMinar', '2012-01-13T07:44:26Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4820', '37', '7160', 'fix(select): ensure the correct option is selected in IE 10/11', 'Request Type: bug\n\nHow to reproduce: 1. go here: http://plnkr.co/edit/zLwCvV2TgELcWiHwxn25?p=preview\n2. select foo bar from drop down in IE 10/11. foo bar will not be shown as selected in the dropdown\n\nComponent(s): forms\n\nImpact: \n\nComplexity: small\n\nThis issue is related to: \n\n**Detailed Description:**\n\n\n\n**Other Comments:**\n\nfixes issue #2828', '2', null, null, 'rhuynh', '2014-04-19T06:14:13Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4821', '37', '7161', 'fix($location): don\'t break on numeric path arguments', 'Fixes #7054\r\n\r\nNot sure if we want to include this in the core but I can see that it can be convenient in some cases. And well, since it is 5 minutes fix I don\'t care this way or another so will let others weight on this one.', '6', null, null, 'pkozlowski-opensource', '2014-04-19T08:53:39Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4822', '37', '7163', 'perf(scope): 10x speedup for scope.$destroy', 'Request Type: perf\r\n\r\nHow to reproduce: \r\n\r\nComponent(s): scope\r\n\r\nImpact: large\r\n\r\nComplexity: medium\r\n\r\nThis issue is related to: \r\n\r\n**Detailed Description:**\r\n\r\n\r\n\r\n**Other Comments:**\r\n\r\nI am seeing that prototypical lookups are slow.\r\n', '5', null, null, 'jbdeboer', '2014-04-20T01:51:17Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4823', '37', '7165', 'Update forms dococument', 'None of the Plunker links works in this page. Could you please update the Plunker links accordingly.\r\n\r\nThanks', '3', null, null, 'AnirbanKundu', '2014-04-20T08:18:08Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4824', '37', '7167', 'I\'ve found 2 mistakes in step 12', 'The phonecatApp and phonecatAnimations modules have a dot where a semicolon should be at the end of the sentence', '2', null, null, 'aminRX', '2014-04-20T12:11:53Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4825', '37', '7168', 'docs(tutorial/step-12): correct file path', 'Request Type: docs\n\nHow to reproduce: \n\nComponent(s): \n\nImpact: small\n\nComplexity: small\n\nThis issue is related to: \n\n**Detailed Description:**\n\nFixed wrong file path:\n- angular/angular-animate.js -> angular-animate/angular-animate.js, which meets the code in app/index.html\n\n**Other Comments:**\n\n', '2', null, null, 'aminRX', '2014-04-20T14:22:41Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4826', '37', '7169', 'Small typo fix in step_07.ngdoc', '', '2', null, null, 'srt32', '2014-04-20T16:48:37Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4827', '37', '717', 'fix(angular.fromJson): don\'t deserialize timestamps into date objects', 'in the past we did this fancy date deserialization that checked if a string looked like\r\na timestamp and if it did, we deserialized the string into a date object.\r\n\r\nthis is not compatible with the native parser and can cause unexpected issues.\r\n\r\nfor these reasons if an application wants this behavior then it should be implemented as\r\na custom deserializer for http or helper function that processes output from\r\nangular.fromJson', '1', null, null, 'IgorMinar', '2012-01-13T23:11:31Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4828', '37', '7170', 'Fixing expression parameters for orderBy.', 'This seems to be a typo, unless I\'m missing something - generated Usage example is wrong.\r\n\r\nSee http://stackoverflow.com/questions/23093953/is-the-angular-orderby-documentation-wrong-or-am-i-confused', '4', null, null, 'robwormald', '2014-04-21T00:51:46Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4829', '37', '7172', 'Update step_03.ngdoc', 'update from Bootstrap 2.3 to 3.1 changed \"span\" to \"col\" tags', '5', null, null, 'ttam3d0', '2014-04-21T02:34:34Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4830', '37', '7174', 'Added \'cache.removeAll()\' function example', 'Updated the example to include \'cache.removeAll()\' method.\r\nAdded a button \'Clear Cache\', when this button clicked \'clearCache\' function will be executed.', '3', null, null, 'nitulkukadia', '2014-04-21T10:18:58Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4831', '37', '7176', 'fix(addStyle): reference window.angular instead of just angular', 'Reference window.angular instead of just angular because when running angular under an environment\r\nwhere the top-level scope is not the window (nodejs for example), we have to specifically\r\nreference window.angular.\r\n\r\nThe main reason for this fix is making running angular under nodejs easier.\r\nSome use cases for this:\r\n* Angular package on npm https://github.com/bclinkinbeard/angular\r\n* angular\'s DI for node https://github.com/jmendiara/ng-di\r\n\r\nSigned CLA as Tom Yam', '3', null, null, 'tepez', '2014-04-21T12:32:01Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4832', '37', '718', 'fix($location): do not $digest if browser\'s url changes within $apply', 'Chrome (probably other browsers as well) fires \'hashchange\' event synchronously, so if you change raw location from within $apply/$digest, we don\'t want to $apply twice. (It would throw an exception).', '0', null, null, 'vojtajina', '2012-01-14T01:18:36Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4833', '37', '7182', 'Update step_11.ngdoc', 'Request Type: bug\n\nHow to reproduce: \n\nComponent(s): \n\nImpact: \n\nComplexity: small\n\nThis issue is related to: \n\n**Detailed Description:**\n\n\n\n**Other Comments:**\n\nChange toEqual to toEqualData in the test \'should create \"phones\" model with 2 phones fetched from xhr\'', '2', null, null, 'tjunghans', '2014-04-21T20:29:35Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4834', '37', '7185', 'Fixed spelling of spiciness', 'Request Type: docs\n\nHow to reproduce: https://docs.angularjs.org/guide/controller\n\nComponent(s): misc core\n\nImpact: small\n\nComplexity: small\n\nThis issue is related to: \n\n**Detailed Description:**\n\nJust a tiny spelling fix\n\n**Other Comments:**\n\n', '3', null, null, 'daviesgeek', '2014-04-21T22:46:56Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4835', '37', '7190', 'chore(package.json): remove dependencies which are no longer required', 'Based on https://github.com/angular/angular.js/issues/3244#issuecomment-41003086, I don\'t believe we actually use either of these now that dgeni has replaced the old docs app. These should be removed if Travis is green.\r\n\r\nThe i18n scripts still rely on q, so unfortunately it can\'t be gotten rid of just yet.', '4', null, null, 'caitp', '2014-04-22T05:07:26Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4836', '37', '7191', 'feat(NgMessages): introduce the NgMessages module and directives', 'https://s3.amazonaws.com/angularjs-dev/ng-messages/messages.html', '35', null, null, 'matsko', '2014-04-22T06:16:00Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4837', '37', '7192', 'Update step_12.ngdoc', '', '3', null, null, 'alluriprasad', '2014-04-22T08:36:50Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4838', '37', '7193', 'docs(tutorial): fix typos', 'phonecatApp module have a dot.', '2', null, null, 'MizaelGalvez', '2014-04-22T09:36:22Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4839', '37', '7194', 'Update step_00.ngdoc', '', '3', null, null, 'mdaif', '2014-04-22T09:41:01Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4840', '37', '7198', 'docs(examples): use form POST to create Plunkers', 'The previous solution for opening Plunkers from the docs relied on tight\r\ncoupling between the docs site and the plunkr site, in particular the\r\nURL to the example code on the docs server was hard coded in the Plunker\r\nsite.\r\n\r\nThis change goes back to the old POST method of creating a Plunker, but\r\nwith a subtle difference: In the very old docs, the content was injected\r\ndirectly into the example HTML at build time. This was easy enough to\r\ndo as the example actually ran in the current page but also increased\r\nthe size of the doc page.\r\n\r\nThe new examples are run in completely separate iframes. This new version\r\nof showing a Plunker loads the file content for the Plunker from the\r\nserver by accessing the example\'s manifest.json file using $http requests.\r\n\r\nThis also has the additional benefit that you can now generate plunkers\r\nfrom examples that are running locally or, frankly, in any folder on any\r\nserver, such as personal builds on the Jenkins CI server.\r\n\r\nCloses #7186', '7', null, null, 'petebacondarwin', '2014-04-22T12:26:45Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4841', '37', '72', 'Issue nodeserver improved', 'Fix some bugs in the http server.', '1', null, null, 'esprehn', '2010-10-22T03:00:01Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4842', '37', '720', '(bugfix) $locationProvider hashPrefix getter returned html5Mode, docs fixed too', 'I guess this is just a typo, but needs fixing too.', '4', null, null, 'kstep', '2012-01-17T15:08:34Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4843', '37', '7200', 'refactor(jqLite): change leftover element.bind/unbind to element.on/off', '', '2', null, null, 'mzgol', '2014-04-22T13:34:47Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4844', '37', '7201', 'Include directions for bower', 'I got errors on my computer that did not have bower already installed. So I think people should check to see if they have bower installed.', '2', null, null, 'nnennajohn', '2014-04-22T16:10:49Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4845', '37', '7204', 'docs(guide): updating concepts to reflect the actual example', 'The actual \"A first example: Data binding\" section in concepts actually doesn\'t do anything with the `required` directive, so I\'ve removed the part of the section that explains a little it to avoid confusion.', '5', null, null, 'plentz', '2014-04-22T18:31:01Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4846', '37', '7205', 'ngModelOptions debounce was failing when on event with a value of 0', 'Request Type: bug\n\nHow to reproduce: [Here\'s a fiddle that demonstrates.](http://jsfiddle.net/joelhooks/QZ8hg/)\n\nComponent(s): misc core\n\nImpact: medium\n\nComplexity: small\n\nThis issue is related to: \n\n**Detailed Description:**\n\nWas testing ngModelOptions, and noticed that the provided example\n`ngModelOptions=\"{ updateOn: \'default blur\', debounce: {\'default\': 500, \'blur\':\n0} }\"` didn\'t function. With a little investigating I determined that the logic\noperation was skipping debounce[trigger] if it was 0 (thanks JS falsiness!).\n\nMy first solution was to do this:\n\n```javascript\nvar debounceDelay = ctrl.$options && (\n isObject(ctrl.$options.debounce)\n ? (isNumber(ctrl.$options.debounce[trigger]) ?\n ctrl.$options.debounce[trigger]\n :\n (ctrl.$options.debounce[\'default\']\n || 0))\n : ctrl.$options.debounce\n ) || 0;\n```\n\nWhich hopefully makes us all cringe. Instead of adding this mess (the original\nlogic took me about 30 minutes to understand), I decided to unroll it into\nsomething a bit less... terse.\n\nI added a unit test to cover this scenario.\n\nThis was found in **1.3.0-beta.6.**\n\n[Here\'s a fiddle that demonstrates.](http://jsfiddle.net/joelhooks/QZ8hg/) Notice that it debounces blur, despite it being configured with 0. THis is because `(ctrl.$options.debounce[trigger] || ctrl.$options.debounce[\'default\'] || 0)` will **always** skip to default if it exists and `debounce[trigger]` is 0. Without a default alongside the trigger, the final 0 would be the result, and I suspect that is how this slipped by.\n\n**Other Comments:**\n\n', '9', null, null, 'joelhooks', '2014-04-22T21:38:37Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4847', '37', '7206', 'perf($rootScope): change the watchers structure to a linked list', 'Change the way watchers and listeners are stored from a tree to a linked list', '13', null, null, 'lgalfaso', '2014-04-22T23:50:27Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4848', '37', '7210', 'docs(select): rename c to color in example', 'Request Type: docs\r\n\r\nHow to reproduce:\r\n\r\nComponent(s): misc core\r\n\r\nImpact: small\r\n\r\nComplexity: small\r\n\r\nThis issue is related to:\r\n\r\nDetailed Description:\r\n\r\nVariable name c doesn\'t explain well what is inside.', '1', null, null, 'marcin-wosinek', '2014-04-23T09:53:14Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4849', '37', '7214', 'Adding .resolve() function to $q', 'Request Type: feature\n\nHow to reproduce: \n\nComponent(s): $q\n\nImpact: small\n\nComplexity: small\n\nThis issue is related to: \n\n**Detailed Description:**\n\nJust like how $q.reject() returns a rejected promise, this returns a resolved promise.\n\n**Other Comments:**\n\nThis is a simple, but very useful function missing from the $q library that exists in Q. The typical use case is when you create abstractions where calling code expects a promise to be returned from a given interface. Some implementations of the interface may be asynch (thus why promises are needed), but certain implementations may also be synchronous. You can of course create a deferred, resolve it and return the deferred promise, but simply doing $q.resolve() is much more simple and beautiful. Even if all your existing implementations are asych, this is still useful for a default interface implementation where you just return null, {}, etc.', '9', null, null, 'jeffwhelpley', '2014-04-23T15:52:41Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4850', '37', '7215', '`_angular` is redundant', 'Request Type: bug\n\nHow to reproduce: _angular variable is redundant in the source\n\nComponent(s): misc core\n\nImpact: small\n\nComplexity: small\n\nThis issue is related to: \n\n**Detailed Description:**\n\n\n\n**Other Comments:**\n\nGoing through the commit history on GitHub, the `_angular` is for noConflict mode, the case where you have an old reference to a variable called Angular you want to preserve.\r\n\r\nHere is the commit that added _angular in : https://github.com/angular/angular.js/commit/12ba6cec4fb79521101744e02a7e09f9fbb591c4\r\n\r\nThis feature was later removed here: \r\nhttps://github.com/angular/angular.js/commit/9faabd1ba0b1929785bcf166dc0ff60008e7c442\r\n\r\n\r\n\r\nThe variable \'made it through\', it\'s redundant now.', '3', null, null, 'benjamingr', '2014-04-23T16:26:07Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4851', '37', '7219', 'Correct size of the compressed/minified angular.js', 'Looking at angular.min.js for 1.2.16, the size has grown:\r\n\r\n```\r\n$ curl -s http://ajax.googleapis.com/ajax/libs/angularjs/1.2.16/angular.min.js | wc -c | numfmt --to=iec\r\n103K\r\n```', '3', null, null, 'rocketraman', '2014-04-23T20:59:24Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4852', '37', '722', 'Change listed library to 10.6', 'Going through docs-next, on overview page saw reference to 9.15. A quick grep doesn\'t show anywhere else 9.15 or 10.15 appears, though, so other than that is good.', '1', null, null, 'ludicast', '2012-01-18T05:29:59Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4853', '37', '7220', 'Updating to reflect ACTUAL default $resource actions', 'Request Type: docs\n\nHow to reproduce: Look at the docs for $resource\n\nComponent(s): ngResource\n\nImpact: large\n\nComplexity: small\n\nThis issue is related to: \n\n**Detailed Description:**\n\nThe docs seemed to be off. I can\'t imagine that the default $resource would create 2 DELETE actions.\n\n**Other Comments:**\n\nI updated the documentation for what looks to be some incorrect documentation. I updated it with what I\'m guessing is correct, but that doesn\'t mean it is. Please review and tweak as necessary.', '3', null, null, 'toymachiner62', '2014-04-23T21:03:58Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4854', '37', '723', '(bugfix) ng:submit and ng:click: stop event propagation for real', 'ng:submit and ng:click don\'t stop events propagation as documentation claims. This patch does it for real. I had to do it in order to our own project work correctly.', '15', null, null, 'kstep', '2012-01-18T14:29:36Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4855', '37', '7231', 'feat(ngTouch\'s ngClick): add \'ng-touch\' attribute to prevent bluring', 'Request Type: \n\nHow to reproduce: \n\nComponent(s): \n\nImpact: \n\nComplexity: \n\nThis issue is related to: \n\n**Detailed Description:**\n\n\n\n**Other Comments:**\n\nCan now add \'ng-touch=keep-focus\' to any element to prevent the focus from being blured.\nPrimarily useful for input elements in a modal where one needs the soft keyboard to remain open or\nfor select elements. Without the new attribute, select elements are difficult to use under iOS when\nthe element is on a modal and input elements that depend on the soft keyboard were unusable. Now with the new attribute, they are fully usable. If the new attribute is not used, old behavior is\nmantained.', '2', null, null, '722C', '2014-04-24T15:37:25Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4856', '37', '7232', 'Update di.ngdoc', 'Fixed a typo.', '1', null, null, 'benighted', '2014-04-24T17:25:26Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4857', '37', '7235', 'feat(http): add config parameter to headers functions', 'Request Type: feature\n\nHow to reproduce: \n\nComponent(s): $http\n\nImpact: \n\nComplexity: small\n\nThis issue is related to: \n\n**Detailed Description:**\n\nAdds \'data\' parameter in $http\'s header property when headers defined as functions\n\n**Other Comments:**\n\nThis pull request adds to $http header functions a data parameter, so headers can use object properties to be built:\r\n\r\nExample (in a $resource) :\r\n<pre>\r\n...\r\n login: {\r\n url: \'./api/login.json\',\r\n method: \'POST\',\r\n headers : {\r\n \'Authorization\': function(data) {\r\n return \'Basic \' + btoa(data.user + \':\' + data.pass);\r\n }\r\n },\r\n...\r\n</pre>\r\n', '10', null, null, 'grisendo', '2014-04-24T17:31:47Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4858', '37', '7237', 'fix($interpolate): don\'t ReferenceError when context is undefined', '546cb42 introduced a regression, which would cause the function returned from\n$interpolate to throw a ReferenceError if `context` is undefined. This change \nprevents the error from being thrown.\n\nCloses #7230', '2', null, null, 'caitp', '2014-04-24T18:17:34Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4859', '37', '7242', 'docs($injector): Fixed typos', 'Punctuation fixes', '3', null, null, 'ChrisRose', '2014-04-24T23:54:53Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4860', '37', '7243', 'docs(guide/concepts) updating concepts to reflect the actual example', 'The actual \"A first example: Data binding\" section in concepts actually doesn\'t do anything with the `required` directive, so I\'ve removed the part of the section that explains it to avoid confusion.', '5', null, null, 'plentz', '2014-04-25T00:05:02Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4861', '37', '7244', 'docs(guide/$location) duplicated \'Crawling your app\' section', 'The \"Crawling your app\" section was duplicated.\r\n\r\nI just removed the duplication and moved the section to the \'Caveats\' section.', '5', null, null, 'plentz', '2014-04-25T00:19:11Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4862', '37', '7245', 'fix($location): parse query parameters which precede hash in hashbang mode', 'This fix causes `LocationHashbangUrl#$$rewrite()` to move a pre-hash query\r\nstring to after the hash.\r\n\r\nThis, in turn, causes urlResolve() to correctly parse the query string, and \r\nreport the correct dictionary.\r\n\r\nCloses #7239', '9', null, null, 'caitp', '2014-04-25T00:47:04Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4863', '37', '7248', 'fix($sniffer): force $sniffer.history to be false when inside ff addon', 'Request Type: bug\n\nHow to reproduce: Described precisely in reported issue #7241\n\nComponent(s): misc core\n\nImpact: small\n\nComplexity: small\n\nThis issue is related to: \n\n**Detailed Description:**\n\n`history.pushState` and `history.replaceState` seem broken when\nexecuted in scope of firefox\'s addon contentscript. This causes angular\nto behave unpredictably as described in issue #7241. This commit\nadds extra check for presence of `XPCNativeWrapper` object and makes\n`$sniffer.history` depend on it too.\n\n**Other Comments:**\n\nCloses #7241', '12', null, null, 'karolmajta', '2014-04-25T06:57:23Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4864', '37', '7255', 'fix(injector): allow multiple loading of function modules', 'move the loadedModules lookup to be performed only on strings in order to allow loading functions that look the same. this issue caused only the first `angular.mock.module(object)` invocation to work since the loadModules lookup blocked all following invocations.\r\n\r\ncloses #7254', '55', null, null, 'shahata', '2014-04-25T13:10:08Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4865', '37', '7257', 'Update class names used in phone-list template', 'Change doc to match tutorial code from repository', '1', null, null, 'orlandobrent', '2014-04-25T14:41:45Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4866', '37', '7258', 'docs(tutorial/step_07): update classes in template', 'Change class names used in phone-list template to match tutorial code from repository', '4', null, null, 'orlandobrent', '2014-04-25T16:26:02Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4867', '37', '7262', 'fix(ngClass): handle index change correctly', 'changed the odd/even calculation to be done using modulo operation instead of bitwise operation. the bitwise operation caused issues with operator precedance (`mod !== old$index & 1` is actually parsed as `(mod !== old$index) & 1` and not `mod !== (old$index & 1)` as might be expected). decided it is better to just use modulo operation for readibility instead of adding parentheses.\r\n\r\nfixes #7256', '4', null, null, 'shahata', '2014-04-26T14:27:59Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4868', '37', '7263', 'fix($sniffer): IE9 backspace bug in compatibility mode', 'Change IE9 input event workaround in $sniffer to\r\nwork in compatibility mode (msie can be less than 9)\r\n\r\nCloses #3110', '9', null, null, 'devsoftweb', '2014-04-26T18:14:55Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4869', '37', '7264', 'chore(jshint): enforce jshint for tests', '', '6', null, null, 'shahata', '2014-04-26T20:09:22Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4870', '37', '7265', 'feat($compile): allow SVG and MathML templates via special `type` property', 'Previously, templates would always be assumed to be valid HTML nodes. In some cases, it is desirable to use SVG or MathML or some other language.\r\n\r\nFor the time being, this change is only truly meaningful for SVG elements, as MathML has very limited browser support. But in the future, who knows?\r\n\r\n---\r\n\r\nNOTE: It would be nice (and more extensible) to simply add a namespaceURI option to the directive, but unfortunately this would require potentially difficult changes to jqLite.\r\n\r\nThis approach seemed much simpler, and would be more directly useful to persons wanting to use SVG content in a directive template, without a wrapping `<svg>` element. Additionally, it\'s much easier to simply write \"svg\" than a full namespace URI, so it\'s more approachable in this fashion as well.', '8', null, null, 'caitp', '2014-04-26T23:42:15Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4871', '37', '7267', 'chore($http): remove deprecated responseInterceptors functionality', 'Code cleanup! response interceptors have been deprecated for some time, and it\r\nis confusing to have two APIs, one of which is slightly \"hidden\" and hard to\r\nsee, which perform the same task. The newer API is a bit cleaner and more\r\nvisible, so this is naturally preferred.\r\n\r\nBREAKING CHANGE:\r\n\r\nPreviously, it was possible to register a response interceptor like so:\r\n\r\n```js\r\n// register the interceptor as a service\r\n$provide.factory(\'myHttpInterceptor\', function($q, dependency1,\r\n dependency2) {\r\n return function(promise) {\r\n return promise.then(function(response) {\r\n // do something on success\r\n return response;\r\n }, function(response) {\r\n // do something on error\r\n if (canRecover(response)) {\r\n return responseOrNewPromise\r\n }\r\n return $q.reject(response);\r\n });\r\n }\r\n});\r\n\r\n$httpProvider.responseInterceptors.push(\'myHttpInterceptor\');\r\n```\r\nNow, one must use the newer API introduced in v1.1.4 (4ae46814), like so:\r\n\r\n```js\r\n$provide.factory(\'myHttpInterceptor\', function($q) {\r\n return {\r\n response: function(response) {\r\n // do something on success\r\n return response;\r\n },\r\n responseError: function(response) {\r\n // do something on error\r\n if (canRecover(response)) {\r\n return responseOrNewPromise\r\n }\r\n return $q.reject(response);\r\n }\r\n };\r\n});\r\n\r\n$httpProvider.interceptors.push(\'myHttpInterceptor\');\r\n```\r\nCloses #7266', '11', null, null, 'caitp', '2014-04-27T02:31:38Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4872', '37', '7271', 'feat(compile): post-t\'clusion linking now optional', 'Request Type: feature\r\n\r\nHow to reproduce: \r\n\r\nComponent(s): $compile\r\n\r\nImpact: small\r\n\r\nComplexity: small\r\n\r\nThis issue is related to: \r\n\r\n**Detailed Description:**\r\n\r\nCan be controlled by returning an object with `{alreadyLinked: true}`\r\nfrom $transclude.\r\n\r\nCan you come up with a better name than `alreadyLinked`?\r\n\r\nRelated to #7270: While not a complete (automatic) solution to that issue, with this new feature the bug can at least be avoided.\r\n\r\nAlso, this is meant to be an advanced feature for those who want to do some more ninja-esqe stuff with transclusion. It is not meant to be used regularly or by novices who are new to $compile.\r\n\r\n\r\n**Other Comments:**', '15', null, null, 'Wizek', '2014-04-27T15:27:26Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4873', '37', '7272', 'test(misc core): fix two tests in ngClassDirective', 'Request Type: test\n\nHow to reproduce: \n\nComponent(s): misc core\n\nImpact: small\n\nComplexity: small\n\nThis issue is related to: \n\n**Detailed Description:**\n\nTwo tests weren\'t specified fully. I added the appropriate expect(...).tobe(...) lines.\n\n**Other Comments:**\n\n', '2', null, null, 'RichardLitt', '2014-04-27T18:35:01Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4874', '37', '7273', 'feature(misc core): add ngId directive', 'Request Type: feature\r\n\r\nHow to reproduce: \r\n\r\nComponent(s): misc core\r\n\r\nImpact: large\r\n\r\nComplexity: medium\r\n\r\nThis issue is related to: \r\n\r\n**Detailed Description:**\r\n\r\nSee below.\r\n\r\n**Other Comments:**\r\n\r\nThere wasn\'t an ngId directive. While ngClass works a lot of the time - and ngClassOdd/Even and all of the $animate effects are incredibly useful - a directive that switches Ids would help with the way I configure Sass files, and would just be generally useful. I couldn\'t find any mention of an ngId directive around, probably due to poor google-fu, but here\'s a start. ', '17', null, null, 'RichardLitt', '2014-04-27T19:14:54Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4875', '37', '7275', 'docs(misc core): update contributing.md', 'Fix dev-doc link, grammatical error.', '3', null, null, 'RichardLitt', '2014-04-27T22:54:14Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4876', '37', '7278', 'Added example usage of cookieStore', '', '9', null, null, 'eydreeyawn', '2014-04-28T09:12:49Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4877', '37', '7279', 'docs(ngCookies): use GFM code-snippet rather than example tag', 'The example tag creates a big ugly white rectangle on the docs page, and this\nis not very helpful and kind of looks bad. So GFM snippets are a better way to\ngo.\n\nThis fix also removes the unnecessary example heading from the $cookieStore\npage, as there has not been an example use of $cookieStore for 2 years now.', '4', null, null, 'caitp', '2014-04-28T09:40:12Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4878', '37', '728', 'feat(ng:class): value can be a map of class names to boolean expressions (described in #626)', '', '3', null, null, 'groner', '2012-01-20T03:50:45Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4879', '37', '7280', 'description formatting fix', 'Request Type: docs\n\nHow to reproduce: \n\nComponent(s): \n\nImpact: small\n\nComplexity: small\n\nThis issue is related to: \n\n**Detailed Description:**\n\n\n\n**Other Comments:**\n\nas it was, the third parameter\'s description was displayed as a code block, rather than a bulletted list.', '2', null, null, 'breyed', '2014-04-28T11:53:49Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4880', '37', '7282', 'Do not change line within @link', 'as it causes only part of the intended name to be anchored', '5', null, null, 'rousisk', '2014-04-28T13:57:41Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4881', '37', '7286', 'Revise Node.js minimal version', 'v0.10.13 has trouble(errors) running npm install\r\nNot sure of the true minimal version but can confirm v0.10.18 works', '2', null, null, 'marcelto', '2014-04-28T19:56:39Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4882', '37', '7288', 'refactor(jqLite): stop patching individual jQuery methods', 'Currently Angular monkey-patches a few jQuery methods that remove elements\r\nfrom the DOM. Since methods like .remove() have multiple signatures\r\nthat can change what\'s actually removed, Angular needs to carefully\r\nrepeat them in its patching or it can break apps using jQuery correctly.\r\nSuch a strategy is also not future-safe.\r\n\r\nInstead of patching individual methods on the prototype, it\'s better to\r\nhook into jQuery.cleanData and trigger custom events there. This should be\r\nsafe as e.g. jQuery UI needs it and uses it. It\'ll also be future-safe.\r\n\r\nThe only drawback is that $destroy is no longer triggered when using $detach\r\nbut:\r\n\r\n 1. Angular doesn\'t use this method, jqLite doesn\'t implement it.\r\n 2. Detached elements can be re-attached keeping all their events & data\r\n so it makes sense that $destroy is not triggered on them.\r\n 3. The approach from this commit is so much safer that any issues with\r\n .detach() working differently are outweighed by the robustness of the code.\r\n\r\nBREAKING CHANGE: the $destroy event is no longer triggered when using the\r\njQuery detach() method. If you want to destroy Angular data attached to the\r\nelement, use remove().\r\n\r\ncc @caitp', '11', null, null, 'mzgol', '2014-04-28T20:23:35Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4883', '37', '729', 'Watch fn', 'fix for: https://groups.google.com/forum/#!topic/angular/FCh9C1BHmpg', '5', null, null, 'IgorMinar', '2012-01-21T08:03:40Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4884', '37', '7290', 'fix(ngSrc, ngSrcset): only interpolate if all expressions are defined', '**BREAKING CHANGE**\r\n\r\nIf `bar` is `undefined`, before `<img src=\"foo/{{bar}}.jpg\">` yields\r\n`<img src=\"foo/.jpg\">`. With this change, the binding will not set `src`.\r\n\r\nIf you want the old behavior, you can do this: `<img src=\"foo/{{bar || \'\'}}.jpg\">`.\r\n\r\nThe same applies for `srcset` and `href`.\r\n\r\nCloses #6984 ', '16', null, null, 'btford', '2014-04-28T20:50:51Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4885', '37', '7292', 'fix(ngModelOptions): add textarea support', 'since directives are sorted by priority and name and `ngModel` & `textarea` have the same priority and \'textarea\'>\'ngModel\' (unlike \'input\'), textarea in linked first. this is a problem since textarea expect ngModelController.$options to exist and it is created only when ngModel is linked. this is solved easily by moving the creation of $options to pre-link.\r\n\r\nfixes #7281', '4', null, null, 'shahata', '2014-04-28T21:15:52Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4886', '37', '7293', 'docs(ngIf): add warning regarding falsy values', 'Add warning message to ngIf\'s documentation regarding what values are considered falsy (similar to ngHide / ngShow).', '3', null, null, 'mickeywu', '2014-04-28T22:42:56Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4887', '37', '7294', 'Update CONTRIBUTING.md', '', '2', null, null, 'ChrisRose', '2014-04-28T22:59:44Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4888', '37', '730', 'Fix style in $http doc.', '', '1', null, null, 'alkis', '2012-01-22T00:33:00Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4889', '37', '7301', 'Update providers.ngdoc', 'Request Type: docs\n\nHow to reproduce: \n\nComponent(s): \n\nImpact: large\n\nComplexity: small\n\nThis issue is related to: \n\n**Detailed Description:**\n\nMinor edits to the docs.\n\n**Other Comments:**\n\n', '4', null, null, 'mjfroehlich', '2014-04-29T14:44:18Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4890', '37', '7302', 'Update step_00.ngdoc', 'http://localhost:8000/app/index.html redirect automatically to http://localhost:8000/app/index.html#/phones', '3', null, null, 'mstachniuk', '2014-04-29T17:11:06Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4891', '37', '7304', 'fix(ngRepeat): ensure expected order of execution for directive lifecycle functions is maintained when they are nested along with ngRepeat', 'Request Type: bug\r\n\r\nHow to reproduce: http://plnkr.co/edit/k09gvqao2oHfIaQfktkd\r\n\r\nComponent(s): ngRepeat\r\n\r\nImpact: small\r\n\r\nComplexity: small\r\n\r\nThis issue is related to: \r\n\r\n**Detailed Description:**\r\n\r\nWhen using directives that are siblings with nested ngRepeat, their lifecycle functions are called out of order (\'outer\' ones are called before the \'inner\' ones) e.g.:\r\n```\r\n<div foo ng-repeat=\"...\">\r\n <div bar ng-repeat=\"...\"></div>\r\n<div>\r\n```\r\nresults in the following call order:\r\n```\r\nfoo.compile\r\nbar.compile\r\nfoo.controller\r\nfoo.preLink\r\nfoo.postLink\r\nbar.controller\r\nbar.preLink\r\nbar.postLink\r\n```\r\nwhen the expected would be:\r\n```\r\nfoo.compile\r\nbar.compile\r\nfoo.controller\r\nfoo.preLink\r\nbar.controller\r\nbar.preLink\r\nbar.postLink\r\nfoo.postLink\r\n```\r\n\r\n**Other Comments:**\r\n\r\nEnsure that lifecycle functions of directives are called in the expected\r\norder (i.e. compile, controller, preLink, postLink) when using them along\r\nngRepeat on nested elements.\r\n\r\nPrevious to this change, lifecycle functions for \'outer\' directives were\r\ncalled before the ones for the \'inner\' directives, when ngRepeat was used\r\non both the \'outer\' and the \'inner\' elements e.g.:\r\n```\r\n<div foo ng-repeat=\"...\">\r\n <div bar ng-repeat=\"...\"></div>\r\n<div>\r\n```\r\nresulted in the following call order:\r\n```\r\nfoo.compile\r\nbar.compile\r\nfoo.controller\r\nfoo.preLink\r\nfoo.postLink\r\nbar.controller\r\nbar.preLink\r\nbar.postLink\r\n```\r\nwhile after applying this change, the order will be:\r\n```\r\nfoo.compile\r\nbar.compile\r\nfoo.controller\r\nfoo.preLink\r\nbar.controller\r\nbar.preLink\r\nbar.postLink\r\nfoo.postLink\r\n```\r\nMotivation for the change was a means to provide a communication channel\r\nbetween parent and child directives where both need to be places as a\r\nsibling of ngRepeat.', '14', null, null, 'tatarmihai', '2014-04-29T20:56:38Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4892', '37', '7305', 'docs($http): change test jsonp urls to https', 'Since the whole website is now running over https, the http jsonp dummy urls don\'t work. Changing them to https.', '2', null, null, 'cilice', '2014-04-29T22:57:23Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4893', '37', '7306', 'Update step_03.ngdoc to specify which describe block.', 'There are two describe blocks and the change needs to be made in the *outer* block not the inner one. That is, it fails in the outer but not the inner.', '4', null, null, 'arigoldx', '2014-04-30T01:40:34Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4894', '37', '7307', 'fix(ngSanitize): update to exclude smart quotes', 'Request Type: bug\n\nHow to reproduce: Add a smart quote (single or double) at the end of a\nurl string and filter the string with linky. Example plunker:\nhttp://plnkr.co/edit/CeB5x48U0D1eXq4yXkvk?p=preview\n\nComponent(s): ngSanitize\n\nImpact: small\n\nComplexity: small\n\nThis issue is related to: \n\n**Detailed Description:**\n\nWhen smart quotes are included in content filtered through linky, any\nsmart quote at the end of a URL string will be included in the link\ntext and the href.\n\n**Other Comments:**\n\n', '14', null, null, 'stickel', '2014-04-30T05:50:37Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4895', '37', '7308', 'feat(ngResource): support extending resources', '### A suggested solution for #4565\r\n\r\nRequest Type: feature\r\n\r\nHow to reproduce: \r\n- **Array type action bug**: create a resource with a custom action from type array, call that action on an instance of your custom resource. Exception is thrown.\r\n- **Extending resource feature**: You want the response of your action call to become a part of your resource instance. There is currently no straight forward way of doing this.\r\n\r\nComponent(s): ngResource\r\n\r\nImpact: small\r\n\r\nComplexity: small\r\n\r\nThis issue is related to: \r\n\r\nWhen calling a Resource instance\'s ```GET``` actions such as ```$get``` and ```$query``` but mostly custom ones, it is sometimes needed to be able to extend the resource with the response data e.g:\r\n\r\n```javascript\r\nentity.$children()\r\n.then(function(){\r\n console.log(entity.children) //undefined\r\n});\r\n//the response did not become a part of the resource\r\n```\r\nAutomatically setting the response on the resource with the property name is a bad idea since it can lead to unexpected overrides (the resource might have had a property named children) and generally it should be up to the user to decide whether to extend or not and how.\r\n\r\nMy approach involves leveraging the Resource\'s interceptor to achieve a both flexible and clean way to extend instances. By calling the interceptor\'s response function with the instance as it\'s context (this) it is possible to reference it and set the desired properties:\r\n\r\n```javascript\r\n$resource(\'[...]/entity/:id\', {}, {\r\n \'children\': {\r\n method: \'GET\',\r\n url:\'[...]/entity/:id/children\',\r\n params:{id:\'@id\'},\r\n isArray:true,\r\n interceptor:{\r\n response: function(response){\r\n var data = response.data;\r\n this.children = data; //\"this\" references the entity resource\r\n return data;\r\n }\r\n }\r\n }\r\n});\r\n```\r\n### Update\r\n\r\nAs @dadleyy suggested,\r\nI have added an optional param on actions called *saveAs* to give the user control over whether to save the response on the resource\'s instance and under what property name.\r\n\r\n```javascript\r\nvar Entity = $resource(\'[...]/entity/:id\', {}, {\r\n \'children\': {\r\n method: \'GET\',\r\n url:\'[...]/children\',\r\n params:{entityId:\'@id\'},\r\n saveAs:\'children\', //new optional property, value can be any string.\r\n isArray:true,\r\n }\r\n \r\nvar entity = Entity.get({id:123});\r\nentity.$children(function(){\r\n //property name is the one defined in the *saveAs* param on the $children action.\r\n console.log(entity.children) //[child1, child2...]\r\n});\r\n```', '5', null, null, 'yohairosen', '2014-04-30T09:05:53Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4896', '37', '7309', 'README.md', '', '3', null, null, 'ghost', '2014-04-30T09:05:58Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4897', '37', '7311', 'feat(jQuery): upgrade to jQuery to 2.1.1', 'feat(jQuery): upgrade to jQuery to 2.1.1\r\n\r\nThe data jQuery method was re-implemented in 2.0 in a secure way. This made\r\ncurrent hacky Angular solution to move data between elements via changing the\r\nvalue of the internal node[jQuery.expando] stop working. Instead, just copy the\r\ndata from the first element to the other one.\r\n\r\nTesting cache leaks on jQuery 2.x is not possible in the same way as it\'s done\r\nin jqLite or in jQuery 1.x as there is no publicly exposed data storage. One\r\nway to test it would be to intercept all places where a jQuery object is created\r\nto save a reference to the underlaying node but there is no single place in the\r\njQuery code through which all element creation passes (there are various\r\nshortcuts for performance reasons). Instead we rely on jqLite.cache testing\r\nto find potential data leaks.\r\n\r\nBREAKING CHANGE: Angular no longer supports jQuery versions below 2.1.1.\r\n\r\n**Original description:**\r\nThe data jQuery method was re-implemented in 2.0 in a secure way. This made\r\ncurrent hacky Angular solution to move data between elements via changing the\r\nvalue of the internal node[jQuery.expando] stop working. Instead, just move the\r\ndata from the first element to the other one.\r\n\r\ncc @caitp @IgorMinar', '33', null, null, 'mzgol', '2014-04-30T10:32:51Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4898', '37', '7313', 'Update step_07.ngdoc to fix typo in route pattern', 'One instance of `/phones/:phoneId` erroneously had a singular version, `/phone/:phoneId`, which does not match what was actually used in the code.', '3', null, null, 'jamiekrug', '2014-04-30T15:28:20Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4899', '37', '7315', 'Adds tel input type validation', 'Request Type: feature\n\nHow to reproduce: \n\nComponent(s): forms\n\nImpact: medium\n\nComplexity: small\n\nThis issue is related to: \n\n**Detailed Description:**\n\nThis adds default validation to <input type=\'tel\'> elements.\n\n**Other Comments:**\n\nThe \'tel\' input gives you a phone keyboard on mobile, but it\'d be handy to have some validation for desktop users.', '11', null, null, 'wmill', '2014-04-30T16:00:52Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4900', '37', '7316', 'fix(injector): conditionally create $delegate', 'Request Type: bug\n\nHow to reproduce: http://embed.plnkr.co/ywgTsC/preview\n\nComponent(s): di\n\nImpact: small\n\nComplexity: small\n\nThis issue is related to: \n\n**Detailed Description:**\n\n\n\n**Other Comments:**\n\nOn decorator instantiation, only create $delegate instance if the dependancy exists.\r\nThis allows decorators that completely replace the decorated service to be independant of the original service.\r\n\r\nfix for https://github.com/angular/angular.js/issues/6961', '3', null, null, 'lee-elenbaas', '2014-04-30T16:02:56Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4901', '37', '7319', 'Minor copyedit.', 'Request Type: docs\n\nHow to reproduce: \n\nComponent(s): $location\n\nImpact: small\n\nComplexity: small\n\nThis issue is related to: \n\n**Detailed Description:**\n\n\n\n**Other Comments:**\n\nSingular-tense verb. Definite article.', '3', null, null, 'janaspage', '2014-04-30T19:31:52Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4902', '37', '732', 'Parser $unboundFn removal', 'fix for #731 and other fixes.\r\n\r\nI\'m not too familiar with the $parse code so please review carefully', '1', null, null, 'IgorMinar', '2012-01-24T10:44:49Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4903', '37', '7320', 'fix($httpBackend): Add missing expectHEAD() and expectOPTIONS() methods', 'This method was documented but not implemented.\r\n\r\nWith accompanying unit test.\r\n\r\nCLA signed as dave@thesmithfam.org.', '23', null, null, 'djsmith42', '2014-04-30T21:48:36Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4904', '37', '7322', 'Refactor confusing case statement in the resourceFactory action method.', 'Request Type: refactor\n\nHow to reproduce: not a bug, just confusing code\n\nComponent(s): ngResource\n\nImpact: small\n\nComplexity: small\n\nThis issue is related to: performance regression\n\n**Detailed Description:**\n\nA coworker ran across the case statement at the beginning of the resourceFactory action method definition. I refactored it so it\'s clearer what\'s going on. As a result, the jshint exception is no longer needed. Tests pass, but we have not tried it in a production app yet.\n\n**Other Comments:**\n\n', '12', null, null, 'jessehouchins', '2014-05-01T03:20:47Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4905', '37', '7329', 'fix(filterFilter) deeply-nested predicate objects + multiple conditions were not giving expected results', 'Request Type: bug\r\n\r\nHow to reproduce: \r\n\r\nhttp://plnkr.co/edit/Yd705mYbqKJ3n79TXLmx?p=preview\r\n\r\nComponent(s): misc core\r\n\r\nImpact: medium\r\n\r\nComplexity: small\r\n\r\n**Detailed Description:**\r\n\r\nFixes current `filterFilter`\'s implementation (introduced in 1.2.13 as a result of #6215) for **deeply-nested predicate objects** + **multiple conditions** scenarios.\r\n\r\nProblem: when using deeply nested predicate objects, `filterFilter` is currently behaving as if it was using _OR_ operators (i.e. it doesn\'t matter if some conditions don\'t match as long as one does), and should be behaving as if it used _AND_ operators in order to be consistent with the original implementation for non-deeply-nested predicate objects.\r\n\r\n', '18', null, null, 'albertboada', '2014-05-02T03:49:40Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4906', '37', '7330', 'Update $animate service to accept native dom elements as well as jqLite objects', 'Request Type: docs\n\nHow to reproduce: \n\nComponent(s): ngAnimate\n\nImpact: small\n\nComplexity: small\n\nThis issue is related to: \n\n**Detailed Description:**\n\nsimply `$animate.addClass` and the like only resolve for javascript defined animations if passed a jqLite object. Passing a native dom object does not work. This nuance needs to be documented.\n\n**Other Comments:**\n\n`$animate` only seems to work if passed a `jqLite` object, native dom elements do not work. This should be documented.', '26', null, null, 'Fresheyeball', '2014-05-02T04:33:16Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4907', '37', '7331', 'Correction of Typo of \'synch\' to \'sync\' on first page of tutorial', 'Just a small typo in the tutorial: \"See examples of how to use client-side data binding to build dynamic views of data that change immediately in response to user actions.\r\nSee how Angular keeps your views in >>>>>>>>> synch <<<<<<<< with your data without the need for DOM manipulation.\r\nLearn a better, easier way to test your web apps, with Karma and Protractor.\r\nLearn how to use dependency injection and services to make common web tasks, such as getting data into your app, easier.\"\r\n', '1', null, null, 'mrjamesriley', '2014-05-02T05:15:40Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4908', '37', '7333', 'Fix $cookieStore example', '', '3', null, null, 'giodamelio', '2014-05-02T12:50:38Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4909', '37', '7335', 'Corrected typo in the documentation for ngModelOptions', 'Noticed it while reading the angular docs.', '4', null, null, 'raghudodda', '2014-05-02T16:28:54Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4910', '37', '7339', 'Fix language matching in code directive', 'Request Type: docs\r\n\r\nHow to reproduce: \r\n\r\nComponent(s): misc core\r\n\r\nImpact: small\r\n\r\nComplexity: small\r\n\r\nThis issue is related to: \r\n\r\n**Detailed Description:**\r\n\r\nThe language matching for the `code` directive in docs app is not working.\r\n\r\nFor example, `class=\"lang-javascript\"` should match `javascript` but it doesn\'t\r\n\r\n**Other Comments:**\r\n\r\nIncludes:\r\n\r\n* Fix for the `code` directive\r\n* Tests for the `code` directive', '1', null, null, 'jaysoo', '2014-05-04T03:09:08Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4911', '37', '7342', 'Update interpolate.js', 'Bug fix', '1', null, null, 'spacemigas', '2014-05-04T19:03:44Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4912', '37', '7345', 'Update cookies.js', 'Request Type: docs\n\nHow to reproduce: \n\nComponent(s): ngCookies\n\nImpact: \n\nComplexity: small\n\nThis issue is related to: \n\n**Detailed Description:**\n\n\n\n**Other Comments:**\n\nJust fixed an example in the API reference.', '5', null, null, 'anasqadrei', '2014-05-05T00:10:00Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4913', '37', '7349', 'docs(CONTRIBUTING.md): anchor fix', 'Request Type: docs\n\nHow to reproduce: 1) Open https://github.com/angular/angular.js/blob/master/CONTRIBUTING.md\n\n2) search for the text \"Follow our Coding Rules\"\n\n3) Click on the \"Coding Rules\" anchor\n\n4) It doesn\'t take you to coding rule section.\n\nComponent(s): \n\nImpact: small\n\nComplexity: small\n\nThis issue is related to: \n\n**Detailed Description:**\n\n\n\n**Other Comments:**\n\n\"Follow our Coding Rules\" should link to \"#rules\" and not \"#coding-rules\"', '2', null, null, 'sap9433', '2014-05-05T09:12:12Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4914', '37', '7350', 'Correct example for filter date/\'fullDate\' in documentation', 'Request Type: docs\n\nHow to reproduce: \n\nComponent(s): \n\nImpact: \n\nComplexity: \n\nThis issue is related to: \n\n**Detailed Description:**\n\nOn the following docs page there is a missing space in giving the equivalent expanded filter for the shortform \'fullDate\' filter.\n\nhttps://docs.angularjs.org/api/ng/filter/date\n\nIt gives the equivalent as this:\n`\'fullDate\': equivalent to \'EEEE, MMMM d,y\' for en_US locale (e.g. Friday, September 3, 2010)`\nWhereas it should be:\n`\'fullDate\': equivalent to \'EEEE, MMMM d, y\' for en_US locale (e.g. Friday, September 3, 2010)`\n\nNotice the space between the `d,` and `y`. A very small issue, but probably worth fixing!\n\n**Other Comments:**\n\nThe equivalent expanded example for \'fullDate\' is given as \'EEEE, MMMM d,y\' whereas it should be \'EEEE, MMMM d, y\' e.g. I added the correct whitespace to the expanded example.', '3', null, null, 'Joe8Bit', '2014-05-05T14:08:21Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4915', '37', '7352', 'Update cookies.js', 'Just a little fix in the example.', '3', null, null, 'nathanredblur', '2014-05-05T16:30:03Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4916', '37', '7353', 'Update index.ngdoc', 'It was confusing to read \"end 2 end\" as a numeric two. I kept wondering what two end(s). Later in the tutorial, the text switched to \"End to End\" which made more sense than numeric two.', '4', null, null, 'Zorigt', '2014-05-05T20:49:45Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4917', '37', '7354', 'Update interpolate.js', 'Removed function name to match other examples.', '2', null, null, 'jesselpalmer', '2014-05-05T20:56:56Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4918', '37', '7357', 'Update step_11.ngdoc', 'Request Type: docs\n\nHow to reproduce: \n\nComponent(s): ngResource\n\nImpact: small\n\nComplexity: small\n\nThis issue is related to: \n\n**Detailed Description:**\n\n\n\n**Other Comments:**\n\nexplanation about the \'magic\' that happens when only $scope.phones = Phone.query(); is given.', '6', null, null, 'obaydmir', '2014-05-06T12:18:10Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4919', '37', '7364', 'docs($rootScope): use unshift to add items to the array at the beginning', 'Request Type: docs\r\n\r\nHow to reproduce: \r\n\r\nComponent(s): rootScope.js\r\n\r\nImpact: small\r\n\r\nComplexity: small\r\n\r\nThis issue is related to:\r\n\r\nDetailed Description:\r\n\r\nOther Comments: correct the method name to add items at the beginning of array.', '1', null, null, 'barcahead', '2014-05-06T15:34:39Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4920', '37', '7365', 'small grammar fix', '', '1', null, null, 'thinkingmedia', '2014-05-06T15:59:55Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4921', '37', '7366', 'feat($interpolate): add support for bind-once and lazy bind-once', 'With this optimization, it\'s now possible for $interpolated expressions to\ncease evaluating expressions when it determines them to be finalized, and\n$watch will now unwatch finalized interpolated expressions.', '22', null, null, 'caitp', '2014-05-06T17:44:39Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4922', '37', '7367', 'feat(ngBind): add support for bind-once and lazy bind-once', 'It is now possible to request one-time binding via the ngBind and ngBindHtml\ndirectives, by supplying the attributes `ng-once` or `ng-lazy`.\n\nThese attribute names are subject to change, and only affect the immediate\nelement, not child elements.\n\nRelated to #7366', '4', null, null, 'caitp', '2014-05-06T18:32:34Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4923', '37', '7369', 'chore(travis): run protractor tests with ff28', 'I don\'t know if this will work, but I\'m hoping it will fix the issues with\nfirefox tests failing.\n\nLets find out :c', '0', null, null, 'caitp', '2014-05-06T21:52:03Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4924', '37', '7370', 'feat(input): add input type=range support', 'Request Type: feature\r\n\r\nHow to reproduce:\r\n\r\nComponent(s): misc core\r\n\r\nImpact: small\r\n\r\nComplexity: small\r\n\r\nThis issue is related to:\r\n\r\n**Detailed Description:**\r\n\r\nBind model of <input type=\"range\"> to number (like <input type=\"number\">) rather than string. Range inputs represent numerical values; therefore, a numerical binding makes more sense than a string binding.\r\n\r\n**Other Comments:**\r\n\r\nCloses #5892, #1189', '7', null, null, 'TylerEich', '2014-05-06T23:19:31Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4925', '37', '7373', 'fix(ngSwitch): properly support case labels with different numbers of transclude fns', 'Due to a regression introduced several releases ago, the ability for multiple\ntransclude functions to work correctly changed, as they would break if\ndifferent case labels had different numbers of transclude functions.\n\nThis CL corrects this by not assuming that previous elements and scope count\nhave the same length.\n\nCloses #7372', '3', null, null, 'caitp', '2014-05-07T03:16:01Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4926', '37', '7374', 'feat(ng/filter): support ASP.NET JSON dates', ' Add support for ASP.NET JSON dates. The default JSON serializer\r\n in the ASP.NET framework serializes dates in the following way:\r\n \"/Date(1198908717056)/\"\r\n This PR allows the date filter to properly format and display\r\n these dates. A test case and documentation were also added.\r\n \r\n This PR should not break anything, only add additional features.\r\n\r\nI also changed the timezone of my computer to make sure that the test\r\nruns properly in different time zones, and it seems to be the case.', '5', null, null, 'sbstp', '2014-05-07T04:19:44Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4927', '37', '7376', 'mouseleave mouseenter relatedTarget', '', '1', null, null, 'dolymood', '2014-05-07T05:26:08Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4928', '37', '7377', 'ngModelController.$validators pipeline and refactoring', 'Fixes #6750\r\nFixes #6304 \r\nFixes #5164', '13', null, null, 'matsko', '2014-05-07T06:33:42Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4929', '37', '7378', 'get real event.relatedTarget', '', '2', null, null, 'dolymood', '2014-05-07T08:04:16Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4930', '37', '7379', 'jqLite:get real event.relatedTarget and lication: fix path method and rootElement\'s click event', '', '6', null, null, 'dolymood', '2014-05-07T08:09:17Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4931', '37', '7381', 'docs(directive): fix misspelled HTML class for an alert', 'Request Type: docs\n\nHow to reproduce: \n\nComponent(s): misc core\n\nImpact: small\n\nComplexity: small\n\nThis issue is related to: \n\n**Detailed Description:**\n\n\n\n**Other Comments:**\n\nThis PR fixes issue #7371.', '4', null, null, 'thomastuts', '2014-05-07T11:34:59Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4932', '37', '7382', 'docs(contributing): add missing link to developer documentation', 'Request Type: docs\r\n\r\nHow to reproduce:\r\n\r\nComponent(s): misc core\r\n\r\nImpact: small\r\n\r\nComplexity: small\r\n\r\nThis issue is related to:\r\n\r\n**Detailed Description:**\r\n\r\n**Other Comments:**\r\n\r\nThis PR adds a missing link in the contributing guide for running tests.', '2', null, null, 'thomastuts', '2014-05-07T13:06:04Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4933', '37', '7384', 'feat($compile): support transcluding SVG nodes when there is no root <svg> node', 'This CL is a work in progress, and is not meant to be committed in this state.\r\n=============================================================\r\n\r\nDue to https://github.com/angular/angular.js/commit/f0e12ea7fea853192e4eead00b40d6041c5f914a, it is now possible to have a directive whose template content is SVG.\r\n\r\nHowever, the following issue arises:\r\n\r\nA template like\r\n\r\n```html\r\n<replaces-with-svg-and-transcludes>\r\n <g>\r\n <circle r=50 cx=0 cy=0 />\r\n <text>My circle!</text>\r\n </g>\r\n</replaces-with-svg-and-transcludes>\r\n```\r\n\r\nWould not work as expected, due to the group, circle and text nodes being\r\nparsed as HTMLUnknownElements, for not being parsed in an SVG context.\r\n\r\nThis change enables transcluded SVG content to work when parsed as non-HTML\r\ncontent, with the cost of linking the transcluded elements again.\r\n\r\nFixes #7383', '2', null, null, 'caitp', '2014-05-07T16:21:32Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4934', '37', '7386', 'docs(ngRoute): ngRoute does not parseInt possible integer route parts in $routeParams', 'Request Type: docs\r\n\r\nHow to reproduce: View docs for $routeParams\r\n\r\nComponent(s): ngRoute\r\n\r\nImpact: small\r\n\r\nComplexity: small\r\n\r\nDetailed Description:\r\n\r\nBad documented type for $routeParams. It should be an Object.<string, string>\r\nIntegers are not parsed for the user. They must be parsed from the string pulled from the URL.', '3', null, null, 'wesalvaro', '2014-05-07T20:01:26Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4935', '37', '7387', 'Nested transclude issue', 'Solves the problem of transclude directives that contain transclude directives in their template.\r\n\r\nFixes #7240 \r\nFixes #4969\r\n', '22', null, null, 'petebacondarwin', '2014-05-07T21:07:45Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4936', '37', '7389', 'Fix typo.', 'Request Type: docs\n\nHow to reproduce: \n\nComponent(s): \n\nImpact: \n\nComplexity: \n\nThis issue is related to: \n\n**Detailed Description:**\n\n\n\n**Other Comments:**\n\n', '2', null, null, 'mjfroehlich', '2014-05-07T22:35:08Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4937', '37', '739', 'doc(guide): order topic list in guide sidebar in accordance with overview (#405)', '', '2', null, null, 'manuel-woelker', '2012-01-31T20:21:33Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4938', '37', '7390', 'Changed arguments in $cookieStore example.', 'In the example code for $cookieStore, $cookies was passed in, but this seem to cause an error for me. When I passed in $cookieStore instead, everything worked.', '2', null, null, 'taylorhutchison', '2014-05-08T03:23:51Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4939', '37', '7396', 'feat($resource): Add optional constructor to factored resources', 'Request Type: feature\n\nHow to reproduce: \n\nComponent(s): ngResource\n\nImpact: medium\n\nComplexity: small\n\nThis issue is related to: \n\n**Detailed Description:**\n\n\n\n**Other Comments:**\n\nSo we can specified the custom constructor.\r\n\r\nRelated: #1483.', '2', null, null, 'bolasblack', '2014-05-08T10:01:37Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4940', '37', '7397', 'style(core): make code formatting more consistent and legible', 'Request Type: style\r\n\r\nHow to reproduce:\r\n\r\nComponent(s): core\r\n\r\nImpact: small\r\n\r\nComplexity: small\r\n\r\nThis issue is related to:\r\n\r\n**Detailed Description:**\r\nThis commit changes the code formatting of the Angular.js core to adhere more closely to Google\'s JavaScript style guide. This includes adding whitespace and blank lines where needed. It also removes some unused variables, while renaming others to provide more clarity as to what it does (e.g. `ii` to `attributePrefixLength`).\r\n\r\n**Other Comments:**\r\n', '7', null, null, 'thomastuts', '2014-05-08T10:09:44Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4941', '37', '74', 'Make $cookieStore store non-global', '', '1', null, null, 'IgorMinar', '2010-10-22T18:11:42Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4942', '37', '7401', 'Changes Gingerbreak to Gingerbread.', 'Request Type: docs\n\nHow to reproduce: \n\nComponent(s): \n\nImpact: \n\nComplexity: small\n\nThis issue is related to: \n\n**Detailed Description:**\n\n\n\n**Other Comments:**\n\nI think that\'s a typo.', '11', null, null, '412andrewmortimer', '2014-05-08T15:28:29Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4943', '37', '7408', 'Update concepts.ngdoc - ng-repeat examples NEVER SHOW UP', 'NOTE: These examples never show up in the presentation... this made it difficult to understand what was meant by using ng-repeat (only occurs in writing NOT in your \"fork\" copy or anywhere in the Guide). Search only finds one ng-repeat in the \"Developer Guide\" document(not in the comment version. Examples do not show up in \"Developer Guide\" version.', '3', null, null, 'gwgguy', '2014-05-09T09:14:55Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4944', '37', '7409', 'fix($http): support url format variant for arrays value #fixes 7363', '$http now supports both url format `/foo?countries[]=US&countries[]=GB` and `/foo?countries=US&countries=GB`\r\nIn order to activate the first format, config.useArrayParams must be set to true.\r\n\r\nFixes #7363', '9', null, null, 'FGRibreau', '2014-05-09T10:45:23Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4945', '37', '7414', 'feat(ngModelOptions): add validateOn option', 'Add option to set different triggers for validation than the triggers that actually update the model. A new method `$$validateViewValue` was extracted from `$commitViewValue` which can be called when a `validateOn` trigger occurs. This method sets the control as dirty and runs all `$parsers`, but doesn\'t actually change the model. The idea is that many times people want to pend or debounce the updates to the model in order to prevent a lot of invocations of watchers or just simply to update their model only when a form is submitted, but they would still like their users to get feedback immediately when the view is dirty or invalid.\r\n\r\nBREAKING CHANGE:\r\n\r\nThis commit introduces the option to run `$parsers` without setting the `$modelValue` with the result.\r\n\r\nCloses #7016', '5', null, null, 'shahata', '2014-05-09T19:04:00Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4946', '37', '7415', 'Update step_04.ngdoc', 'Request Type: docs\n\nHow to reproduce: follow the tutorial\n\nComponent(s): \n\nImpact: small\n\nComplexity: small\n\nThis issue is related to: \n\n**Detailed Description:**\n\n\n\n**Other Comments:**\n\nmissing span which caused e2e scenarios to fail.', '4', null, null, 'TimvdEijnden', '2014-05-09T20:40:21Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4947', '37', '7418', 'Correct the app/index.html example code', 'Add span tag for {{phone.name}}, otherwise the protractor test will failed.', '4', null, null, 'conechan', '2014-05-10T08:43:29Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4948', '37', '7419', 'Update compile.js', 'from a couple of tests I\'ve made (including placing the directive elements in different ordering and writing the directives in different ordering).', '4', null, null, 'GrizzlyMcBear', '2014-05-10T10:14:58Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4949', '37', '742', 'Compiler', '', '0', null, null, 'mhevery', '2012-02-04T00:51:27Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4950', '37', '7420', 'Update step_07.ngdoc', 'Request Type: docs\n\nHow to reproduce: follow the tutorial\n\nComponent(s): \n\nImpact: small\n\nComplexity: small\n\nThis issue is related to: \n\n**Detailed Description:**\n\n\n\n**Other Comments:**\n\nFix failing test in e2e scenario', '4', null, null, 'TimvdEijnden', '2014-05-10T13:16:38Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4951', '37', '7421', 'Update step_11.ngdoc', 'Request Type: docs\n\nHow to reproduce: follow the tutorial\n\nComponent(s): \n\nImpact: small\n\nComplexity: small\n\nThis issue is related to: \n\n**Detailed Description:**\n\n\n\n**Other Comments:**\n\nfix \'ReferenceError: PhoneDetailCtrl is not defined\' & \'ReferenceError: PhoneListCtrl is not defined\' in Karma unit tests', '4', null, null, 'TimvdEijnden', '2014-05-10T15:09:57Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4952', '37', '7423', 'feat(http): add multiple parameters serializers', 'Add the ability to add parameters serializers\r\nAdd common parameters serializers\r\n\r\nStill needs quite some documentation changes, but putting it out to get feedback\r\n\r\nCloses #7363', '15', null, null, 'lgalfaso', '2014-05-10T20:36:34Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4953', '37', '7424', 'docs(di): corrects typo', 'Request Type: docs\n\nHow to reproduce: \n\nComponent(s): di\n\nImpact: small\n\nComplexity: small\n\nThis issue is related to: \n\n**Detailed Description:**\n\n\n\n**Other Comments:**\n\n', '3', null, null, 'kanhirun', '2014-05-11T04:39:24Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4954', '37', '7425', 'docs(misc core): @function and @kind function used inconsistently. Use @kind function.', 'Request Type: docs\r\n\r\nComponent(s): misc core\r\n\r\nImpact: small\r\n\r\nComplexity: small\r\n\r\nDetailed Description:\r\n\r\n`@kind function` should be used in lieu of `@function`.\r\nSwitch to use `@kind function` everywhere.', '16', null, null, 'wesalvaro', '2014-05-11T09:32:24Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4955', '37', '7427', 'feat(ngRoute): add named routes', 'Request Type: feature\r\n\r\nHow to reproduce: \r\n\r\nComponent(s): ngRoute\r\n\r\nImpact: medium\r\n\r\nComplexity: medium\r\n\r\nThis issue is related to: \r\n\r\n**Detailed Description:**\r\n\r\nRoutes are defined in the same way as regular AngularJS routes except it is possible to supply a name for a route.\r\nIf a route is requested it provides a promise that is resolved once navigation is complete, or rejected if another route was navigated to in the same digest.\r\n\r\nLinks can be defined using the ngGoto directive and should be used instead of ngHref as only name need be used instead of the entire path. It is also possible to effect only a particular named group in the path without updating the rest. For instance:\r\n\r\nif you had two routes: `/:user/links` and `/:user/pictures` you could link to pictures like: `<a ng-goto=\"pictures\">pictures</a>` and it would automatically pick up the user you are looking at and link to their pictures (if the current path was `/steve/links` then the href of the link above would be generated `/steve/pictures`)\r\n\r\nLinks or other DOM elements that define ng-goto also use the ng-click directive to enact the route change, thus supporting ngTouch if it is included and also filling out the href if a link element.\r\n\r\nWould resolve:\r\n\r\n* angular/angular.js#1791\r\n* angular/angular.js#7091\r\n\r\n\r\n**Other Comments:**\r\n\r\nNamed routes provide helper functions for scripted route changes and partial route updating,\r\ncomponents may update specified named groups in a route without knowing the semantics of a\r\nroute. A directive, ngGoto, is provided for binding routes to DOM elements such as the A tag.\r\n\r\nIt is 100% backwards compatible with the existing routing system so could be added in a point release.', '11', null, null, 'stakach', '2014-05-11T10:15:57Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4956', '37', '7433', 'replaced bootstrap 2 with bootstrap 3 classes', '', '4', null, null, 'cioddi', '2014-05-12T12:41:56Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4957', '37', '7434', 'Update ngRepeat.js', ' `item in items track by $id(item)` didn\'t show as code due to mistake in the closing tag (was \' instead of `)', '4', null, null, 'yaronuliel', '2014-05-12T19:17:01Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4958', '37', '7436', 'Corrected logic in ng-hide expansion example.', '', '1', null, null, 'NateRedding', '2014-05-12T21:18:42Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4959', '37', '7437', 'Update step_02.ngdoc', 'Corrected location of unit test based on current code structure', '3', null, null, 'yhippa', '2014-05-13T01:38:22Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4960', '37', '744', 'TzDate.getDay to use the specified offset', 'Allows people to successfully run the tests, even in china!', '2', null, null, 'stephanebisson', '2012-02-06T03:16:35Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4961', '37', '7441', 'Update step_12.html', 'Corrected the version of jquery in the text content.', '3', null, null, 'kalvn', '2014-05-13T07:26:35Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4962', '37', '7442', 'docs(select): More usage examples with track by', '', '5', null, null, 'trodrigues', '2014-05-13T09:13:51Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4963', '37', '7445', 'fix($rootScope): avoid unstable reference in $broadcast event', 'Request Type: bug\r\n\r\nHow to reproduce: Any case of asynchronous access to `event.currentScope` :\r\n- `console.log(event)` then expand the object in console (Chrome / Firefox)\r\n- Via `$timeout`\r\n- In Jasmine expectation\r\n\r\n[Plunker](http://plnkr.co/edit/YbsyEhzz81Mcd9TZdBwt?p=preview)\r\n\r\nNote : The tree of scopes must have a depth greater than 2 (see commit diff for rootScopeSpec.js).\r\n\r\nComponent(s): scope\r\n\r\nImpact: small\r\n\r\nComplexity: small\r\n\r\nThis issue is related to: \r\n\r\n**Detailed Description:**\r\n\r\nIn the $broadcast method, the `event.currentScope` is initialized with `current` which is the iterator used by the scope traversal\'s loop.\r\n\r\nIt caused problems when using asynchonously the event object : the `event.currentScope` is not the scope which listen the event. It\'s the last scope crossed by the traversal which has nothing to do with the event (or coincidentally has).\r\n\r\n**Other Comments:**\r\n\r\n', '31', null, null, 'ncuillery', '2014-05-13T09:38:38Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4964', '37', '7448', 'adding enable/disable to cacheFactory', 'Request Type: feature\n\nHow to reproduce: \n\nComponent(s): misc core\n\nImpact: small\n\nComplexity: small\n\nThis issue is related to: \n\n**Detailed Description:**\n\n\n\n**Other Comments:**\n\nThis functionality to `$cacheFactory` instances, allow us to disable/enable the cache programatically.\r\n\r\n```\r\ncache = $cacheFactory(\'test\');\r\ncache.put(\'foo\', \'bar\');\r\n\r\ncache.disable();\r\n\r\ncache.get(\'foo\') => undefined\r\n```\r\n\r\nMy use case is that I want to cache everything, and then I send SSE to notify clients about changes and expire cache for certain Resources (this is handled by another class).\r\n\r\nIn case the client can not receive events (connection problems with the socket), then I want to disable cache, and later when the connection is restored, enable it again.\r\n\r\nI think a enable/disable method in the `$cacheFactory` class will be a good idea, if you guys considerer this approach can be merged, then I\'ll implement the class method to enable/disable all the cache instances with one method call.', '5', null, null, 'orlando', '2014-05-13T17:21:06Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4965', '37', '7450', 'fix($compile): call `normalize` on nodes for cases when browser creates ...', 'Request Type: bug\r\n\r\nHow to reproduce: Occurs sporadically in the wild, but the included test synthesizes exactly what happens when it does.\r\n\r\nComponent(s): $compile\r\n\r\nImpact: small\r\n\r\nComplexity: small\r\n\r\nThis issue is related to:\r\n\r\nDetailed Description:\r\n\r\nOther Comments:\r\n\r\n...multiple text nodes when parsing HTML\r\n\r\nWhen IE 11 parses HTML, it occasionally splits text into adjacent sibling text nodes. It\'s difficult to reproduce, but we have some screenshots of it happening: https://dl.dropboxusercontent.com/spa/4slnjubp16y5phq/3f-ld80p.png\r\n\r\nWhile this is illegal according to the DOM spec, it happens anyways and should be dealt with. Angular currently can\'t deal with this.\r\n\r\nCalling normalize when compiling a node addresses this issue. Test included.\r\n', '5', null, null, 'stephenjudkins', '2014-05-13T19:59:15Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4966', '37', '7454', 'test($rootScope): voluntary failure for PR #7445.', 'Travis build should be failed with this commit (meaning that the test case in failure is relevant for the bug seen in #7445).\r\n\r\nMUSTN\'T BE MERGE', '2', null, null, 'ncuillery', '2014-05-14T07:39:53Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4967', '37', '7456', 'Fixed typo', 'Java`s`Script -> JavaScript', '2', null, null, 'CSharpFan', '2014-05-14T08:03:35Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4968', '37', '746', 'Fix some doc errors', '', '1', null, null, 'marcenuc', '2012-02-13T11:31:14Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4969', '37', '7460', 'docs($http): clear up Interceptor docs and code', 'Request Type: docs\n\nHow to reproduce: \n\nComponent(s): $http\n\nImpact: small\n\nComplexity: small\n\nThis issue is related to: \n\n**Detailed Description:**\n\nThe documentation and code example of $http interceptors is unclear about whether config can be null\nor not, and whether the result should always be a promise or not. This pr clears up the documentation\na bit and removes the literal \'or a promise\' interpretation of the docs in the code example.\n\nSee #7431\n\n**Other Comments:**\n\n', '2', null, null, 'fwielstra', '2014-05-14T11:29:30Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4970', '37', '7463', 'Do not merge attributes that are the same', 'Request Type: bug\r\n\r\nHow to reproduce: 1. have a replace directive with \'id\' attribute in the main wrapping element\r\n2. have an element that references the directive and has an \'id\' attribute with a value that exactly matches the \'id\' attribute from the main wrapping element in the directive\r\n3. when you view this html, you will see that the id attribute was duplicated (i.e. id=\"myid\" becomes id=\"myid myid\")\r\n\r\nComponent(s): $compile\r\n\r\nImpact: small\r\n\r\nComplexity: small\r\n\r\nThis issue is related to: \r\n\r\n**Detailed Description:**\r\n\r\nThe is a very simple issue. The logic for merging attributes should not concatenate if the attribute values are the same. I would imagine that not a lot of people run into this because \r\n\r\n1) there are many attributes where concatenation would not cause errors (ex. styles, class, etc.)\r\n2) for replace directives, especially for single page apps, there is no reason to put attributes on both the directive partial element and the element that references the directive.\r\n\r\nThe use case where this starts to be a problem is when you are trying to have a nicer initial page load experience. Basically, for various situations, I will have the server side render default html that is displayed by the browser before angular is fully downloaded and bootstrapped. So, this type of issue would only affect people concerned with server side rendering (either for SEO purposes or for UX so user sees something very quickly before Angular bootstraps). It only affects the initial page load. For people like me that are concerned about these types of things, it is a significant issue and this very minor change will help tremendously.\r\n\r\n**Other Comments:**\r\n\r\nThe logic for merging attributes will essentially concatenate values if an attribute is in the DOM element and is in the partial that will be replacing the DOM element. This doesn\'t make sense in some use cases, but the most clear one is where there is something like an ID which is the exact same in both. The current logic will concatenate `<div id=\"myid\" my-directive>` and `<div id=\"myid\">` (for the directive template) into `<div id=\"myid myid\">`.\r\n\r\nThis pull request is to add one very simple condition that will just ensure that when the values are exactly the same, they are not concatenated.', '8', null, null, 'jeffwhelpley', '2014-05-14T14:26:16Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4971', '37', '7464', 'avoid bypassing xss protection', 'Request Type: docs\n\nHow to reproduce: If binding database data to a contentEditable that contains raw HTML the example in these docs binds it directly. Shouldn\'t it use the $sce service?\n\nComponent(s): misc core\n\nImpact: small\n\nComplexity: small\n\nThis issue is related to: security\n\n**Detailed Description:**\n\nelement.html() sets the raw value directly in the dom which seems to bypass the built-in $sce protection one would normally get with a built-in directive. This seems dangerous to promote as an example. element.html() seems inherently dangerous to use in a directive. Could it alternatively be overridden to only accept safe strings? Perhaps with a safeHtml() alternative.\n\n**Other Comments:**\n\nelement.html() sets the raw value directly in the dom which seems to bypass the built-in $sce protection one would normally get with a built-in directive. This seems dangerous to promote as an example. element.html() seems inherently dangerous to use in a directive. Could it alternatively be overridden to only accept safe strings? Perhaps with a safeHtml() alternative.', '2', null, null, 'danieljsinclair', '2014-05-14T15:39:52Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4972', '37', '7467', 'feat(ngTouch): add optional `ngSwipeDisableMouse` attribute to `ngSwipe`...', '... directives to ignore mouse events.\r\n\r\nThis attribute is useful for text that should still be selectable\r\nby the mouse and not trigger the swipe action.\r\n\r\nThis also adds an optional third argument to `$swipe.bind` to define\r\nthe pointer types that should be listened to.\r\n\r\nAdapted version of #6627.\r\n\r\nCloses #6627\r\nFixes #6626', '1', null, null, 'tbosch', '2014-05-14T19:55:03Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4973', '37', '747', 'V0.10.7 pre', '', '1', null, null, 'vojtajina', '2012-02-16T04:50:10Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4974', '37', '7470', 'Fixed typo in concepts.ngdoc', 'The service is in finance2.js but the doc references finance.js ', '2', null, null, 'markau', '2014-05-15T04:59:40Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4975', '37', '7475', 'fix(ngResource): stop /. collapsing affecting parameter values', 'Request Type: bug\n\nHow to reproduce: Create a resource with URL \'/myservice/:myparam\'.\nCall the resource with \'.foo\' as the value for myparam.\nAfter resolving the parameter, ngResource incorrectly collapses the URL to \'/myservice.foo\', while in fact collapsing \'/.format\' to \'.format\' should only happen if \'.foo\' is part of the original resource URL. It should not affect parameter values like \'.foo\'.\n\nComponent(s): ngResource\n\nImpact: small\n\nComplexity: small\n\nThis issue is related to: \n\n**Detailed Description:**\n\nThe ngResource documentation states: \"If the parameter before the suffix is empty, :resource_id in this case, then the /. will be collapsed down to a single .. If you need this sequence to appear and not collapse then you can escape it with /\\..\"\n\nBut the resource.js implementation always replaces \"./\" instance with \".\", regardless if these are caused by an empty parameter before the suffix. If the \".\" comes from the parameter value, ngResource should not touch it.\n\nThis pull request changes the ngResource behavior to match the documentation.\n\n**Other Comments:**\n\n', '3', null, null, 'jowiho', '2014-05-15T13:47:34Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4976', '37', '7476', 'fix(ngMessages): annotate ngMessages controller for minification', '/cc @matsko\n\nWithout this, angular-messages.min.js is broken =(', '2', null, null, 'caitp', '2014-05-15T14:36:39Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4977', '37', '7477', 'test(ngMessages): use strict-di for ngMessages tests', 'This will hopefully prevent issues similar to the one fixed by 63b100c0', '1', null, null, 'caitp', '2014-05-15T15:10:52Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4978', '37', '7478', 'fix(numberFilter): fix rounding error edge case', 'Fix a number rounding error\r\n\r\nCloses #7453', '1', null, null, 'lgalfaso', '2014-05-15T17:39:34Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4979', '37', '7479', 'Update ngClass.js', 'I don\'t know if this was intended, but I don\'t think the code was comparing the indexes correctly and it was causing some weird behavior when using the ng-class-even and ng-class-odd directives.\r\n\r\nSee the following plunkr for an example of the bug. http://plnkr.co/edit/VAi6DB0QdWRutNGnVdSL?p=preview\r\n\r\nSelect the Red Radio button option to see that when switching classes on rows the classes are not always switched properly.', '6', null, null, 'trevordowdle', '2014-05-15T18:43:20Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4980', '37', '748', 'Route', '', '1', null, null, 'mhevery', '2012-02-16T05:52:09Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4981', '37', '7480', 'docs(di.ngdoc): Fixed typos', 'Fixed typos', '1', null, null, 'ChrisRose', '2014-05-15T19:19:58Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4982', '37', '7481', 'feat($q): Adds a context object to the promise chain callbacks.', 'Request Type: feature\r\n\r\nComponent(s): $q\r\n\r\nImpact: medium\r\n\r\nComplexity: small\r\n\r\n**Detailed Description:**\r\n\r\nToo many times I\'m forced to write code like this:\r\n\r\n```javascript\r\nreturn myThing.go().then(\r\n angular.bind(this, this.success_),\r\n angular.bind(this, this.error_),\r\n angular.bind(this, this.progress_)).\r\n catch(angular.bind(this, this.catch_)).\r\n finally(angular.bind(this, this.finally_));\r\n```\r\n\r\nInstead, it would be nice if a context could be added to the promise chain, resulting in:\r\n\r\n```javascript\r\nreturn myThing.go().context(this).\r\n then(this.success_, this.error_, this.progress_).\r\n catch(this.catch_).\r\n finally(this.finally_);\r\n```\r\n\r\nRemoving the context (if returning a promise as above) would just be:\r\n\r\n```javascript\r\nreturn myThing.go().context(this).\r\n then(this.success_, this.error_, this.progress_).context();\r\n```\r\n\r\n', '16', null, null, 'wesalvaro', '2014-05-15T21:56:19Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4983', '37', '7482', 'docs(animations): wrong directive arguments order', '', '3', null, null, 'heretge', '2014-05-16T07:52:59Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4984', '37', '7483', 'docs: clarify module definition', 'Request Type: docs\n\nHow to reproduce: \n\nComponent(s): \n\nImpact: medium\n\nComplexity: small\n\nThis issue is related to: \n\n**Detailed Description:**\n\nclafication - \"configures injection\" is a bit rough for newbies (like moi)\n\n**Other Comments:**\n\nand minor changes while i\'m here', '1', null, null, 'ErichBSchulz', '2014-05-16T09:21:40Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4985', '37', '7484', 'make \"isolate scope\" less isolated :p', 'Request Type: docs\n\nHow to reproduce: \n\nComponent(s): $compile\n\nImpact: small\n\nComplexity: small\n\nThis issue is related to: \n\n**Detailed Description:**\n\nLooking at directive guide i had difficulties to find the \"Directive Definition object\" section and the actual \'more information\' link sent me back to the section i was just reading. So this is just an update of the link to point to the correct part of the documentation instead.\n\n**Other Comments:**\n\nLink \"isolate scope\" to \"Directive Definition object\" section', '1', null, null, 'malko', '2014-05-16T09:38:59Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4986', '37', '7485', 'fix($parse): allow most latin letters as identifiers', 'Angular will today throw an execption if binding using an expression with extended latin letters as JSON object properties. Eg if $scope.a = {\"hellö\": world\"}, you cannot bind to {{a.hellö}} although this is valid JSON.\r\nThis fix allows most extended latin letters by adding three ranges of latin letters in the isIdent(ch) check.\r\nIt\'s a compromise:\r\n- The division and multiplication sign split above ranges and are not allowed\r\n- Some more latin letters exist, but they are spread out and hunting them one by one might be too costly\r\nTwo tests supporting above statements are included.\r\n\r\nCloses #2174', '9', null, null, 'jensaug', '2014-05-16T10:26:23Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4987', '37', '7486', 'feat(parse): ability to bind once an expressions', 'Expressions that start with `::` will be binded once. The rule\r\nthat binding follows is that the binding will take the first\r\nnot-undefined value at the end of a `$digest` cycle.\r\n\r\nWatchers from `$watch`, `$watchCollection` and `$watchGroup` will\r\nautomatically stop watching when the expression(s) are bind-once\r\nand fulfill.\r\n\r\nWatchers from text and attributes interpolations will\r\nautomatically stop watching when the expressions are fulfill.\r\n\r\nAll directives that use `$parse` for expressions will automatically\r\nwork with bind-once expressions as long as they are evaluated\r\nover a `$scope`. E.g.\r\n\r\n```html\r\n<div ng-bind=\"::foo\"></div>\r\n<li ng-repeat=\"item in ::items\">{{::item.name}};</li>\r\n```\r\n\r\nHave fun\r\n\r\nbenchmark: http://plnkr.co/edit/rJOqa0oh35Y0xBhTYZ6w?p=info\r\ndesign doc: https://docs.google.com/document/d/1fTqaaQYD2QE1rz-OywvRKFSpZirbWUPsnfaZaMq8fWI/edit#', '42', null, null, 'lgalfaso', '2014-05-16T13:53:43Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4988', '37', '7487', 'feat(*): improved control over bindings WIP', 'Features:\n\n- Support for labeling expressions to be unwatched or rewatched at a later\ntime\n- Support for eagerly unbinding at end of digest\n- Support for lazily unbinding when a non-null value is found\n\nProblems:\n\n- $watchGroup breaks $interpolate entirely and breaks many tests, as well as \ncomplicates things somewhat', '4', null, null, 'caitp', '2014-05-16T17:22:32Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4989', '37', '7488', 'docs(guide/services): fix link to minify Wikipedia page', 'Request Type: docs\n\nHow to reproduce: \n\nComponent(s): \n\nImpact: small\n\nComplexity: small\n\nThis issue is related to: \n\n**Detailed Description:**\n\n\n\n**Other Comments:**\n\nMissing parenthesis is causing docs to link to a non-existent page.', '4', null, null, 'sdornan', '2014-05-16T18:44:58Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4990', '37', '7489', 'feat(ngMock): added support of mocha tdd interface', 'mocha tdd interface uses `setup` (https://github.com/visionmedia/mocha/blob/master/lib/interfaces/tdd.js#L44) and `teardown` (https://github.com/visionmedia/mocha/blob/master/lib/interfaces/tdd.js#L52) instead of `beforeEach` and `afterEach`', '1', null, null, 'sagens42', '2014-05-16T19:20:22Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4991', '37', '7491', ' docs(tutorial/step_12): fix missing URL for Bower', 'Request Type: docs\r\n\r\nHow to reproduce: \r\n\r\n1. Go to https://docs.angularjs.org/tutorial/step_12\r\n\r\n2. Scroll down to the Dependencies section\r\n\r\n3. Read the second paragraph\r\n\r\nComponent(s): \r\n\r\nImpact: small\r\n\r\nComplexity: small\r\n\r\nThis issue is related to: \r\n\r\n**Detailed Description:**\r\n\r\nA `[Bower][bower]` link is used without a URL definition so an `<a>` tag is never generated.\r\n\r\n**Other Comments:**\r\n\r\n', '3', null, null, 'nCrazed', '2014-05-16T21:42:24Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4992', '37', '7493', 'Update step_02.ngdoc', 'Request Type: feature\n\nHow to reproduce: Not a bug. Simply suggestion as to how to improve the clarity of the tutorial.\n\nComponent(s): \n\nImpact: small\n\nComplexity: small\n\nThis issue is related to: \n\n**Detailed Description:**\n\nThe issue was raised only as a suggestion as to how to make the Tutorial clearer. I suspect this form is not really appropriate for that purpose.\n\n**Other Comments:**\n\nThe changes suggested above put things in a better sequence and in terms that are more easily understood by a new-comer. Firstly, it is best to introduce the concept of \"Scope\" before talking about it. That\'s why I have moved it up.\r\n\r\nNext, with the present writing I found myself lost for a moment. Because of my background with the Play Framework I went looking for a folder called controllers. In the Play Framework, there are three folder within the app folder. These are views, controllers and models.\r\n\r\nInstead, with angularjs, controllers are located in app/js/controllers.js, a file, not a folder.', '5', null, null, 'NVTechAU', '2014-05-17T06:43:35Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4993', '37', '7495', 'fix(ngModel): do not dirty the input if nothing was changed', 'This caused the input to become dirty every time `$commitViewValue` was called, even if no update to the view value was made. For example, `updateOn` triggers and form submit may call `$commitViewValue` without updating the view value.\r\n\r\nCloses #7457', '6', null, null, 'shahata', '2014-05-17T11:08:57Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4994', '37', '7496', 'feat($interpolate): escape interpolated expressions', 'the default escaped interpolation signs are `{{{{` and `}}}}`. those symbols will be ignored when parsing the interpolated string and will only be replaced by `{{` and `}}` in the result string. this allows servers that put unsafe strings inside html templates to replace `{{` with `{{{{` and optionally `}}` with `}}}}` in order to prevent XSS attacks.\r\n\r\nCloses #5601', '7', null, null, 'shahata', '2014-05-17T13:14:30Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4995', '37', '7497', 'docs($location): confusing terminology (observers)', 'The term \'observer\' isn\'t used anywhere else throughout the documentation to refer to scope changes handlers. Also I don\'t see a need in using $ here.', '4', null, null, 'thorn0', '2014-05-17T13:25:42Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4996', '37', '7498', 'Update step_02.ngdoc', 'Request Type: docs\n\nHow to reproduce: None. Addition to make tutorial less confusing\n\nComponent(s): \n\nImpact: medium\n\nComplexity: small\n\nThis issue is related to: \n\n**Detailed Description:**\n\nJust a simple addition of text.\n\n**Other Comments:**\n\nWas going through the tutorial and got a little confused jumping from index.html to controllerSpec.js. Figured it out but could cause some confusion/frustration to some.', '3', null, null, 'codenameEli', '2014-05-17T15:26:35Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4997', '37', '7499', 'Nested iso transcludes', 'Fixes #1809', '10', null, null, 'petebacondarwin', '2014-05-17T16:33:33Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4998', '37', '75', 'Refactor isJson()', 'Just refactored the regexps from $xhr to a separate function isJson(), added tests and fixed small issue...', '1', null, null, 'vojtajina', '2010-10-22T21:29:45Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('4999', '37', '7500', 'feat($injector): report circularity in circular dependency error message', 'Request Type: feature\r\n\r\nHow to reproduce: \r\n\r\nComponent(s): di\r\n\r\nImpact: medium\r\n\r\nComplexity: small\r\n\r\nThis issue is related to: \r\n\r\n**Detailed Description:**\r\n\r\nChange the error message for a circular dependency to display the full\r\ncircle back to the first service being instantiated, so that the problem\r\nis obvious:\r\n\r\n a <- b <- a\r\n\r\nThe previous message stopped one dependency short of the full\r\ncircle:\r\n\r\n b <- a\r\n\r\n**Other Comments:**\r\n\r\nChanges the content of the cdep error message, which may be considered\r\na breaking change.', '6', null, null, 'teropa', '2014-05-17T16:55:08Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5000', '37', '7501', 'perf($interpolate): optimize value stringification', 'previously we stringified numbers via toJson which was expensive, I optimized the code so that toJson is\r\ninvoked only if really necessary', '3', null, null, 'IgorMinar', '2014-05-17T23:05:02Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5001', '37', '7502', 'Updated list of supported animations', 'List is taken from angular-animate ~1.2.16 doc blocks.', '6', null, null, 'slavafomin', '2014-05-18T08:37:32Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5002', '37', '7504', 'Fixed path to test file', 'test files are in \'test\' not \'tests\' (at least on what I just cloned)', '3', null, null, 'pixmin', '2014-05-18T17:45:29Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5003', '37', '7507', 'Fixed link to bower', '', '2', null, null, 'Kebabpizza', '2014-05-19T00:42:42Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5004', '37', '7508', 'Bug on step 12', '\"npm install\" on this steps, puts jquery.js in app/bower_components/jquery/dist/jquery.js but index.html is looking for bower_components/jquery/jquery.js\r\n\r\nI\'ve added a FIXME in the doc because I couldn\'t submit otherwise, but I guess the index.html file need to be changed, or bower\'s config?', '7', null, null, 'pixmin', '2014-05-19T00:54:56Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5005', '37', '7511', 'feat($interpolate): enable escaping interpolated expressions', 'Previously, Angular would offer no proper mechanism to reveal attempted script\ninjection attacks when users would add expressions which may be compiled by\nangular.\n\nThis CL enables web servers to escape escaped expressions by replacing\ninterpolation start and end markers with escpaed values (which by default are\n`{{{{` and `}}}}`, respectively).\n\nThis also allows the application to render the content of the expression\nwithout rendering just the result of the expression.\n\nCloses #5601', '28', null, null, 'caitp', '2014-05-19T14:04:13Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5006', '37', '7514', 'Add firefoxOs suport for xhr', 'Add a function to detect if is FirefoxOS system, then if it´s true it add the attribute mozSystem: true that is needed for firefox os apps to work.', '10', null, null, 'bedabliu', '2014-05-19T18:01:18Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5007', '37', '7517', 'feat($interpolate): escaped interpolation expressions', 'This CL enables interpolation expressions to be escaped, by prefixing each\r\ncharacter of their start/end markers with a REVERSE SOLIDUS U+005C, and to\r\nrender the escaped expression as a regular interpolation expression.\r\n\r\nExample:\r\n\r\n`<span ng-init=\"foo=\'Hello\'\">{{foo}}, \\\\{\\\\{World!\\\\}\\\\}</span>` would be\r\nrendered as:\r\n`<span ng-init=\"foo=\'Hello\'\">Hello, {{World!}}</span>`\r\n\r\nThis will also work with custom interpolation markers, for example:\r\n\r\n module.\r\n config(function($interpolateProvider) {\r\n $interpolateProvider.startSymbol(\'\\\\\\\\\');\r\n $interpolateProvider.endSymbol(\'//\');\r\n }).\r\n run(function($interpolate) {\r\n // Will alert with \"hello\\\\bar//\":\r\n alert($interpolate(\'\\\\\\\\foo//\\\\\\\\\\\\\\\\bar\\\\/\\\\/\')({foo: \"hello\", bar: \"world\"}));\r\n });\r\n\r\nThis change effectively only changes the rendering of these escaped markers,\r\nbecause they are not context-aware, and are incapable of preventing nested\r\nexpressions within those escaped markers from being evaluated.\r\n\r\nTherefore, backends are encouraged to ensure that when escaping expressions\r\nfor security reasons, every single instance of a start or end marker have each\r\nof its characters prefixed with a backslash (REVERSE SOLIDUS, U+005C)\r\n\r\nCloses #5601', '6', null, null, 'caitp', '2014-05-20T08:20:13Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5008', '37', '7518', 'feat(sip_links): add sip-links support', 'Add sip links to whitelist', '1', null, null, 'ghost', '2014-05-20T08:54:18Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5009', '37', '752', 'Add a trigger command to the element dsl', 'This allows us to dynamically trigger a given event on an element, such as the \"focus\" event', '4', null, null, 'robertjd', '2012-02-18T22:57:10Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5010', '37', '7520', 'Update step_04.ngdoc', 'Add missing <span> to app/index.html to match actual code on github', '3', null, null, 'Firexion', '2014-05-20T14:05:16Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5011', '37', '7521', 'Update step_07.ngdoc', 'Modifying the code snippets provided to match what was on git', '2', null, null, 'Firexion', '2014-05-20T18:30:07Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5012', '37', '7522', 'Update index.ngdoc', 'Specifying command for Debian based distributions, like Ubuntu.', '3', null, null, 'gsc-leticia', '2014-05-20T19:57:04Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5013', '37', '7523', 'fix(Scope): $broadcast and $emit should set event.currentScope to null', 'When a event is finished propagating through Scope hierarchy the event\'s `currentScope` property\r\nshould be reset to `null` to avoid accidental use of this property in asynchronous event handlers.\r\n\r\nIn the previous code, the event\'s property would contain a reference to the last Scope instance that\r\nwas visited during the traversal, which is unlikely what the code trying to grab scope reference expects.\r\n\r\nBREAKING CHANGE: $broadcast and $emit will now reset the `currentScope` property of the event to\r\nnull once the event finished propagating. If any code depends on asynchronously accessing thei\r\n`currentScope` property, it should be migrated to use `targetScope` instead. All of these cases\r\nshould be considered programming bugs.\r\n\r\nCloses #7445\"', '10', null, null, 'IgorMinar', '2014-05-20T21:28:25Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5014', '37', '7524', 'Fix its vs it\'s typos.', 'Only use the apostrophe if you can expand \"it\'s\" to \"it is\" and\r\nstill have a grammatical phrase.', '2', null, null, 'rillian', '2014-05-20T21:37:49Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5015', '37', '7527', 'fix(ngIf): use the correct scope for transclusion', 'ngIf was creating its own scopes to use for the transclusion but these were not the correct scopes.\r\nWe should let the boundTransclusionFn deal with this for us.\r\n\r\nFixes the regression identified in e994259739821094e77a3d2c1f30c28713b7ab3a', '2', null, null, 'petebacondarwin', '2014-05-20T23:30:58Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5016', '37', '7528', 'Fix for ng-app called ng=app in diagram image. Issue #6473', 'REF LINK: https://github.com/angular/angular.js/issues/6473\r\n', '3', null, null, 'codenameEli', '2014-05-21T00:48:32Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5017', '37', '7529', 'chore($rootScope): Scope.prototype.constructor property', 'This PR makes `Scope.prototype.constructor` property a non-enumerable property as every default `prototype.constructor` property is. The `Object.defineProperty` function is supported by IE 9+ and other browsers, but it that function is not present on `Object` the default assignment of that property is executed, so the code will still work in IE 8-.', '5', null, null, 'kamilkp', '2014-05-21T09:53:56Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5018', '37', '753', 'feat(scope): scope.$emit/$broadcast return the event object, add cancell...', '', '1', null, null, 'vojtajina', '2012-02-19T03:38:16Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5019', '37', '7530', 'Transclude issue', '', '11', null, null, 'petebacondarwin', '2014-05-21T10:45:18Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5020', '37', '7532', 'update screenshot', 'Please update screenshot, seems not update, atleast quality is too low.', '9', null, null, 'wouteeckhout', '2014-05-21T11:53:09Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5021', '37', '7533', 'test(rootScope): fix grammar in test description', 'it\'s -> its', '1', null, null, 'sdornan', '2014-05-21T13:44:33Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5022', '37', '7534', 'test(rootScope): fix grammar in a test description', 'it\'s -> its', '2', null, null, 'sdornan', '2014-05-21T13:50:49Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5023', '37', '7537', 'chore(npm): update shrinkwrap with new \'from\' fields', '', '2', null, null, 'juliemr', '2014-05-21T18:38:41Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5024', '37', '7539', 'fix(currencyFilter): Remove hardcoded fractionSize in currency', 'Request Type: bug\n\nHow to reproduce: _\n\n- In a config block, update the minFrac and maxFrac values in $locale for the currency pattern\n- Run a value through the currency filter\n\n**Expected behaviour:**\n\nThe string outputted follows the pattern rules set in $locale\n\n**Actual behaviour:**\n\nThe minFrac and maxFrac properties are ignored\n\nComponent(s): misc core\n\nImpact: small\n\nComplexity: small\n\nThis issue is related to: \n\n**Detailed Description:**\n\nThe hardcoded fractionSize in the `currencyFilter` makes the minFrac and maxFrac options in $locale redundant.\n\nThe default minFrac and maxFrac options in $locale are functionally equivalent and removing the hardcoded value would allow the behaviour of the currencyFilter to be customisable.\n\n**Other Comments:**\n\nThe motivation behind this change is to make i18n of currencies slightly easier.\n\nCurrencies such as the Yen typically are rendered with no decimal places, and the Dinar is usually rendered with 3 decimal places. Please refer to http://en.wikipedia.org/wiki/ISO_4217#cite_note-ReferenceA-6 for a full list of currencies and their decimal places.', '5', null, null, 'clark-pan', '2014-05-21T23:34:05Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5025', '37', '754', 'refactor $route / ng:view', 'Based on misko/v1.0.0-rc1 (this PR consists of only last 2 commits)\r\n\r\nProblems:\r\n\r\n- controller was instantiated immediately on $afterRouteChange (even if no content), that\'s different compare to ng:controller, which instantiates controllers after compiling\r\n- route listened on current scope ($afterRouteChange), so if you were listening on $rootScope ($afterRouteChange), you get called first and current.scope === undefined, which is flaky\r\n- route handles scope destroying, but scope is created by ng:view\r\n- route fires after/before route change even if there is no route (when no otherwise specified)\r\n\r\nSolution:\r\n\r\n- route has no idea about scope, whole scope business moved to ng:view (creating/destroying)\r\n- scope is created (and controller instantiated) AFTER compiling the content\r\n- that means on $afterRouteChange - there is no scope yet (current.scope === undefined)\r\n- added $contentLoaded event fired by ng:view, after linking the content\r\n- added $contentLoaded event for ng:include (onload directive listens on this event)\r\n', '4', null, null, 'vojtajina', '2012-02-19T21:45:52Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5026', '37', '7541', 'Create EditorConfig file', 'Request Type: chore\n\nHow to reproduce: \n\nComponent(s): \n\nImpact: small\n\nComplexity: small\n\nThis issue is related to: \n\n**Detailed Description:**\n\nSee [the EditorConfig website](http://editorconfig.org/) for more information about the file.\n\n**Other Comments:**\n\n', '3', null, null, 'mc10', '2014-05-22T01:33:02Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5027', '37', '7542', 'added whitespace', 'Request Type: chore\n\nHow to reproduce: \n\nComponent(s): \n\nImpact: small\n\nComplexity: small\n\nThis issue is related to: \n\n**Detailed Description:**\n\nspaces between the \')\' and \'{\' make code a tad easier to read.\n\n**Other Comments:**\n\n', '2', null, null, 'jesselpalmer', '2014-05-22T02:55:08Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5028', '37', '7543', 'refactor(parse): remove the support for JSON parsing', 'Remove the support to exclusively parse JSON\r\n\r\nTakes care of #7540 point 1/', '2', null, null, 'lgalfaso', '2014-05-22T03:59:12Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5029', '37', '7548', 'Make $digest async', 'Request Type: refactor\n\nHow to reproduce: \n\nComponent(s): scope\n\nImpact: large\n\nComplexity: medium\n\nThis issue is related to: \n\n**Detailed Description:**\n\nWe think it\'s important to lesser the stress on $digest in angular, thus \nwe suggest to refactor $digest implementation, and make it asynchronous.\n\n**Other Comments:**\n\nWith this in mind we\'ve introduced several changes in our branch.\n\n1. $q service is extended with several methods to support building of asynchronous algorithms.\n These are: \n promise.thenIf();\n promise.thenWhile();\n promise.thenDoWhile();\n promise.thenForEach();\n promise.thenFor();\n $q.run();\n\n In theory we would prefer to refactor this service more greatly but we decided to introduce minimal additions there.\n\n2. Introduces $scheduler service that provides:\n a) nextTick() a implementation to runs deferred objects in batches until they fit in a time slot, and \n then continue the remaining part after some sleep;\n b) q factory;\n\n3. rootScope\'s $digest(), $watchCollection(), and ngRepeater\'s watch action logics are refactored.\n\n4. schedulerSpec, and asyncDigestSpec tests are created.\n Some other tests are fixed.\n\n5. rootScopeProvider has asyncDigest property (false is default) to preserve backward compatibility.', '9', null, null, 'vnesterovsky', '2014-05-22T14:14:09Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5030', '37', '755', 'Random fixes', '', '0', null, null, 'vojtajina', '2012-02-24T19:33:50Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5031', '37', '7552', 'refactor($parse): remove the support of JSON parsing mode', 'It\'s a feature that isn\'t exposed to the public, and is no longer used internally (not even tested).\r\n\r\nSee #7540\r\n\r\nAs opposed to #7543, I considered `literal` and `constant` as two distinct concepts.', '1', null, null, 'rodyhaddad', '2014-05-22T20:42:21Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5032', '37', '7553', 'feature(jsonFilter): Allow jsonFilter to accept pretty=false', 'Request Type: feature\r\n\r\nComponent(s): misc core\r\n\r\nImpact: medium\r\n\r\nComplexity: small\r\n\r\nDetailed Description: \r\nI would love to see jsonFilter be able to accept pretty=false\r\n', '5', null, null, 'willrstern', '2014-05-22T22:01:11Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5033', '37', '7555', 'fix($parse): remove deprecated promise unwrapping', '(See #7540)\r\n\r\nThe feature has been deprecated in #4317\r\n\r\nBREAKING CHANGE: promise unwrapping has been removed.\r\nIt can no longer be turned on.\r\nTwo methods have been removed:\r\n* $parseProvider.unwrapPromises\r\n* $parseProvider.logPromiseWarnings', '3', null, null, 'rodyhaddad', '2014-05-22T22:48:47Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5034', '37', '7556', 'chore(ci): update protractor to 0.23.1', '', '2', null, null, 'juliemr', '2014-05-23T00:19:31Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5035', '37', '7557', 'chore(tests): remote iit that sneaked into ngStyle', '', '3', null, null, 'juliemr', '2014-05-23T00:43:57Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5036', '37', '7558', 'chore(grunt): check files in src for ddescribe/iit', 'Previously, only files in test/ were checked. This does not capture\r\nend to end tests, which are in comments in src/.', '5', null, null, 'juliemr', '2014-05-23T01:09:31Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5037', '37', '756', 'Rhino/YUI Compressor fails on reserved keyword', 'The DATETIME localization uses \"short\" as property key, which makes the YUI javascript compressor fail. Converted key to string.', '6', null, null, 'recht', '2012-02-25T12:42:18Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5038', '37', '7560', 'fix($animate): retain inline styles for property-specific transitions', 'Transitions that are run through ngAnimate which contain a specific property\r\ncause any inline styles to be erased after the animation is done. This has\r\nsomething to do with how the browsers handle transitions that do not use\r\n\"all\" as a transition property.\r\n\r\nCloses #7503', '3', null, null, 'matsko', '2014-05-23T04:37:46Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5039', '37', '7561', 'Place phoneId binding in a proper HTML node', 'The code where the phoneId binding in the phone-detail.html template is first explained in step 7 of the tutorial doesn\'t make it a child of a proper HTML node, which makes the end-to-end test against the view (also introduced in step 7) fail.\r\n\r\nThe test acquires the binding right from the view (by.binding(\'phoneId\')), and apparently this operation fails when the binding is not a child of an HTML node, and therefore the entire test also fails. As soon as the binding is placed inside a <span></span> tag pair, the binding is found and the test passes. The code on github for step 7 has it right, the binding is within the span tags, but in the documentation I\'m patching here the span\'s are missing.', '5', null, null, 'jmpalacios', '2014-05-23T05:17:49Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5040', '37', '7563', 'minor enhancement and coding standards', '', '2', null, null, 'silverbux', '2014-05-23T06:18:31Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5041', '37', '7564', 'fix($rootScope): cleanup on $destroy also for $rootScope', '', '2', null, null, 'shahata', '2014-05-23T10:49:28Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5042', '37', '7565', 'Nested transclusion issues', 'This series of commits deals with a number of issues arising from the compiler not passing the correct transclusion functions and scopes down to children.\r\n\r\nThere are potentially still issues with ng-include and ng-switch when they are combined with isolated scopes.', '12', null, null, 'petebacondarwin', '2014-05-23T11:18:38Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5043', '37', '7566', 'fix(ngAnimate): fix property name that is used to calculate cache key', 'Request Type: bug\n\nHow to reproduce: I met this issue in an huge screen so I cannot provide a use case.\n\nComponent(s): ngAnimate\n\nImpact: small\n\nComplexity: small\n\nThis issue is related to: \n\n**Detailed Description:**\n\nProblem occured when there was 2 ng-hide/ng-show on a page - one had animation assigned and other doesn\'t. If second item (without animation) is shown/hidden first - then due to this but it get incorrect cache key assigned and it was the same for second animation - so second animation was not animated because it used wrong cacheKey to extract cached timings for non-animated element.\n\n**Other Comments:**\n\n', '14', null, null, '4vanger', '2014-05-23T14:28:52Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5044', '37', '7569', 'tests(docsAppE2E): fix race condition flake with switching to new frame', '', '2', null, null, 'juliemr', '2014-05-23T17:44:47Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5045', '37', '7570', '[tutorial] Fix spelling (fulfil -> fulfill)', 'Request Type: chore\r\n\r\nHow to reproduce: https://docs.angularjs.org/tutorial/step_07#a-note-about-di-injector-and-providers, find \'fulfil\'\r\n\r\nComponent(s): misc core\r\n\r\nImpact: small\r\n\r\nComplexity: small\r\n\r\nThis issue is related to: tutorial on docs.angularjs.org', '3', null, null, 'buob', '2014-05-23T18:29:47Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5046', '37', '7571', 'refactor($parse): add lgalfaso\'s refactors and suggestions', '@lgalfaso\'s PR #7543 had two aspects of it that I didn\'t include in my last changes to $parse (#7552, #7555)\r\n\r\n* Lexer should only take care of `constant`, and the Parser should deduce that a _primary_ `constant` is also a `literal`\r\n* Simplify the logic of Parser.filter ', '3', null, null, 'rodyhaddad', '2014-05-23T18:58:55Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5047', '37', '7573', 'Update step_05.ngdoc', 'Improve the comment.', '3', null, null, 'dumpweed', '2014-05-23T23:09:46Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5048', '37', '7574', 'docs(API): There must be an Oxford comma after \"globalAPIs\"', 'Request Type: docs\n\nHow to reproduce: \n\nComponent(s): \n\nImpact: medium\n\nComplexity: small\n\nThis issue is related to: \n\n**Detailed Description:**\n\n\n\n**Other Comments:**\n\nRequest Type: docs\n\nImpact: medium\n\nComplexity: small\n\nThis issue is related to: API Docs\n\n**Detailed Description:**\n\nVerified necessity of Oxford comma after \"globalAPIs\" to clarify that \"global APIs and testing mocks\" are two separate objects. (Source: https://owl.english.purdue.edu/owl/resource/607/01/)\n\nLocation of insertion:\n![angular](https://cloud.githubusercontent.com/assets/5858247/3073888/f9e45100-e311-11e3-9f5c-748707bd147d.jpeg)', '3', null, null, 'amarpatel', '2014-05-24T07:12:06Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5049', '37', '7575', 'Karma also needs to be told about ngResource', 'In step 11 the controllers\' unit tests are adapted to work with the Phone service, which uses the ngResource module. But for this to work, Karma\'s configuration also needs to be told to load the ```angular-resource.js``` file through its ```karma.conf.js``` configuration, and any testing runs that may be happening at the time restarted for the change to take effect.\r\n\r\nThough the diff from step 10 to step 11 does modify the Karma configuration, https://github.com/angular/angular-phonecat/compare/step-10...step-11, the explanation says nothing about it, and the tests will all fail precisely because of a failure to load ngResource for no apparent reason until the module is explicitly made available to Karma through the steps described in this pull request.\r\n\r\nFeel free to adapt the wording to whatever may be more appropriate, but the extra instructions added in this pull request seem to be absolutely indispensable to get all tests in the green again.\r\n\r\nAn alternative, of course, is to simply ship a ```karma.conf.js``` with ```angular-resource.js``` already loaded in an updated source package, and sidestep this whole problem that arises in step 11 from the start.', '3', null, null, 'jmpalacios', '2014-05-24T08:04:20Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5050', '37', '7577', 'feat($q): Add isPending, isRejected, isResolved to Promise', 'Request Type: feature\r\n\r\nComponent(s): $q\r\n\r\nImpact: small\r\n\r\nComplexity: small\r\n\r\n**Detailed Description:**\r\n\r\nAdds the ability to check the current state of a promise.\r\n\r\nThe state may be checked before the next tick.\r\n\r\nFixes #7141.', '5', null, null, 'wesalvaro', '2014-05-24T09:27:40Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5051', '37', '7579', 'Fixed e2e test documentation', 'Fixed code snippet for redirection test case in step_07.ngdoc', '4', null, null, 'ventice', '2014-05-24T10:37:43Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5052', '37', '758', 'fix($http): Do not serialize File object', 'We might auto set X-File headers, when you pass a File object, but I can\'t find any spec on that...\r\n(ie X-File-Size, content-type, etc...)', '0', null, null, 'vojtajina', '2012-02-27T18:50:05Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5053', '37', '7580', 'Some grammar corrections \"it\'s\" vs \"its\"', 'Request Type: docs\n\nHow to reproduce: \n\nComponent(s): \n\nImpact: small\n\nComplexity: small\n\nThis issue is related to: \n\n**Detailed Description:**\n\nFixes to grammar in text. No other impact. Two of changes affect the titles of tests so had to be escaped.\n\n**Other Comments:**\n\nMinor fix. This should account for all such errors. ', '6', null, null, 'philwestwell', '2014-05-24T13:47:09Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5054', '37', '7581', 'Fixed typo and add missing semicolon', 'Request Type: bug\r\n\r\nImpact: small\r\n\r\nComplexity: small\r\n\r\n**Detailed Description:**\r\n\r\n* `soild` to `solid`.\r\n* `0px` to `0` in css.\r\n* Add missed semicolon to end of line.', '3', null, null, 'camsong', '2014-05-24T14:37:49Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5055', '37', '7582', 'Add fraction size parameter to currencyFilter', 'feat(filter): currencyFilter and numberFilter should have same fraction behavior\r\n\r\ncurrencyFilter now accepts fractionSize so it behaves \"similar\" to a numberFilter, it even uses locale patterns by default.\r\n', '10', null, null, 'genuinefafa', '2014-05-24T18:39:30Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5056', '37', '7583', 'fix(ngView): remove reference to scope', '$route.name.scope.current returns undefined in the docs example,\r\nas scope is never injected into the relevant controller.\r\nScope doesn\'t need to be there, so it\'s best to just remove it.\r\n\r\nSuggested in #5076.', '4', null, null, 'RichardLitt', '2014-05-24T18:42:05Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5057', '37', '7584', 'fix(ngView): remove reference to scope', '$route.name.scope.current returns undefined in the docs example,\r\nas scope is never injected into the relevant controller.\r\nScope doesn\'t need to be there, so it\'s best to just remove it.\r\n\r\nSuggested in #5076.', '5', null, null, 'RichardLitt', '2014-05-24T19:20:43Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5058', '37', '7586', 'docs(Guide): Added in a controllerAs paragraph', 'There was nothing about controllerAs in the developer guide.\r\n\r\nHelps #6710 and #6759', '2', null, null, 'RichardLitt', '2014-05-24T22:16:15Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5059', '37', '7587', 'Update di.ngdoc', '', '3', null, null, 'nsaichand', '2014-05-24T23:13:17Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5060', '37', '7588', 'feat(angular): Add \'isPromise\' reference check', 'Adds a check for whether an input is a promise/deferred object. \r\nI\'ve found this useful when I want my functions capable of accepting either X or a promise of X.\r\n\r\nExample usage:\r\n```javascript\r\nvar promise = $q.when({ some: \'object\' });\r\nangular.isPromise(promise); // => true\r\n\r\nvar notPromise = { some: \'object\' };\r\nangular.isPromise(notPromise); // => false\r\n```', '7', null, null, 'garbles', '2014-05-25T03:29:42Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5061', '37', '7589', 'docs(CONTRIBUTING.md): fix a broken link to Google Closure I18N lib.', 'Request Type: docs\n\nHow to reproduce: \n\nComponent(s): \n\nImpact: small\n\nComplexity: small\n\nThis issue is related to: \n\n**Detailed Description:**\n\nThere is a bronken link to Google Clousre I18N lib in CONTRIBUTING.md. This repository has moved to Github. This commit fixes a bronken link.\n\n**Other Comments:**\n\n', '4', null, null, 'dalinaum', '2014-05-25T05:50:33Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5062', '37', '759', 'Do not compile scripts, basic docs for ng-template', '', '0', null, null, 'vojtajina', '2012-02-28T22:02:01Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5063', '37', '7591', 'docs(ngController): Add in more description of controller as', 'Using `controller as` in the template is not described well\r\nin the docs, as both `scope` injection and `this` are presented\r\nequally without too much discussion of the advantages of using\r\neither. I added a bit more discussion based on google\'s internal\r\nstyle guidelines.\r\n\r\nShould close #5076 until Angular 2.0 comes out and we refactor\r\neverything.', '2', null, null, 'RichardLitt', '2014-05-25T17:42:28Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5064', '37', '7595', 'feat(FormController): add `$rollbackViewValue` to rollback all controls', 'Currently it is possible to use `ngModelOptions` to pend model updates until form is submitted, but in case the user wants to reset the form back to its original values he must call `$rollbackViewValue` on each input control in the form. This commit adds a `$rollbackViewValue` on the form controller in order to make this operation easier, similarly to `$commitViewValue`.', '5', null, null, 'shahata', '2014-05-26T08:19:20Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5065', '37', '7596', 'Fixed typo.', 'Fixed a typo (redundant \"an\")', '1', null, null, 'ventice', '2014-05-26T12:52:47Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5066', '37', '7597', 'doc: (index.ngdoc) change the supported verson of node', 'Not all 0.10.x support \'^\' operator in package.json.', '3', null, null, 'dkentw', '2014-05-26T13:35:24Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5067', '37', '7598', 'docs($rootScope): fix incorrect docs and make them clearer', 'Request Type: docs\n\nHow to reproduce: \n\nComponent(s): scope\n\nImpact: large\n\nComplexity: small\n\nThis issue is related to: \n\n**Detailed Description:**\n\nDuring the first digest loop after registering a $watch\nthe listener always run, so the example about the $digest cycles in the $rootScope docs was incorrect\n(here\'s a plunk to prove it:\nhttp://plnkr.co/edit/NRM4UIp9rk28VbylAtvl).\nAlso, we can make it clearer that if the value doesn\'t change,\nthe listener doesn\'t run on subsequent $digest loops.\n\n**Other Comments:**\n\n', '2', null, null, 'pomerantsev', '2014-05-27T06:23:01Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5068', '37', '7599', 'Update jqLite.js documentation for css() function.', 'Request Type: docs\r\n\r\nHow to reproduce: \r\n\r\nComponent(s): jqLite\r\n\r\nImpact: small\r\n\r\nComplexity: small\r\n\r\nThis issue is related to: jqLite documentation\r\n\r\n**Detailed Description:** The jQuery css() getter functionality utilises getComputedStyle() whereas jqLite only retrieves what is declared inline on an element.\r\n\r\n**Other Comments:**\r\n', '6', null, null, 'intellix', '2014-05-27T09:47:44Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5069', '37', '76', 'adding ng:submit directive + other stuff', 'read commit messages', '1', null, null, 'IgorMinar', '2010-10-22T23:47:21Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5070', '37', '760', 'Docs fixes ($route, ng:view)', '', '0', null, null, 'vojtajina', '2012-03-01T00:01:12Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5071', '37', '7601', 'perf(*): Small performance changes for one-time binding interpolation', 'Add a `clone` function to the interpolate function. Use `clone` when interpolating text\r\n\r\nDo not add multiple times the same post digest function on one-time binding\r\n\r\n\r\nThe benchmark was done using http://plnkr.co/edit/rJOqa0oh35Y0xBhTYZ6w\r\nWithout this patch, the initial digest is ~40% slower for expressions using one-time binding. With this patch, the initial digest is ~20% slower\r\n\r\n\r\n', '4', null, null, 'lgalfaso', '2014-05-27T18:17:56Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5072', '37', '7602', 'example of directly calling $filter(\'orderBy\')', 'Request Type: docs\n\nHow to reproduce: \n\nComponent(s): misc core\n\nImpact: small\n\nComplexity: small\n\nThis issue is related to: \n\n**Detailed Description:**\n\ncurrent example provides | sortBy being used inside HTML. Added example of how to use it directly in JavaScript / Controllers\n\n**Other Comments:**\n\n', '7', null, null, 'zainengineer', '2014-05-27T19:03:49Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5073', '37', '7603', 'Update step_05.ngdoc', 'Improve the comment.', '4', null, null, 'dumpweed', '2014-05-27T20:06:30Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5074', '37', '7604', 'docs(ngController): Add in more description of controller as', 'Using `controller as` in the template is not described well\r\nin the docs, as both `scope` injection and `this` are presented\r\nequally without too much discussion of the advantages of using\r\neither. I added a bit more discussion based on google\'s internal\r\nstyle guidelines.\r\n\r\nShould implement changes suggested in #7591. Let me know if you\r\nneed a separate PR. ', '5', null, null, 'RichardLitt', '2014-05-27T21:14:39Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5075', '37', '7607', 'solved issue with the \'show\' transition never working', 'I kept having problems where the \'hide\' fade animation worked fine but the \'show\' fade animation didn\'t. I narrowed it down to `.ng-hide` not having `opacity: 0`. Sticking this in has fixed the \'show\' fade animation for me.', '23', null, null, 'ahmednuaman', '2014-05-28T06:38:37Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5076', '37', '7610', 'PR 7565 fixed', 'Still have some internal tests failing - investigating. This PR is just to make it easier to review.', '3', null, null, 'vojtajina', '2014-05-28T13:55:09Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5077', '37', '7614', 'Update ngKeyup doc for better example', 'Request Type: docs\n\nHow to reproduce: \n\nComponent(s): misc core\n\nImpact: small\n\nComplexity: small\n\nThis issue is related to: \n\n**Detailed Description:**\n\nexample now displays how to use it with the implicit $event argument\n\n**Other Comments:**\n\nexample now displays how to use it with the implicit $event argument', '4', null, null, 'ImaginaryDevelopment', '2014-05-28T18:03:01Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5078', '37', '7618', 'fix(angular.copy): support circular references', 'This PR is in response of #7592\r\n\r\nI broke it into two parts:\r\n\r\n1. Making `angular.copy` support circular references. This is useful for [the digest loop](https://github.com/angular/angular.js/blob/4eb9522f902f31a73b762ba0222cf3ad5d6c0b32/src/ng/rootScope.js#L693) and for [$parse\'s bind-once feature](https://github.com/angular/angular.js/blob/4eb9522f902f31a73b762ba0222cf3ad5d6c0b32/src/ng/parse.js#L1075). We\'re deeply copying user defined objects, which will make `.copy` hit the maximum call stack if it can\'t handle circular references.\r\n\r\n2. Since `.copy` is now _heavier_, shallowCopy can take its place in many scenarios. But it needs to handle \r\narrays and primitives to do the full job (mainly for ngClass)', '18', null, null, 'rodyhaddad', '2014-05-28T20:11:17Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5079', '37', '7619', 'Simplify watchGroupFn assignment using ternary', 'Request Type: refactor\n\nHow to reproduce: \n\nComponent(s): scope\n\nImpact: \n\nComplexity: small\n\nThis issue is related to: performance regression\n\n**Detailed Description:**\n\n\n\n**Other Comments:**\n\nAssigning true/false I\'ve changed to use a ternary operator as it\'s better suited.', '7', null, null, 'toddmotto', '2014-05-28T21:08:29Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5080', '37', '7620', 'chore(travis/ci): add verbose logging to sauce connect output', '', '5', null, null, 'juliemr', '2014-05-28T22:43:10Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5081', '37', '7622', 'docs(ngClick): improve style', '@btford told me to do this', '3', null, null, 'ealtenho', '2014-05-29T00:25:03Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5082', '37', '7623', 'docs(ngClick): improve style', '@btford told me to do this', '2', null, null, 'caguillen214', '2014-05-29T00:56:48Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5083', '37', '7628', 'chore($ngLocale): Added nb-no and no-no locale files', 'Request Type: chore\r\n\r\nHow to reproduce: \r\n\r\nComponent(s): ngLocale\r\n\r\nImpact: small\r\n\r\nComplexity: small\r\n\r\nThis issue is related to: Missing locale files\r\n\r\n**Detailed Description:** ngLocale is missing the nb-NO and no-NO locale files in use by norwegian browsers. These also exist in Google Closure Library by the looks of it.\r\n\r\n\r\n\r\n**Other Comments:**\r\n\r\n', '7', null, null, 'intellix', '2014-05-29T10:36:24Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5084', '37', '7633', 'Fix $watch docs to correctly define when angular.equals is used', 'Per [my question in the Google Group](https://groups.google.com/forum/#!topic/angular/-i2emUVfQbY)\r\n\r\nThis is a first cut - I will rebase and fix the commit message when we\'re happy this is good to go.', '2', null, null, 'myitcv', '2014-05-29T20:21:40Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5085', '37', '7634', 'refactor($http): coalesce calls to $rootScope.$apply WIP', 'Current state of this: support for evaluating expressions like $evalAsync has not been added -- but it\'s\ntrivial to add this.\n\nThere are some mock helpers added to enable better testing, although they aren\'t documented since they\nare not likely to be useful to users of the library.\n\nCurrently, there\'s a configuration method to allow users to define the debounce time for $http responses,\nbut I\'m not opposed to removing this, as it doesn\'t seem particularly useful under normal circumstances.', '17', null, null, 'caitp', '2014-05-29T20:42:45Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5086', '37', '7637', 'fix($animate): remove the need to add display:block!important for ngShow/ngHide', 'Since ngShow/ngHide animations add and remove the .ng-hide class, having to remember\r\nto write display:block on your own is a hassle and leads to problematic animation\r\ncode. This fix places a default on the animation for you instead.', '4', null, null, 'matsko', '2014-05-30T05:18:06Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5087', '37', '7638', 'docs(CONTRIBUTING.md): Fixing Google Closure I18N library link (old link returns 404)', 'Request Type: docs\n\nHow to reproduce: \n\nComponent(s): \n\nImpact: small\n\nComplexity: small\n\nThis issue is related to: \n\n**Detailed Description:**\n\n\n\n**Other Comments:**\n\nThe old seems to link to the source code of I18N. Found the same folder on their new Github repo.\r\n\r\n\"Closure Library\'s source repository has moved to GitHub.\", https://code.google.com/p/closure-library/', '3', null, null, 'HNygard', '2014-05-30T12:09:58Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5088', '37', '764', 'Resources', '', '5', null, null, 'mhevery', '2012-03-04T06:41:47Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5089', '37', '7641', 'fix($parse): fix parsing error with leading space and one time bind', 'Easy way to fix #7640 : add a simple trim when expression is parsed.', '5', null, null, 'cexbrayat', '2014-05-30T14:25:03Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5090', '37', '7644', 'Merge pull request #1 from angular/master', 'update', '1', null, null, 'hoosin', '2014-05-30T17:45:05Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5091', '37', '7645', 'feat($compile): isolate scope properties in controller context via controllerAs', 'It is now possible to ask the $compiler\'s isolate scope property machinery to \nreference properties by their isolate scope.\n\nThe current syntax is to prefix the scope name with a \'@\', like so:\n\n```js\n scope: {\n \"@myData\": \"=someData\",\n \"@myString\": \"@someInterpolation\",\n \"@myExpr\": \"&someExpr\"\n },\n controllerAs: \"someCtrl\"\n```\n\nThe putting of properties within the context of the controller will only occur\nif controllerAs is used, and the @-prefix is kind of a gross sort of magic.\n\nBenefits:\n\n - $scope[controllerAsName] is available to the controllers constructor\n - isolate scope properties are also available to the controllers constructor\n - It is now possible to defer calling of an object\'s constructor via $injector.instantiateLater\n\nProblems:\n - The \'@\'-prefix syntax is gross and I don\'t like it one bit.\n - Extending the directive API is gross and I don\'t like it one bit.\n - Adding new APIs to the injector is gross and I don\'t like it one bit.\n - Some of the refactoring will likely have minor performance implications\n - It\'s possible that there are bugs not being hit due to lack of tests\n\nRelated to #7635', '21', null, null, 'caitp', '2014-05-30T18:12:25Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5092', '37', '7649', 'refactor(bootstrap): remove an unused argument', '$animate not used in this function anymore.', '4', null, null, 'pomerantsev', '2014-05-31T10:13:54Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5093', '37', '765', 'Fix ng include', 'Compile only the content and remove ng:compile from the element, as I hope we don\'t need this hack anymore...', '1', null, null, 'vojtajina', '2012-03-04T09:15:49Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5094', '37', '7651', 'Add karma config update reference to step 11 of the tutorial', 'Request Type: docs\n\nHow to reproduce: On step 11 of the tutorial if you just follow the instructions on the main page the unit tests will fail.\n\nComponent(s): \n\nImpact: small\n\nComplexity: small\n\nThis issue is related to: \n\n**Detailed Description:**\n\nWhen including the ng-resource module you appear to need to add a reference to the karma config file as well or the unit tests will fail. This burned me for a while when going through the tutorial.\n\n**Other Comments:**\n\n', '5', null, null, 'aschokking', '2014-05-31T16:32:43Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5095', '37', '7652', 'configure encoding (true/false) of uri parameters', 'Request Type: feature\n\nHow to reproduce: \n\nComponent(s): ngResource\n\nImpact: small\n\nComplexity: small\n\nThis issue is related to: \n\n**Detailed Description:**\n\nDisbale or Enable uri parts encoding.\n\nExamples.\nfirst scenario is the default one and behave like angularjs resource before pull request.\n\nreturn $resource(\'/assets/empty:uriPart\', {}, {\n post: {method: \'POST\', encoding: true}\n });\n\nsecond scenarion is the new supported one with this pull request and disable UriParts encondig.\n\nreturn $resource(\'/assets/empty:uriPart\', {}, {\n post: {method: \'POST\', encoding: false}\n });\n\nFound this old patch from me and want to share it with you.\n\n**Other Comments:**\n\n', '13', null, null, 'pussinboots', '2014-05-31T16:38:43Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5096', '37', '7653', 'Update step_05.ngdoc', 'Just simple upgrade this doc.', '2', null, null, 'janek109', '2014-05-31T17:13:44Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5097', '37', '7654', 'Update faq.ngdoc', 'Added a note saying jQuery 2.x doesn\'t work at the moment.\r\n\r\ncf. #6436', '2', null, null, 'RichardLitt', '2014-05-31T21:56:12Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5098', '37', '7655', 'Add note about needing ng-app=\"myApp\" in Step 5', 'Request Type: docs\r\n\r\nHow to reproduce:\r\n\r\nComponent(s): misc core\r\n\r\nImpact: small\r\n\r\nComplexity: small\r\n\r\nThis issue is related to:\r\n\r\nDetailed Description:\r\n\r\nThis document was how I learned about using the inline, anonymous controller definition. It took me a long time and much frustration to figure out that I needed to change ng-app in my markup in order for this to work. I\'m hoping to save some time for the next person who takes the same path as me.\r\n\r\nOther Comments:', '6', null, null, 'chadoh', '2014-06-01T00:52:37Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5099', '37', '7656', 'Merge pull request #1 from angular/master', 'update', '1', null, null, 'hoosin', '2014-06-01T08:17:58Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5100', '37', '7658', 'Update index.ngdoc', 'Link points to templates. Modified the link label templates instead of types.', '2', null, null, 'JMRodriguez24', '2014-06-01T12:22:09Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5101', '37', '7659', 'Clarification of default transformations', 'The trail of colons (a : followed by more :) leads to a subtle clarity error in the default transformations list. I hope that this small enhancement clears the confusion. Thanks.', '6', null, null, 'Steve-Fenton', '2014-06-01T18:59:46Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5102', '37', '7660', 'Clarify that jQuery should be loaded first', 'jQuery needs to be loaded before *all* AngularJS modules in the app, \'cause otherwise AngularJS will not detect the presence of jQuery and animations (and I\'m sure also other things) will not work as expected.\r\n\r\nThis requirement is implied in the tutorial, but not made absolutely clear to those who, like me, like to write their own code as the walk through the tutorial, and therefore might make the mistake of loading jQuery after Angular.', '7', null, null, 'jmpalacios', '2014-06-01T21:24:08Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5103', '37', '7665', 'Update index.ngdoc', 'nodejs-legacy extra package is needed in Debian, for compatibility.\r\n\r\nIn http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=614907#108 you will find this comments:\r\n\r\n1. The nodejs package shall be changed to provide /usr/bin/nodejs, not /usr/bin/node. The package should declare a Breaks: relationship with any packages in Debian that reference /usr/bin/node.\r\n\r\n2. The nodejs source package shall also provide a nodejs-legacy binary package at Priority: extra that contains /usr/bin/node as a symlink to /usr/bin/nodejs. No package in the archive may depend on or recommend the nodejs-legacy package, which is provided solely for upstream\r\ncompatibility. This package declares shall also declare a Conflicts: relationship with the node package.', '8', null, null, 'gsc-leticia', '2014-06-02T14:10:52Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5104', '37', '7668', 'chore(ngLocale): fix ngLocale scripts and update', 'Fixes #7628 and probably other issues as well.', '5', null, null, 'caitp', '2014-06-02T17:10:13Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5105', '37', '7673', 'feat(ngModel): add $touched and $untouched states', 'Sets the ngModel controller property $touched to True and $untouched to False whenever a \'blur\' event is triggered over a control with the ngModel directive.\r\n\r\nReferences #583', '23', null, null, 'guzart', '2014-06-03T05:27:21Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5106', '37', '7674', 'Updated $interval documentation', 'callback function return parameter with iteration count', '8', null, null, 'martinpaulicek', '2014-06-03T08:30:35Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5107', '37', '7675', 'Update index.ngdoc', 'Changes synch to sync.', '2', null, null, 'execat', '2014-06-03T09:45:57Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5108', '37', '7676', 'docs(guide/expression) fix docs re $window', 'The docs and example for context are incorrect and misleading:\r\n\r\n1. \"Angular expressions must use $window explicitly to refer to the global `window` object\". Incorrect: expressions cannot access `$window`\r\n1. The example doesn\'t actually attempt to use $window in a expression. It\'s in a function called from an expression, which misleadingly implies to readers that:\r\n 1. functions ARE expressions\r\n 1. functions called by expressions can\'t access `window`\r\n\r\nHere\'s [a plunkr](http://plnkr.co/edit/Gd4xAV?p=preview) to make both these issues clear.\r\n\r\nThis change fixes the errors and informs the reader about Angular\'s `$window` etc services, and adds an explicit example of an expression not being able to access `window`.', '3', null, null, 'timruffles', '2014-06-03T11:08:26Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5109', '37', '7678', 'Update providers.ngdoc', 'typo', '2', null, null, 'oivvio', '2014-06-03T13:45:35Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5110', '37', '7679', 'Update providers.ngdoc', 'grammar', '3', null, null, 'oivvio', '2014-06-03T13:50:33Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5111', '37', '7685', 'fix(apis.js): Make $$hashKey property non-enumerable if possible.', 'Makes the annoying $$hashKey property non-enumerable for browsers which support Object.defineProperty.\r\n\r\nThe defined property is configurable (may be deleted) and writable (can be assigned to) for backward compatibility.', '5', null, null, 'TEHEK', '2014-06-03T23:32:28Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5112', '37', '7687', 'docs(error/$compile): add note that html comments can cause Invalid Template Root error', 'Request Type: docs\r\n\r\nHow to reproduce: \r\n\r\nComponent(s): $compile\r\n\r\nImpact: small\r\n\r\nComplexity: small\r\n\r\nThis issue is related to: \r\n\r\n**Detailed Description:**\r\n\r\nUsers with comments in their templates can overlook the fact that these may be the cause of an Invalid Template Root error. This note helps them identify when html comments are the cause of this error.\r\n\r\n**Other Comments:**\r\n\r\n', '2', null, null, 'dsem', '2014-06-04T01:08:18Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5113', '37', '7688', 'fix($http): reject $http promise when timeout occurs', 'Previously, timed out $http requests would result in a fulfilled promise, rather than a rejection. This CL corrects this unexpected behaviour.\r\n\r\nBREAKING CHANGE:\r\n\r\nCurrently, request timeout is treated as a successful request. This is unexpected, as a timeout is generally a failure, however it\'s possible some applications depend on this behaviour.\r\n\r\nIf your application depends on this, it\'s possible to migrate by simply moving the code which handles a timeout into a rejection/error handler, rather than a success handler.\r\n\r\nExample:\r\n\r\n```js\r\n$http.get(\'/some/slow/resource\', {\r\n timeout: 1\r\n}).\r\n error(function(res) {\r\n if (res.statusText === \"Timedout\") {\r\n console.log(\"request timed out!\");\r\n }\r\n });\r\n```\r\n\r\nFixes #7686', '2', null, null, 'caitp', '2014-06-04T01:36:57Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5114', '37', '7689', 'feat($http): add overrideMimeType passthrough', 'Call xhr.overrideMimeType() by defining config.overrideMimeType or $http.defaults.overrideMimeType\r\n\r\nCloses #7669', '11', null, null, 'quietmint', '2014-06-04T03:38:38Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5115', '37', '769', 'docs($rootScope): rename ttl to digestTtl + docs', '', '0', null, null, 'IgorMinar', '2012-03-05T22:53:44Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5116', '37', '7698', 'Update JSDoc for ngAnimate.enabled to show optional value', 'The docs show that param \'element\' (of type DOMElement) is required when it is optional.', '3', null, null, 'kevinwestern', '2014-06-04T21:55:35Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5117', '37', '77', 'Personal log demo app', 'css is still missing, but otherwise it\'s a good demo. please review.\n\nThis code depends on http://github.com/angular/angular.js/pull/76', '1', null, null, 'IgorMinar', '2010-10-23T05:14:39Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5118', '37', '770', 'refactor(fromJson): Remove error() and just throw', 'It\'s more likely you are using angular.fromJson() inside Angular world, which means you get proper\r\nexception handling by $exceptionHandler.\r\n\r\nThere is no point to explicitly push it to console and it causes memory leaks on most browsers \r\n(tried Chrome stable/canary, Safari, FF).', '1', null, null, 'vojtajina', '2012-03-07T21:44:24Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5119', '37', '7700', 'perf(*): more performant interpolation and lazy one-time binding', 'This PR implements a different approach to one-time binding, which also gives us a performant improvement for $interpolate by about 33%.\r\n\r\nHere\'s a benchmark app using the current snapshot: [plunkr](http://plnkr.co/edit/ED75f0qo0gnvodl9rCDV?p=preview)\r\nHere\'s the same benchmark with this PR: [plunkr](http://plnkr.co/edit/PbzTM5IviKydEH2dXfFZ?p=preview)\r\n\r\nLook at the difference between the two `baseline interpolation`. It goes from 30-35ms to 20-25ms.\r\nThis gets us closer the the `baseline binding`, which is about 15-20ms.\r\nThe other 3 benchmarks in the benchmark app remain unchanged.\r\n\r\n## What\'s behind this change:\r\n\r\n### Expressions can say how they want to be watched\r\nThis allows the following:\r\n* Given `interFn = $interpolate(\'{{a}}{{b}}\')`, interFn can say that it wants to be watched by: watching each expression individually (i.e. `scope.$watchGroup([\'a\', \'b\']`)\r\n* Given `parseFn = $parse(\'1 + 1\')`, parseFn can say that it wants to be watched by: getting evaluated on the next $digest, and then unregistering itself since its constant anyway\r\n* Given `parseFn = $parse(\'::foo\')`, parseFn can say that it wants to be watched by: getting evaluated on the $digest as usual, and unregistering itself when its value is no longer `undefined` (a.k.a. bind-once)\r\n\r\n### InterceptionFn\r\nThere are cases where the last scenario doesn\'t work out as we\'d like.\r\nIf we\'re watching a function that calls `parseFn` inside it, we lose the benefits mentioned above. That\'s because `parseFn` isn\'t aware that it\'s being watched (indirectly). So I created an _interceptorFn_ in `$parse` that goes around this issue. Interceptors work as filters and you can easily see their application in ngBind.js or sce.js\r\n\r\n-----\r\n\r\nI could go into more details, but you should check the code.\r\nThe first commit just reverts the current implementation of bind-once, so checking the second commit on it\'s own can make reviewing easier\r\nSuggested order of review:\r\n- rootScope.js\r\n- interpolate.js\r\n- parse.js\r\n- The rest', '32', null, null, 'rodyhaddad', '2014-06-04T22:31:19Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5120', '37', '7701', 'chore(jqLite): remove special characters from the expando property', 'Having special characters in the expando property created a memory bloat.\r\nSee https://code.google.com/p/chromium/issues/detail?id=378607#c6 to reproduce', '2', null, null, 'rodyhaddad', '2014-06-05T00:42:41Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5121', '37', '7702', 'feat(i18n): generates test for comparing locale data of Angular and node-cldr', 'Compares the plural rules included in Angular with those generated by node-cldr. Generates a web\r\npage that counts the number of discrepencies between Angular and node-cldr\'s implementations of\r\nplural rules.', '3', null, null, 'evankroske', '2014-06-05T03:17:05Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5122', '37', '7704', 'Update index.ngdoc', 'Added codeschool link', '4', null, null, 'tk120404', '2014-06-05T07:13:48Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5123', '37', '7706', 'add failing tests', 'Request Type: test\n\nHow to reproduce: \n\nComponent(s): ngResource\n\nImpact: medium\n\nComplexity: medium\n\nThis issue is related to: \n\n**Detailed Description:**\n\nHello, this is not a pull request for merging, but just in order to show a supposed bug with some test cases. Maybe i am just doing something wrong and this is not a bug.\n\nHere i add three tests, two of them fail, the following ones:\n\n should send a verb on instance without parameter alias\n should send the DELETE verb on instance\n\nIn these cases the request is sent to the whole `/resource/` instead that to `/resource/123` as desired.\n\nThe most annoying is the one about the delete action. The `DELETE` request is sent to the whole resource endpoint. With some server side APIs, for example python Eve, this will empty the whole collection. I wasn\'t able to get clues from the source code about the reason of the problem. I think that i don\'t have to sign the agreement since this is not meant to be merged, right?\n\nCheers\n\n**Other Comments:**\n\nThe two tests fail also on the `v1.2.16` branch', '6', null, null, 'danse', '2014-06-05T10:37:38Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5124', '37', '771', 'fix($parse): Allow property names that collide with native object proper...', '...ties\r\n\r\nI.e. constructor, toString, or watch on FF\r\n(https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/watch)\r\n\r\n+ optimize parser a bit to not create getter function for operators', '0', null, null, 'vojtajina', '2012-03-08T01:36:45Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5125', '37', '7719', 'docs(error/$rootScope/inprog): improve understanding and diagnosis of the error', 'This change improves the documentation related to \"$digest/$apply already in progress\" errors.\r\nIt describes common scenarios where this error occurs and shows a demonstration of debugging a situation where the error has occurred, including a runnable example.\r\n\r\nSee #5549', '16', null, null, 'petebacondarwin', '2014-06-05T20:17:57Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5126', '37', '7722', 'feat($animate): allow directives to cancel animation events', '', '17', null, null, 'matsko', '2014-06-06T03:30:25Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5127', '37', '7723', 'docs(tutorial): mention additional Debian install step', 'Closes #7665', '2', null, null, 'petebacondarwin', '2014-06-06T09:48:20Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5128', '37', '7727', 'chore(docs): add button to link to stable docs', '', '7', null, null, 'petebacondarwin', '2014-06-06T14:02:04Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5129', '37', '7728', 'Typo in $http config documentation', 'Request Type: docs\r\n\r\nHow to reproduce: \r\n\r\nComponent(s): $http\r\n\r\nImpact: small\r\n\r\nComplexity: small\r\n\r\nThis issue is related to: \r\n\r\n**Detailed Description:**\r\n\r\nTypo in the doc (double \"to\")\r\n\r\n**Other Comments:**\r\n\r\n', '3', null, null, 'srats', '2014-06-06T14:04:23Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5130', '37', '7729', 'Move angular to the ssp namespace', '@hekike what do ya think?', '1', null, null, 'gergelyke', '2014-06-06T14:06:30Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5131', '37', '773', 'chore(compiler): change default restriction to attribute only for direct...', '...ives', '0', null, null, 'mhevery', '2012-03-08T07:08:48Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5132', '37', '7730', 'Fixes code example in docs', 'http://screencast.com/t/xHi1XoYcTJ', '6', null, null, 'winescout', '2014-06-06T14:40:23Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5133', '37', '7731', 'Typo in $http config documentation', 'Request Type: docs\n\nHow to reproduce: \n\nComponent(s): $http\n\nImpact: small\n\nComplexity: small\n\nThis issue is related to: \n\n**Detailed Description:**\n\nTypo in the doc (double \"to\")\n\n**Other Comments:**\n\n', '2', null, null, 'srats', '2014-06-06T14:43:33Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5134', '37', '7735', 'perf(isArray): use native Array.isArray', 'Request Type: perf\n\nHow to reproduce: \n\nComponent(s): misc core\n\nImpact: small\n\nComplexity: small\n\nThis issue is related to: \n\n**Detailed Description:**\n\n\n\n**Other Comments:**\n\nsee benchmark: http://jsperf.com/isarray-performance', '9', null, null, 'SebastianM', '2014-06-06T19:45:38Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5135', '37', '7737', 'Update log.js', 'Request Type: docs\r\n\r\nHow to reproduce:\r\n\r\nComponent(s): misc core\r\n\r\nImpact: small\r\n\r\nComplexity: small\r\n\r\nThis issue is related to:\r\n\r\nDetailed Description:\r\n\r\nAlphabetize the methods for $log\r\n\r\nOther Comments:', '4', null, null, 'joshuawoodward', '2014-06-06T20:42:24Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5136', '37', '7738', 'Update filters.js documentation', 'Request Type: docs\n\nHow to reproduce: \n\nComponent(s): misc core\n\nImpact: small\n\nComplexity: small\n\nThis issue is related to: \n\n**Detailed Description:**\n\nAdded documentation for the use of the \'currency\' filter (added examples and tests for Euro and Rupee). Tests have not been tested.\n\n**Other Comments:**\n\nAdded examples for currency (Euro and Rupee). Please confirm that the Rupee and the Euro sign in the tests will work as expected.', '3', null, null, 'mauritzhansen', '2014-06-06T20:42:46Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5137', '37', '7739', 'fix($compile): fix ng-attr vs normal attribute ordering', 'This ensures ng-attr always overrides normal attributes of the same name.\r\n\r\nFixes: #7051', '10', null, null, 'jbedard', '2014-06-07T07:53:53Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5138', '37', '774', 'Random fixes', '', '0', null, null, 'IgorMinar', '2012-03-08T19:00:26Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5139', '37', '7741', 'fix(ngResource): don\'t convert literal values into Resource objects when isArray is true', 'Previously non-object literals would be thrown out of Resource responses with isArray===true, or otherwise converted into Objects (in the case of string literals). The reason for this is because shallowClearAndCopy iterates over keys, and copies keys into the destination. Iterating over String keys results in integer keys, with a single-character value.\r\n\r\nNot converting non-objects to Resources means that you lose the ability to perform Resource operations on them. However, they become usable as strings, numbers, or booleans, which is important.\r\n\r\nIn the future, it would be useful to make these useful as Resources while still retaining their primitive value usefulness. (@rodyhaddad can you think of a way to do this? You\'re the master of ES5 valueOf, as far as I know :P)\r\n\r\nCloses #6314', '6', null, null, 'caitp', '2014-06-07T18:09:28Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5140', '37', '7745', 'example for caitp', 'just to say that tests are failing :)\r\nreference https://github.com/angular/angular.js/pull/7255', '2', null, null, 'shahata', '2014-06-08T18:35:31Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5141', '37', '7747', 'docs(error/$injector/unpr): suggest additional location for dependency injection', 'Request Type: docs\n\nHow to reproduce: \n\nComponent(s): \n\nImpact: small\n\nComplexity: small\n\nThis issue is related to: \n\n**Detailed Description:**\n\nThis is a tiny change in the docs to suggest an alternative way of satisfying a dependency.\n\n**Other Comments:**\n\nThis would have helped me.', '4', null, null, 'otac0n', '2014-06-08T23:10:44Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5142', '37', '7748', 'Add line breaks after images', 'https://docs.angularjs.org/guide/databinding\r\n\r\n![line-break](https://cloud.githubusercontent.com/assets/55838/3212920/3b8b6584-ef7a-11e3-8c08-006181738c33.png)\r\n\r\nI dont know what ngdoc format is, but this change would work for markdown.', '7', null, null, 'NV', '2014-06-09T02:04:16Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5143', '37', '775', 'Content loaded', '', '0', null, null, 'IgorMinar', '2012-03-09T00:25:29Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5144', '37', '7751', 'Avoid stack overflow in filterFilter when using objects containing circular references', 'When an object with a circular reference property is passed into the search function, a stack overflow occurs. This patch fixes this by processing only calls to objects not processed yet.', '6', null, null, 'timschlechter', '2014-06-09T11:50:42Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5145', '37', '7752', 'Update step_05.ngdoc', '```_$httpBackend_``` is a cryptic way to name variables. Because of this, even you had to write a comment about this why did you use it that way! This is crazy.\r\n\r\nSo, just making ```_$httpBackend_``` as ```$httpBackend```, and the local var ```$httpBackend``` to ```$http``` we can easily smooth this complexity.\r\n\r\nElegancy is the key.', '6', null, null, 'deeperx', '2014-06-09T12:13:42Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5146', '37', '7754', 'refactor($http): move checking of the xsrf tokens to after cache check in $http', 'The pull request moves a place in the code where xsrf tokens are set to after the cache is checked, this way hopefully improving performance.\r\n\r\nThis is referenced in issue #7717.', '8', null, null, 'mkawalec', '2014-06-09T14:01:12Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5147', '37', '7757', 'fix($parse): treat empty expressions as constant', 'Previously, empty expressions would not be treated as constant, and if they\nwere watched, $scope would not unwatch them automatically after their initial\nwork. This change ensures that empty expressions are properly treated as\nconstant.', '2', null, null, 'caitp', '2014-06-09T18:45:02Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5148', '37', '7758', 'feat(attrs): trigger observers for specific ng-attributes', '', '32', null, null, 'matsko', '2014-06-09T18:55:19Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5149', '37', '7759', 'Perf improvements', '', '3', null, null, 'IgorMinar', '2014-06-09T20:03:17Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5150', '37', '776', 'Random great updates', '\r\n- form.registerWidget -> event $newFormControll\r\n- $provide.service -> $provide.provider\r\n- add $provide.service (register a class)', '1', null, null, 'vojtajina', '2012-03-09T01:15:19Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5151', '37', '7761', 'feat($rootScope): allow adding multiple listeners at once', 'Wrote this a while ago; figured I might as well send a PR while doing some spring cleaning on my git branches.\r\n\r\nCloses #4432, #4492', '14', null, null, 'btford', '2014-06-09T21:11:12Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5152', '37', '7762', 'fix($parse): mark empty expressions as constants and literals', 'In response of [#1405 (comment)](https://github.com/angular/angular.js/issues/1405#issuecomment-45525863)\r\n\r\nI decided to mark it as a literal because `$parse(\'undefined\')` is a literal.', '3', null, null, 'rodyhaddad', '2014-06-09T22:56:40Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5153', '37', '7764', 'docs(tutorial/step_09): note about \'Filter\' suffix', 'Request Type: docs\n\nHow to reproduce: \n\nComponent(s): misc core\n\nImpact: small\n\nComplexity: small\n\nThis issue is related to: \n\n**Detailed Description:**\n\nThe tutorial left out the fact that \'Filter\' was appended to filter names when injected into unit tests. Will save some people time to remind them here in this step.\n\n**Other Comments:**\n\nReminder that \'Filter\' is appended to filter names when injected. Link to Filter guide where this is mentioned.', '3', null, null, 'mattjay', '2014-06-10T03:42:41Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5154', '37', '7767', 'fix($animate): ensure that parallel class-based animations are all eventually closed', 'When multiple classes are added/removed in parallel then $animate only closes off the\r\nlast animation when the fallback timer has expired. Now all animations are closed off.\r\n\r\nFixes #7766', '15', null, null, 'matsko', '2014-06-10T05:09:19Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5155', '37', '7768', 'Rename int() to toInt() - issue #1304', '', '6', null, null, 'Crozin', '2014-06-10T07:10:11Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5156', '37', '7769', 'docs(tutorial): fix broken link', 'Fixes a broken link that is preventing the docs task to run', '2', null, null, 'lgalfaso', '2014-06-10T08:45:48Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5157', '37', '777', 'Minor updates to grammar in dev_guide.overview', 'This commit contains some minor grammatical updates to docs/content/guide/dev_guide.overview.ngdoc', '3', null, null, 'ysiadf', '2012-03-09T04:06:14Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5158', '37', '7772', 'fix($compile): replace/templateUrl transclude issue', 'See #7183', '4', null, null, 'petebacondarwin', '2014-06-10T12:49:50Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5159', '37', '7773', 'Update loader.js', 'Request Type: docs\n\nHow to reproduce: \n\nComponent(s): di\n\nImpact: small\n\nComplexity: small\n\nThis issue is related to: \n\n**Detailed Description:**\n\ndocumentation update: also mention controllers as components in a module\n\n**Other Comments:**\n\nimprove descriptive comment on module', '4', null, null, 'fvanderwielen', '2014-06-10T13:40:37Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5160', '37', '7775', 'Update services.ngdoc', 'Fix in a mis-parsed link with \')\' symbol in it', '5', null, null, 'AlexKarpan', '2014-06-10T20:07:03Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5161', '37', '7776', 'Update ngIf.js doc. Added missing description of ng-if behavior.', 'Added missing description of ng-if behavior that it will return false for \"f\", \"0\", \"false\", \"no\", \"n\", \"[]\" values because it use toBoolean function', '11', null, null, 'tuchk4', '2014-06-10T20:42:22Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5162', '37', '7777', 'docs(guide/services): Replaced broken link', 'Replaced broken link with link to more relevant API', '3', null, null, 'ChrisRose', '2014-06-10T21:11:44Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5163', '37', '7778', 'automatic $destroy of all child scopes to minimize memory leaks', 'Update of $rootScope, added auto remove of $watchers on $destroy event to minimize memory leaks', '12', null, null, 'igorzg', '2014-06-10T23:05:21Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5164', '37', '7782', 'docs($httpProvider): add documentation', 'Add documentation for $httpProvider default values\r\n\r\nCloses #6682', '10', null, null, 'corytheboyd', '2014-06-11T03:12:58Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5165', '37', '7784', 'fix($animate): remove ng-animate class after canceling animation', '`ng-animate` class gets stuck on element after canceling animation.\r\nBug example, double click button to catch it\r\nhttp://plnkr.co/edit/vDQU8sJOKdoluHWdLJvJ?p=preview\r\n\r\nFixes #7766', '14', null, null, 'airato', '2014-06-11T08:32:44Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5166', '37', '7785', 'Update scope.ngdoc', 'fix spelling mistake', '3', null, null, 'wayne-o', '2014-06-11T12:49:48Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5167', '37', '7786', 'fix if/when', 'You can not change the use of `{{}}`/`ngBind` based on the time when it is used. So this should be \"if\".', '3', null, null, 'xi', '2014-06-11T13:27:21Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5168', '37', '7787', 'fix($parse): Handle one-time to `null`', 'Handles when a one-time binding stabilizes to `null`\r\n\r\nCloses #7743', '3', null, null, 'lgalfaso', '2014-06-11T14:14:34Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5169', '37', '7788', 'Clarification of Running Step 0', 'As a newbie, I ran into a problem when I ran \'npm run\' before I ran \'git checkout -f step-0\'. It ran the final webpage even after navigating to step-0. Clearing the browser history fixed the problem.', '5', null, null, 'cra-rgourley', '2014-06-11T14:19:49Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5170', '37', '779', 'Doc fixes', '', '0', null, null, 'mhevery', '2012-03-09T23:35:42Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5171', '37', '7792', 'fix($http): fix response headers with an empty value', 'Empty response header values are legal (http://www.w3.org/Protocols/rfc2616/rfc2616-sec4.html). Return an empty string instead of null, which is returned when the header does not exist.\r\n\r\nCloses #7779', '6', null, null, 'jamshid', '2014-06-11T18:18:03Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5172', '37', '7793', 'Fix reversed local and external attribute names', '', '3', null, null, 'shawkinaw', '2014-06-11T18:48:03Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5173', '37', '7795', 'docs(guide/services): fix link to services api', '', '4', null, null, 'fuqcool', '2014-06-12T02:28:09Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5174', '37', '78', 'Date filter millis', '- reverts previous commit (don\'t try to parse string (that\'s a rat hole))\r\n- support numbers as input and consider them to be milliseconds\r\n- implementations is simpler\r\n- better tests', '0', null, null, 'IgorMinar', '2010-10-24T01:47:30Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5175', '37', '780', 'Colon dash', '', '1', null, null, 'IgorMinar', '2012-03-09T23:48:20Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5176', '37', '7800', 'docs($rootScope): wrong parameter name, grammar', '', '2', null, null, 'thorn0', '2014-06-12T11:23:42Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5177', '37', '7802', 'feat(ngRepeat): add `index as` property', 'Adds the ability to define the property that should be used for the index', '2', null, null, 'lgalfaso', '2014-06-12T11:45:48Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5178', '37', '7805', 'chore(ngLocale): change update-closure and closureSlurper to use the ext...', '...ra locales for number formats.\r\n\r\nThis download numberSymbolsExt.js and use it to generate number formats for the \"extra\" locales.\r\n\r\nFixes issue #7799 by using the correct fr-ch and it-ch locales number formats.', '4', null, null, 'alexandrevoilab', '2014-06-12T15:03:03Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5179', '37', '7806', 'feat(mocks): Injected function(s) now return value(s).', 'I just ran into this problem:\r\n\r\n```javascript\r\ndescribe(\'foo\', function() {\r\n // Create a scope and setup the module...\r\n\r\n var createController = inject(function($controller) {\r\n return $controller(\'Foo\', {scope: scope});\r\n });\r\n\r\n it(\'should create the controller\', function() {\r\n var ctrl = createController();\r\n expect(ctrl).not.toBeUndefined(); // FAIL\r\n });\r\n});\r\n```\r\n\r\nI was trying to do some setup on a fake injected service in my spec before creating the controller.\r\n\r\nIt turns out that while inject returns your function injected it does not respect your function\'s return value. So in my example, the return of the controller goes nowhere.\r\n\r\nHowever, the `Injector.invoke` call _does_ return the value of the invoked function. In my commit, I simply pass it back from `inject`. If more than one function is used in `inject`, then an array of return values is passed back.\r\n\r\nI\'m not sure if there is something I\'m missing, so I would love to hear what you think about this change. I think that it makes the `inject` function work as expected.', '16', null, null, 'wesalvaro', '2014-06-12T15:43:59Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5180', '37', '7807', 'code.angularjs.org/angular.js is 404, updated it', 'Updated http://code.angularjs.org/angular.js in the example to http://code.angularjs.org/snapshot/angular.js \r\nIt works fine now.', '3', null, null, 'eyedean', '2014-06-12T18:05:57Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5181', '37', '7809', 'feat(ngRoute): alias string as redirectTo property in .otherwise()', 'Allow .otherwise() to interpret a string parameter\r\nas the redirectTo property to handle the common misinterpretation\r\nthat .otherwise() takes as a parameter the string to be matched\r\nin the otherwise case.\r\n\r\nCloses #7794', '3', null, null, 'ealtenho', '2014-06-12T19:14:48Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5182', '37', '781', 'Form remove touch', '', '0', null, null, 'vojtajina', '2012-03-10T01:55:06Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5183', '37', '7811', 'Added caveat to attr() function of jqLite', 'attr() does not support functions as parameters.', '2', null, null, 'cwclark', '2014-06-12T19:42:56Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5184', '37', '7812', 'Update Angular.js', 'I see some people are discussing about why isDefined(blahblah) doesn\'t work (blahblah is not declared). This will make it clear.', '9', null, null, 'zsong', '2014-06-12T19:53:11Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5185', '37', '7815', 'Update step_03.ngdoc', '1) The original document is not clear to a new developer in where to place the code.\r\n2) The query.clear() statement to clear the query before the second test is missing in the original document. \r\n3) Refactored to use the query and phoneList variables in both tests, so its easier to read and understand.', '3', null, null, 'ifalvarez', '2014-06-12T20:45:34Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5186', '37', '7816', 'fix(input[url]): Invalid URLS incorrectly valid', 'The current URL regex incorrectly matches invalid urls.\r\nExamples:\r\nhttp://www..\r\nhttp:///\r\nhttp://[[\r\nThe new regex should correctly identify urls', '4', null, null, 'btesser', '2014-06-13T02:31:37Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5187', '37', '7819', 'Update $location.ngdoc', 'Minor documentation fix.\r\n\"window.location.path\" did not work in Chrome, and googling does not reveal any references to it for any browser. It seems it is supposed to be \"window.location.pathname\".\r\n\r\nThanks!', '2', null, null, 'archer308', '2014-06-13T06:35:00Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5188', '37', '7820', 'update the `parseAs` method name (it was `parse`)', '', '3', null, null, 'ahmad-moussawi', '2014-06-13T08:25:12Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5189', '37', '7825', 'fix the protractor example(by.select to by.model).', 'I changed to `by.model` because `by.select` is deprecated.', '2', null, null, 'ukyo', '2014-06-13T10:13:03Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5190', '37', '7828', 'Backport $compiler fixes from 1.3 to v1.2.x', 'This doesn\'t include 2cde927e58c8d1588569d94a797e43cdfbcedaf9 which contained breaking changes,\nbut includes all of the transclusion fixes.', '4', null, null, 'caitp', '2014-06-13T13:59:31Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5191', '37', '7829', 'WIP: perf(jqLite): use classList for add/removeClass', 'Continuation of #7759\r\nUsing `classList.apply` caused problems in IE 10/11.\r\n\r\nI believe we still want these changes for performance, but not yet.\r\nSo keeping them here for being considered later.', '10', null, null, 'rodyhaddad', '2014-06-13T17:48:51Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5192', '37', '7830', 'docs(CONTRIBUTING.md): fix link to unit testing docs', 'The old link points to a page that doesn\'t exist', '2', null, null, 'XrXr', '2014-06-13T17:53:50Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5193', '37', '7832', 'the generated resource doesn\'t have any \"delete\" method.', '', '3', null, null, 'iuliust', '2014-06-14T09:26:28Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5194', '37', '7835', 'fix(i18n): es-ar locale currency', '', '5', null, null, 'jca258', '2014-06-14T14:43:26Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5195', '37', '7837', 'fix(ngModel): test & update correct model when running $validate', 'If `$validate` is invoked when the model is already invalid, `$validate` should pass `$$invalidModelValue` to the validators, not `$modelValue`. More over, if the model has become valid, the previously invalid model should be assigned to `$modelValue`. Lastly, in case the model has become invalid, the previously valid model should be assigned to `$$invalidModelValue`.\r\n\r\nCloses #7836', '28', null, null, 'shahata', '2014-06-14T15:17:57Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5196', '37', '7839', 'Make angular.equals support objects with circular references', 'Per #7724', '12', null, null, 'myitcv', '2014-06-14T20:16:33Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5197', '37', '7840', 'refact(select): use `prop` to modify the `select` property', 'jQuery suggests using `prop` rather than `attr` to modify the `select` property of an element.\r\nYou can see the full list of migration warnings for jQuery:\r\nhttps://github.com/jquery/jquery-migrate/blob/master/warnings.md\r\n\r\nCloses #4107\r\nCloses #4122', '1', null, null, 'mantisfilms', '2014-06-15T02:26:56Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5198', '37', '7841', 'Update concepts.ngdoc', 'As described in the \"Adding UI logic: Controllers\" section above, controller objects are created using the new operator and a constructor function. As I understand it, a factory function is a different way to create an object, so I think that these terms should not be used synonymously.', '3', null, null, 'cquillen2003', '2014-06-15T03:04:46Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5199', '37', '7843', 'git test', 'git test', '2', null, null, 'zhanglingkang', '2014-06-15T11:20:56Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5200', '37', '7844', 'Missing example in Forms guide', 'When explaining ng-model-options, there\'s no print of user.data to show the difference between the default behaviour and updateOn: \'blur\'', '1', null, null, 'Charca', '2014-06-15T15:36:12Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5201', '37', '7846', 'Use source object prototype in object copy', 'Whilst not strictly necessary for the likes of `$watch` to behave as expected, given that `angular.copy` is exposed it should honour the prototype of the source object such that, as the test ensures:\r\n\r\n```javascript\r\nfunction A() {}\r\nvar a = new A();\r\nvar a_copy = angular.copy(a);\r\nexpect(a_copy instanceof A).toBe(true);\r\n```\r\n\r\nOtherwise users of `angular.copy` (read: at least me) end up having to create their own version of `angular.copy` to make this one change.', '3', null, null, 'myitcv', '2014-06-16T11:12:36Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5202', '37', '785', 'Release', '', '1', null, null, 'IgorMinar', '2012-03-13T04:41:33Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5203', '37', '7852', 'Fix typo', '', '1', null, null, 'jameshfisher', '2014-06-16T15:43:41Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5204', '37', '7856', 'fix(NgModel): use string representation of the value in the ngMinlength and ngMaxlength', 'There is an issue - if ng-model value set to a nonstring (via js), the ngMinlength and ngMaxlength don\'t work properly.\r\nIssue example http://plnkr.co/edit/y65LU7xJFSi4L9Ui4WqZ?p=preview\r\n\r\nFixes #7848', '7', null, null, 'airato', '2014-06-16T21:08:35Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5205', '37', '7857', 'Update example to change {{user}} to {{user.name}}', 'If user has actions property, it should be an object, which means if you {{user}}, it\'ll print out the object.', '3', null, null, 'marchbox', '2014-06-16T21:09:01Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5206', '37', '7858', 'fix(NgModel): use string representation of the value in the ngMinlength and ngMaxlength v1.2.x', 'Issue with nonstrings, like in master branch, see https://github.com/angular/angular.js/pull/7856\r\n\r\nExample for v1.2.18 http://plnkr.co/edit/K2PraexZazCgCJqzfwTI?p=preview', '1', null, null, 'airato', '2014-06-16T21:14:39Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5207', '37', '7859', 'docs($http): fix broken markdown link in withCredentials description', 'Markdown typo in $http config documentation', '6', null, null, 'joeyyang', '2014-06-16T22:04:08Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5208', '37', '786', 'feat(ng-list): Allow custom separator', '', '2', null, null, 'vojtajina', '2012-03-13T06:04:35Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5209', '37', '7861', 'fix($compile): bind ng-attr-* even if unbound attribute follows ng-attr-*', '**TEST PR** Just want to make sure this works on IE8...\n\nPreviously, <element ng-attr-foo=\"{{binding}}\" foo=\"bar\"></element>\'s \"foo\"\nattribute would always equal \"bar\", because the bound version was overwritten.\nThis CL corrects this behaviour and ensures that the ordering of attributes\ndoes not have an effect on whether or not ng-attr-bound attributes do their\nwork.\n\nCloses #7739', '0', null, null, 'caitp', '2014-06-16T23:28:08Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5210', '37', '7863', 'fix(injector): allow multiple loading of function modules', '**TEST PR** Just verifying that this passes on IE8\n\nChange HashMap to give $$hashKey also for functions so it will be possible to\nload multiple module function instances. In order to prevent problem in\nangular\'s test suite, added an option to HashMap to maintain its own id\ncounter and added cleanup of $$hashKey from all module functions after each \ntest.\n\nBefore this CL, functions were added to the HashMap via toString(), which\ncould potentially return the same value for different actual instances of a\nfunction. This corrects this behaviour by ensuring that functions are mapped\nwith hashKeys, and ensuring that hashKeys are removed from functions and\nobjects at the end of tests.\n\nIn addition to these changes, the injector uses its own set of UIDs in order\nto prevent confusingly breaking tests which expect scopes or ng-repeated items\nto have specific hash keys.\n\nCloses #7255', '1', null, null, 'caitp', '2014-06-17T00:46:19Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5211', '37', '7864', 'feat(dateFilter): add `utc` argument to format in UTC.', 'If a truthy value is passed in as the third argument to dateFilter,\r\nit will format in UTC rather than local time.\r\n\r\nCloses #6546', '6', null, null, 'ckknight', '2014-06-17T06:30:34Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5212', '37', '7866', 'ngChange won\'t propagate if the model is invalid.', 'When a pattern is defined for an input field, ngChange is not evaluated if the input doesn\'t match the pattern. Only changes to or from matching patterns evaluate the ngChange expression.', '7', null, null, 'bernhard-hofmann', '2014-06-17T08:13:59Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5213', '37', '7868', 'fix(form input): input[\"email\"] and ngRequired not working together', 'ngRequired added to an email field wasn\'t working properly. ng-invalid-required\r\nstayed true unless a valid email was entered.\r\n\r\ncorrect behaviour is that it turns to ng-valid-required at first entered key.\r\n\r\ncloses: #7849', '3', null, null, 'swisstofu', '2014-06-17T13:00:08Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5214', '37', '787', 'Forms docs update', '', '0', null, null, 'mhevery', '2012-03-13T06:37:23Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5215', '37', '7878', 'fix(numberFilter): fix formatting error', 'For numbers that when converted to string do not have an exponent, do the number rounding using string manipulation\r\n\r\nCloses #7870', '2', null, null, 'lgalfaso', '2014-06-17T15:44:02Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5216', '37', '7879', 'fix($$sanitizeUri): Anchor data:image/ clause in regex.', 'The existing regex would pass image uris if \"data:image/\" appeared anywhere.', '0', null, null, 'groner', '2014-06-17T15:48:49Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5217', '37', '788', 'More fixes', '', '0', null, null, 'IgorMinar', '2012-03-13T07:29:33Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5218', '37', '7880', 'fix(loader): allow \'ng\' module to be extended with filters/directives/etc', 'Due to a regression in c0b4e2d, it is no longer possible to add new controllers, directives, filters, or animations to the `ng` module. This is becuase `config` blocks are always evaluated after regular invoke blocks, and the registration of these types depend on angular\'s config blocks to have been run.\r\n\r\nThis solution simply ensures that `ng`\'s config blocks are run before its invoke blocks are run.\r\n\r\nCloses #7709', '4', null, null, 'caitp', '2014-06-17T16:00:53Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5219', '37', '7884', 'Update ngPluralize.js', 'Just a silly change to the name of one of the examples that appears to be a typo. Changing Marry to Mary as the first would be a verb and the latter would be an extremely common name.', '1', null, null, 'neilsmind', '2014-06-17T21:40:56Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5220', '37', '7885', 'Fix typo in ngIf.js', '', '2', null, null, 'LiquidFlux', '2014-06-18T01:44:19Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5221', '37', '7886', 'update', '', '1', null, null, 'hoosin', '2014-06-18T02:32:16Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5222', '37', '7887', 'perf($compile): remove no longer need nodeType filter when setting $scope data', 'Now that a196c8bc added the nodeType check it doesn\'t have to be done by the link function. This avoids the `.eq()` call which created a new jQuery/jqLite object for each element.', '2', null, null, 'jbedard', '2014-06-18T05:51:55Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5223', '37', '7895', 'docs: Update http.js', 'The previous way is not good for minimizing javascript.', '3', null, null, 'buster84', '2014-06-18T16:47:41Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5224', '37', '7897', 'fix($sce): fix adjustMatcher to replace multiple \'*\' and \'**\'', 'On `$sceDelegateProvide` the `adjustMatcher` function was only replacing the first `*` and `**` found on the whitelisted and blacklisted urls. This caused $sceDelegate policy problems for example when trying to match `*://*.example.com/**` against `https://www.example.com/path`.', '5', null, null, 'santialbo', '2014-06-18T18:33:30Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5225', '37', '790', '(docs) Fixed non-working example, and added explanation of implicit DI with it\'s own example', 'The docs for 0.10.7 are in need of updating, especially with the new \"Implicit Dependency Injection\". \r\nThis is my first attempt at documenting it, so I am only requesting a pull request for one page to elicit comments.\r\n-zen', '2', null, null, 'danielzen', '2012-03-13T21:28:17Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5226', '37', '7901', 'update', '', '1', null, null, 'hoosin', '2014-06-19T01:06:52Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5227', '37', '7902', 'fix(forEach): add the array/object as the 3rd param like the native forEach', 'This makes all the different object types supported by `angular.forEach` more like the native `Array.forEach` by adding the 3rd argument to the callback. Also adding tests to make sure all the different object types invoke the iterator with all 3 arguments and the context.', '5', null, null, 'jbedard', '2014-06-19T02:47:22Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5228', '37', '7903', 'feat($http): add option for unsafe xhr requests in FirefoxOS', 'Previously, it was not possible to pass settings to the constructor of the XMLHttpRequest. This\r\nadds an optional config property `xhrConfig` to the $http constructor, allowing us to do so. This\r\nis required for use of the mozAnon and mozSystem options for FirefoxOS.\r\nSee https://developer.mozilla.org/en-US/docs/DOM/XMLHttpRequest#XMLHttpRequest() for details.\r\n\r\nCloses #2318', '24', null, null, 'amccausl', '2014-06-19T03:05:02Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5229', '37', '7904', 'opal compatability as suggested in #2653', 'As suggested here https://github.com/angular/angular.js/issues/2653#issuecomment-20582266\r\nSee discussion in #2653\r\n\r\nAny chance to get this integrated eventually?\r\n', '4', null, null, 'MichaelSp', '2014-06-19T09:23:17Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5230', '37', '7905', 'feat(detach-from-browser): add the ability to stop listening to url change events', 'Basically make angular shutdown-able. \r\n\r\nhttps://groups.google.com/forum/#!topic/angular/-F8csciC33Y', '1', null, null, 'mirikle', '2014-06-19T09:50:46Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5231', '37', '7906', 'feat($http): adds xhrFields to $http config object', 'The `xhrFields` object is passed to the XMLHttpRequest constructor making it possible to set non-standard properties on the XMLHttpRequest object. It is also possible to set the object on `$http.defaults` to use it globally. With this functionality it is possible to set the `mozSystem` and `mozAnon` properties, which is required to use angular in a packaged Firefox OS app. See https://developer.mozilla.org/en-US/docs/DOM/XMLHttpRequest#XMLHttpRequest()\r\n\r\nCloses #2318', '9', null, null, 'sjurba', '2014-06-19T19:11:01Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5232', '37', '7908', 'Add hint about bower installation failure', 'When running npm install, this failed for me due to the reasons mentioned in the StackOverflow article cited. Creating the config file worked for me, did not know where to apply the better ranked config option. Feel free to add that if you know better.', '7', null, null, 'tinne', '2014-06-19T19:51:59Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5233', '37', '791', 'Validation css', '', '0', null, null, 'mhevery', '2012-03-13T21:37:45Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5234', '37', '7911', 'V1.2.x', '', '0', null, null, 'hoosin', '2014-06-20T02:04:29Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5235', '37', '7913', 'nested transclusion memory leak', 'When the transclude function creates the scope it destroys that scope on the \'$destroy\' jQuery event. If that element is a comment (because it was also transcluded, for example) then:\r\n* jqLite adds and leaks data on the comment node, but $destroy seems to get called (the added test shows this)\r\n* jQuery does not add/leak data on the comment node, so $destroy does not get called (the modified test shows this)\r\n\r\nHere\'s another example: http://plnkr.co/edit/89BK3LXL6USYoATQhg2c?p=preview', '17', null, null, 'jbedard', '2014-06-20T07:43:21Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5236', '37', '7915', 'docs($location): hashPrefix, html5Mode are methods', 'Such getter-setter methods of $interpolateProvider are marked as methods, not properties.\r\n\r\nAlso, empty entries are generated for these members in the HTML output if they are marked as properties. See https://docs.angularjs.org/api/ng/provider/$locationProvider\r\n![image](https://cloud.githubusercontent.com/assets/94334/3338436/d4112a20-f85b-11e3-982f-e0097fc53796.png)', '1', null, null, 'thorn0', '2014-06-20T09:21:34Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5237', '37', '7918', 'Correct a typo in the docs', '', '3', null, null, 'laurentqro', '2014-06-20T11:17:51Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5238', '37', '7919', 'Fix e2e test in tutorial step-4', 'The online documentation doesn\'t match the code in the `test/e2e/scenarios.js` file.', '1', null, null, 'alexm', '2014-06-20T12:30:38Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5239', '37', '792', 'Fix typos.', '', '1', null, null, 'alkis', '2012-03-14T10:29:24Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5240', '37', '7921', 'Changed regex to strip out /. before query only', 'The regex suppesed to strip out the /. before query strip it out anywhere in the url.\r\n', '5', null, null, 'dlavoieb', '2014-06-20T14:31:23Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5241', '37', '7922', 'feat(currencyFilter): add fractionSize as optional parameter', 'currencyFilter accepts number of decimals to round off to\r\n\r\nCloses #3642', '4', null, null, 'doshprompt', '2014-06-20T17:39:53Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5242', '37', '7927', 'Change spliting event names to predefined array', 'Why allocate a string, split it, and use it as an array, when you can use a pre-defined array, to contain the event names? It\'s not much of a performance impact, but it really did hurt my eyes :)', '3', null, null, 'bali182', '2014-06-20T21:15:53Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5243', '37', '7930', 'fix($rootScope): $watchCollection should handle NaN in objects', 'This fixes a potential infinite digest in $watchCollection when one of the values is NaN. This was previously fixed for arrays, but needs to be handled for objects as well.', '2', null, null, 'shahata', '2014-06-21T16:22:08Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5244', '37', '7931', 'Update ngSwitch.js', 'As per example here https://docs.angularjs.org/api/ng/directive/ngSwitch\r\nIt is mentioned to use attr.on, when using the jade templating engine ngSwitch would always be set to ng-switch\r\nHere is a simple fix to that problem.', '13', null, null, 'fabiancook', '2014-06-22T02:47:15Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5245', '37', '7932', 'Adds titles to various links in docs and src for improved accessibility.', '', '3', null, null, 'sndsgn', '2014-06-22T03:14:23Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5246', '37', '7933', 'Update directive.ngdoc', 'Currently it\'s a bit unclear what\'s the role of ng-transclude in my-dialog.html. Having ng-transclude in h1 (instead of div) makes it easily noticeable that contents of my-dialog tag in index.html are getting WRAPPED by contents of ng-transclude tag in my-dialog.html.', '4', null, null, 'aaani', '2014-06-22T04:30:01Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5247', '37', '7934', 'Update input.js', 'As seen on this line of code:\r\nhttps://github.com/angular/angular.js/blob/master/src/ng/directive/input.js#L1627', '1', null, null, 'ephigabay', '2014-06-22T13:37:26Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5248', '37', '7937', 'fix(input): improve html5 validation support', 'This CL improves mocking support for HTML5 validation, and ensures that it\nworks correctly along with debounced commission of view values.\n\nCloses #7936', '32', null, null, 'caitp', '2014-06-22T19:40:12Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5249', '37', '7938', 'fix(input): escape forward slash in email regexp', 'This messed up with syntax coloring and variable hovering in chrome developer tools and made debugging really difficult.', '2', null, null, 'shahata', '2014-06-22T22:41:02Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5250', '37', '794', 'fix(ng-switch): properly destroy child scopes', '', '0', null, null, 'IgorMinar', '2012-03-14T20:47:05Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5251', '37', '7940', 'option to disable encoding slashes for url params', 'fixes #1388', '18', null, null, 'connorbode', '2014-06-23T06:03:33Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5252', '37', '7942', 'fix(jqLite): don\'t attach event handler to comments (memory leak)', '', '19', null, null, 'petebacondarwin', '2014-06-23T07:54:13Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5253', '37', '7944', 'fixed email regexp', '', '7', null, null, 'saifanam', '2014-06-23T08:38:33Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5254', '37', '7946', 'feat(ngAnimate): conditionally allow child animations to run in parallel with parent animations', 'By default ngAnimate prevents child animations from running when a parent is performing an animation. However there are a cases when an application should allow all child animations to run without blocking each other. By placing the `ng-animate-children` flag in the template, this effect can now be put to use within the template.\r\n\r\nCloses #6817', '1', null, null, 'matsko', '2014-06-23T10:11:11Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5255', '37', '7947', 'Add type=\"url\" and type=\"email\" into the validators pipeline', '', '3', null, null, 'matsko', '2014-06-23T10:14:14Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5256', '37', '7948', 'fix($animate): remove the ng-animate className after canceling animation', 'Closes #7784\r\nCloses #7801 \r\nCloses #7894', '6', null, null, 'matsko', '2014-06-23T10:19:25Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5257', '37', '7949', 'Update filter.js', 'Display \"No result found\" message when filtered result is empty using single filter operation', '2', null, null, 'hriships', '2014-06-23T10:46:25Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5258', '37', '795', 'docs(guide) Added testing examples for controllers and directives', 'After this I will switch to working off:\r\nhttps://github.com/mhevery/angular.js/tree/docs/docs/content/guide\r\n\r\nSince Misko has asked me to look at that', '1', null, null, 'danielzen', '2012-03-15T19:22:16Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5259', '37', '7950', 'Update step_03.ngdoc', 'If you don\'t clear the query in the first test and put the second query test under the first, you\'ll get Protractor test fail.', '4', null, null, 'DarthVanger', '2014-06-23T12:35:07Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5260', '37', '7951', 'srcset used instead of src for img attribute', 'In `ngSrc` documentation `srcset` is used instead of `src` as `img` element attribute in the example.', '1', null, null, 'nakhli', '2014-06-23T12:53:57Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5261', '37', '7957', 'fix(input): improve html5 validation support (v1.2.x)', 'This CL improves mocking support for HTML5 validation, and ensures that it\nworks correctly along with debounced commission of view values.', '9', null, null, 'caitp', '2014-06-23T15:58:10Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5262', '37', '7958', 'chore(tests): remove a lingering iit in end to end tests', '', '2', null, null, 'juliemr', '2014-06-23T18:25:10Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5263', '37', '7959', 'refactor(jshint): reduce duplication & test all JS files', 'It currently fails due to the bug fixed in https://github.com/jshint/jshint/pull/1684; jsHint verions with the fix wasn\'t released yet.\r\n\r\nStill, putting it up for discussion. I\'m not sure if we need such a huge definition in Gruntfile, jsHint can handle multiple `.jshintrc` files on its own.\r\n\r\nMoreover:\r\n\r\n1. We could utilize `extend` property and define all the rules in one file only; the rest would only define if we\'re in Node or browser context and would export proper globals.\r\n2. We should probably move some files around; some `global` sections are pretty huge because they come from multiple files. It\'s very hard to maintain such a situation.', '6', null, null, 'mzgol', '2014-06-23T21:20:54Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5264', '37', '796', 'Bugs', '', '0', null, null, 'mhevery', '2012-03-15T22:56:26Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5265', '37', '7960', 'fix(core): drop the toBoolean function', 'So far Angular have used the toBoolean function to decide if the parsed value\r\nis truthy. The function made more values falsy than regular JavaScript would,\r\ne.g. strings \'f\' and \'no\' were both treated as falsy. This creates suble bugs\r\nwhen backend sends a non-empty string with one of these values and something\r\nsuddenly hides in the application\r\n\r\nBREAKING CHANGE: values \'f\', \'0\', \'false\', \'no\', \'n\', \'[]\' are no longer\r\ntreated as falsy. Only JavaScript falsy values are now treated as falsy by the\r\nexpression parser; there are six of them: false, null, undefined, NaN, 0 and \"\".\r\n\r\nFixes #3969\r\nFixes #4277\r\n\r\ncc @IgorMinar @petebacondarwin', '37', null, null, 'mzgol', '2014-06-23T22:08:11Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5266', '37', '7961', 'Update description of $httpBackend.respond(...)', 'For the novice, the previous description was not helpful. I hope this is more so.', '6', null, null, 'gdennie', '2014-06-23T22:21:00Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5267', '37', '7962', 'fix(numberFilter): correctly round fractions despite floating-point arithmetics issues in JS', '\r\nCloses #7870\r\nCloses #7878', '9', null, null, 'IgorMinar', '2014-06-24T06:24:34Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5268', '37', '7963', 'perf($compile, jqLite): reduce creation of unnecessary jquery objects', 'This removes the creation of many duplicate or unnecessary jQuery objects in the compile/link phases as well as in some jqLite methods.\r\n\r\nMost of the changes are pretty minor and safe (as far as myself and the tests can tell).\r\n\r\nThe only bigger change is exposing `jqLiteData/jqLiteRemoveData` as `jqLite.data/removeData` to match the jQuery equivalent (https://api.jquery.com/jquery.data/). This allows getting/setting data without creating the jQuery wrapper object and allows for the biggest reduction in jQuery objects in compile/link. This also reduces the jqLite objects created in the `scope/isolatedScope/data/inheritedData` methods and simplifies `jqLiteInheritedData`. Note that this change overrides the first commit.\r\n\r\nIf interested I can squash all the commits and maybe add more tests for the jqLite changes.', '6', null, null, 'jbedard', '2014-06-24T08:09:37Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5269', '37', '7964', 'docs (unit testing) : correct spelling error', 'Request Type: docs\n\nHow to reproduce: \n\nComponent(s): \n\nImpact: \n\nComplexity: \n\nThis issue is related to: \n\n**Detailed Description:**\n\n\n\n**Other Comments:**\n\n', '2', null, null, 'laurentqro', '2014-06-24T10:06:35Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5270', '37', '7966', 'Jqlite data leak', 'This PR sits on top of #7942 so only the last commit is relevant here while the previous PR is not merged into master.', '1', null, null, 'petebacondarwin', '2014-06-24T11:29:42Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5271', '37', '7968', 'fix(input): validate minlength/maxlength for non-string values', 'Use viewValue for minlength/maxlength validation if model value is not a\nstring. This allows ngMinlength and ngMaxlength to be used for number inputs.\n\nCloses #7967', '28', null, null, 'caitp', '2014-06-24T13:17:43Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5272', '37', '797', 'fix(forms): Set ng-valid/ng-invalid correctly', '', '1', null, null, 'vojtajina', '2012-03-16T05:03:42Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5273', '37', '7970', 'fix($parse): handle constants as one-time binding expressions', 'Handle constant expressions as one-time binding expressions.\r\nAvoids the infinite digest from\r\nhttps://github.com/angular/angular.js/pull/7960/files#r14136938', '10', null, null, 'lgalfaso', '2014-06-24T16:38:47Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5274', '37', '7973', 'Add common solution for $parse:isecdom', 'Request Type: docs\n\nHow to reproduce: \n\nComponent(s): $parse\n\nImpact: small\n\nComplexity: small\n\nThis issue is related to: \n\n**Detailed Description:**\n\nCommonly this error happen when returning a value in an ng-click handler.\n\nAnd especially with CoffeScript that returns the last lines.\n\n**Other Comments:**\n\nIt\'s sad that there is no more comments on the docs, because that\'s the place this kind of things would be.\n\nIf you google it, most people have the same issue:\n\nhttps://groups.google.com/forum/#!msg/angular/bsTbZ86WAY4/hh_319IrmFoJ\nhttp://stackoverflow.com/questions/23838497/coffeescript-referencing-dom-nodes-in-angular-expressions-is-disallowed\nhttp://jorshasaur.us/referencing-dom-nodes-in-angular-expressions-is-disallowed/', '12', null, null, 'Dorian', '2014-06-24T21:11:05Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5275', '37', '7975', 'fix($AnchorScroll): Don\'t fire scroll event on initialization of autoScr...', '...ollWatch\r\n\r\nCurrently when your application is bootstrapped and you have used a directive that requires $anchorScroll (such as ngInclude), a scroll event will be $evalAsync\'d that can cause the window to unnecessarily scroll to the top.', '2', null, null, 'snapwich', '2014-06-24T22:01:43Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5276', '37', '7976', 'fix(input): improve html5 validation for ngModelOptions', 'This is a minor adjustment over the recent html5 validation fix in order to make it work correctly with ngModelOptions. The gist is that `$commitViewValue` now runs the validation pipeline even if the view value remains empty in order to refresh the validity state.', '42', null, null, 'shahata', '2014-06-24T22:44:50Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5277', '37', '7977', 'feat($resource): Allow functions in action timeout', 'Support functions when configuring actions. This allows the timeout to change with time, when the function returns a number, and allows an action to be cancelled multiple times, when the function returns a new promise.\r\n\r\nCloses #7974', '24', null, null, 'Hartimer', '2014-06-25T00:39:50Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5278', '37', '7978', 'chore(watchr-docs): remove watchr-docs.rb', 'This file hasn\'t changed in forever, and doesn\'t seem to be in use any longer.\n\nThis is primarily to test the new Travis-CI queue, but are we actually using this file anywhere?\nIt doesn\'t look like it should work for the new docs anymore at all.', '2', null, null, 'caitp', '2014-06-25T01:58:42Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5279', '37', '798', 'Scope destroy + better DI inference', '\r\n', '0', null, null, 'IgorMinar', '2012-03-16T17:49:58Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5280', '37', '7980', 'modify orderBy fiter', 'use localeCompare to sort Chinese or Japanese etc., or I suggest it can add a interface for users.', '3', null, null, 'huarse', '2014-06-25T05:49:47Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5281', '37', '7985', 'Update contribute.ngdoc', '\"npm install grunt --save-dev\" is always necessary but is missing in the documentation', '3', null, null, 'spidgorny', '2014-06-25T11:30:08Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5282', '37', '7988', 'fix($interval): do not invoke $apply when invokeApply is false', 'This CL allows $q Deferred objects to avoid invoking $rootScope.$digest, by optionally adding asynchronously invoked functions to a different queue which is processed outside of $digest.\r\n\r\nNeedless to say, this is a hack, and it would be great if there was a better way to do this (such as not using Promises for $interval at all). However, I felt that changing the API to not use promises would have been a much bigger API change than this.\r\n\r\nSerious review needed!\r\n\r\nCloses #7103', '1', null, null, 'caitp', '2014-06-25T17:39:42Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5283', '37', '7990', 'fix($http): don\'t remove content-type header if data is set by request transf...', '...orm\r\n\r\nThe test could arguably also go into the transform section, not sure about that.\r\n\r\nFixes #7910', '2', null, null, 'Narretz', '2014-06-25T18:39:21Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5284', '37', '7991', 'feat(ngModel): bind to getters/setters', 'Currently, you might do this if you want to bind to getters/setters:\r\n\r\n> controller\r\n\r\n```javascript\r\n// ...\r\n$scope.watch(function () {\r\n return myModel.getterSetter();\r\n}, function (newValue) {\r\n $scope.someProp = newValue;\r\n});\r\n\r\n$scope.watch(\'someProp\', function (newValue) {\r\n myModel.getterSetter(newValue);\r\n});\r\n// ...\r\n```\r\n\r\n> template\r\n\r\n```html\r\n<input ng-model=\"someProp\">\r\n```\r\n\r\nThe implementation in this PR changes the semantics of `ngModel` in the following ways:\r\n\r\nIf the expression bound to `ngModel` resolves to a function, the function is invoked to get the current value to be expressed in the DOM. When the binding changes, if the expression bound to `ngModel` resolves to a function (at that time) the function is invoked with the new value.\r\n\r\nThis means instead, you could do this:\r\n\r\n> controller\r\n\r\n```javascript\r\n// ...\r\n$scope.myModel = myModel;\r\n// ...\r\n```\r\n\r\n> template\r\n\r\n```html\r\n<input ng-model=\"myModel.getterSetter\">\r\n```\r\n\r\nI like that to end developers, this feels like \"uniform access\" for common cases. I don\'t like that this means there\'s a difference in semantics between `ngModel` and expressions elsewhere in Angular.\r\n\r\nThis would be a breaking change, but I don\'t think that this would affect any legitimate use cases. The only case I can think of is if hypothetically, you bind to some property that\'s originally a function, overwriting it with a string. I can\'t think of any good reason to write controller code like that.\r\n\r\n@IgorMinar suggested a different syntax so that the difference in semantics is obvious. Something like:\r\n\r\n```html\r\n<input ng-model=\"myModel.getterSetter()\">\r\n```\r\n\r\nI like that this makes the semantics obvious. I don\'t like that this still violates the \"uniform access principle.\"\r\n\r\nCloses #768', '39', null, null, 'btford', '2014-06-26T00:15:13Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5285', '37', '7993', 'docs($q): remove unnecessary $scope.apply wrapping', 'As of Angular 1.2, this kind of thing is no longer necessary (thank goodness!)', '5', null, null, 'domenic', '2014-06-26T05:21:48Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5286', '37', '7995', 'feat($http): upload and download event', 'As a solution for #1934 and opposite for #3606\r\n\r\nYou can add progressCallback using `config.progress`.\r\nWorking for all kind of requests — you can even track progress of `delete` requests.\r\n\r\nPros:\r\n1. No compability breaking — all is working as before\r\n2. Better, cleaner and simplier way then q.notify\r\n\r\nCons:\r\n~~1. No specs and tests here, it\'s just working~~', '21', null, null, 'b1rdex', '2014-06-26T06:12:22Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5287', '37', '7998', 'replaced knockout with durandal', 'To me knockout is a library that does data binding well. Durandal is a framework that uses knockout as it\'s data binding component.', '3', null, null, 'edhedges', '2014-06-26T15:12:05Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5288', '37', '7999', 'fix($timeout/$interval): if invokeApply is false, do not use evalAsync', '$evalAsync triggers a digest, and is unsuitable when it is expected that a\r\ndigest should not occur.\r\n\r\nBREAKING CHANGE\r\n\r\nPreviously, even if `invokeApply` was set to false, a $rootScope digest would occur during promise resolution. Workarounds include manually triggering `$scope.$apply()`, or returning `$q.defer().promise` from a promise callback, and resolving or rejecting it when appropriate.\r\n\r\n```js\r\nvar interval = $interval(function() {\r\n if (someRequirementFulfilled) {\r\n $interval.cancel(interval);\r\n $scope.$apply();\r\n }\r\n}, 100, 0, false);\r\n```\r\n\r\nor:\r\n\r\n```js\r\nvar interval = $interval(function (idx) {\r\n // make the magic happen\r\n}, 1000, 10, false);\r\ninterval.then(function(idx) {\r\n var deferred = $q.defer();\r\n // do the asynchronous magic --- $evalAsync will cause a digest and cause\r\n // bindings to update.\r\n return deferred.promise;\r\n});\r\n```', '21', null, null, 'caitp', '2014-06-26T15:41:28Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5289', '37', '8', 'Allow GETs on resources', 'For rationale/use case take a loot at the commit comments and testcase.', '1', null, null, 'alkis', '2010-09-15T18:37:41Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5290', '37', '8002', 'Update attrs.js', 'fix mistype src->srcset', '3', null, null, 'm-tretyak', '2014-06-26T17:21:11Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5291', '37', '8004', 'fix typo in descriptions and add test to match blank object attribute', 'Request Type: test\n\nHow to reproduce: \n\nComponent(s): misc core\n\nImpact: small\n\nComplexity: small\n\nThis issue is related to: \n\n**Detailed Description:**\n\nwhile investigating #7890 I found a couple of typos in the filter tests, and used the test suite to prove the problem was working as specified. There were no test cases specifically to show the behaviour that I could find, so committed it as an example of matching empty string through use of exact match.\n\n**Other Comments:**\n\ntest(filter): fix typo in descriptions and add test to match blank object attribute\r\n\r\nTwo descriptions contain typo\'s to the word predicate.\r\nAlso, to prove behaviour in ticket 7890, create a new test to display filter\r\n\r\nCloses #7891', '13', null, null, 'rolfyone', '2014-06-27T09:52:57Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5292', '37', '8005', 'feat(shutdown): Add the ability for an app to shutdown', 'Adds a new `$shutdown` service that can be used to shutdown an app and the `$shutdownProvider` that can be used to register tasks that need to be executed when shutting down an app.\r\n\r\nAdded tasks for `$rootElement`, `$rootScope` and `$browser` to be able to shutdown an app\r\n\r\nRefactor `$interval` so it delegates to `$browser` just like `$timeout` does', '7', null, null, 'lgalfaso', '2014-06-27T10:22:46Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5293', '37', '8006', 'fix(httpBackend): should not read statusText when request is aborted', 'Request Type: bug\r\n\r\nHow to reproduce: Abort an XHR request in IE9. Observe \"Error c00c023f\" in the console.\r\n\r\nComponent(s): $http\r\n\r\nImpact: medium\r\n\r\nComplexity: small\r\n\r\n**Detailed Description:**\r\n\r\nCommit 1d2414ca93a0340840ea1e80c48edb51ec55cd48 introduced a regression which breaks IE9 by accessing the `statusText` property of an aborted xhr request. \r\nThere\'s been a similar problem earlier which was fixed with commit 6f1050df4fa885bd59ce85adbef7350ea93911a3.\r\n\r\nThis PR changes the behavior to only access the `statusText` property if the request wasn\'t aborted.', '18', null, null, 'khellang', '2014-06-27T12:16:54Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5294', '37', '8008', 'feat(jqLite): support isDefaultPrevented for triggerHandler dummies', 'triggerHandler sends dummy events to an element, but although the event includes the preventDefault method, there is no way to see if it was called for the event. This is sometimes important when testing directives that use preventDefault', '4', null, null, 'shahata', '2014-06-27T20:49:35Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5295', '37', '8009', 'Use triple equals comparison with typeof operator.', 'Request Type: bug\n\nHow to reproduce: It is just common practice. I guess it is a typo.\n\nComponent(s): misc core\n\nImpact: small\n\nComplexity: small\n\nThis issue is related to: \n\n**Detailed Description:**\n\nIt is common practice for typeof operator to be used with \'===\'.\n\n**Other Comments:**\n\n', '1', null, null, 'esarbanis', '2014-06-27T21:33:10Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5296', '37', '8011', 'Update controller.ngdoc', 'If it is not recommended to use a constructor function to create controllers, why should it be shown as possible in the documentation? \r\n\r\nOne of the most common complaints about AngularJS is that it doesn\'t enforce any variety of convention, this is intentional and I generally like this however if we can avoid outright bad implementations or examples I believe we should.\r\n\r\nThe only real reason to avoid doing so is to avoid introducing the potential new user to a somewhat complex new concept, however it is better to introduce new users to best practices instead of overly simplified examples.\r\n\r\n', '7', null, null, 'cranesandcaff', '2014-06-28T01:13:42Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5297', '37', '8012', 'docs(guide/$location): fix a typo', 'Change \"window.location.path\" to \"window.location.pathname\".', '1', null, null, 'archer308', '2014-06-28T10:00:26Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5298', '37', '8013', 'fix($location): right button click in firefox', 'When user click right mouse button on links in firefox, browser goes to\r\nlink. See http://jsfiddle.net/kromxr/76fKM/12/\r\n\r\nCloses #7984', '12', null, null, 'krom-xr', '2014-06-28T10:12:10Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5299', '37', '8015', 'Fix a typo', '', '1', null, null, 'elnur', '2014-06-28T12:47:53Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5300', '37', '8016', 'Make it clear that services can\'t be injected into .config() and .run()', 'See: http://stackoverflow.com/a/12903544/1223483 and https://docs.angularjs.org/guide/module#module-loading-dependencies for additional details.', '4', null, null, 'OnkelTem', '2014-06-28T15:05:25Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5301', '37', '8017', 'docs(input): fix a typo', 'Undesirable char in input[date] doc.', '2', null, null, 'ncuillery', '2014-06-28T16:56:17Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5302', '37', '8018', 'style(Angular.js): remove extra whitespace', 'style(Angular.js): remove extra whitespace.', '2', null, null, 'vaibhavkhl', '2014-06-29T10:39:29Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5303', '37', '8020', 'style(injector.js): added whitespace', 'style(injector.js): code formatting(added whitespace).', '7', null, null, 'vaibhavkhl', '2014-06-29T18:15:06Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5304', '37', '8022', 'Removed loc that will never be reached', 'Request Type: chore\n\nHow to reproduce: \n\nComponent(s): ngAnimate\n\nImpact: small\n\nComplexity: small\n\nThis issue is related to: \n\n**Detailed Description:**\n\nThe if will never be true, because if it was, the return on line 1136 will already have been reached.\n\n**Other Comments:**\n\n', '2', null, null, 'Burgov', '2014-06-30T14:47:50Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5305', '37', '8024', 'style: added whitespace', 'style(multiple files): code formatting(added whitespace)', '1', null, null, 'vaibhavkhl', '2014-06-30T18:55:18Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5306', '37', '8025', 'V1.2.x', 'Cherry-picks ', '2', null, null, 'caguillen214', '2014-06-30T19:04:16Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5307', '37', '8026', 'chore(jshint): enforce jshint for tests', 'Closes #8023', '5', null, null, 'shahata', '2014-06-30T20:03:07Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5308', '37', '8031', 'docs(changelog): add missing $http fix', '', '6', null, null, 'Narretz', '2014-07-01T09:03:41Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5309', '37', '8032', 'Copy prototype bug with enumerable properties', 'Per [this thread](https://github.com/angular/angular.js/commit/b59b04f98a0b59eead53f6a53391ce1bbcbe9b57#commitcomment-6844633)\r\n\r\nCreating a placeholder for a possible fix which includes associated tests.', '19', null, null, 'myitcv', '2014-07-01T11:23:15Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5310', '37', '8034', 'fix(copy): preserve property descriptors', 'Instead of values being simply copied, this change allows to preserve\r\ndefinitions of own properties. Thus, enumerable (or not), writable (or\r\nnot), getter/setter, etc. property definitions are preserved across copies. It\r\nimproves change from b59b04f9 preserving prototype chain.\r\n\r\nAs a side effect, it also includes previously ignored non-enumerable properties\r\nby using `Object.getOwnPropertyNames` to iterate **every** own properties instead\r\nof `for ... in ...` + `hasOwnProperty`.', '5', null, null, 'gentooboontoo', '2014-07-01T14:47:08Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5311', '37', '8036', 'docs(changelog): add missing $http fix', '', '4', null, null, 'Narretz', '2014-07-01T16:35:17Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5312', '37', '8037', 'feat($controller): disable using global controller constructors', '**WIP, do not merge** I still have to fix some examples and E2E tests.\r\n\r\nBREAKING CHANGE\r\n\r\nWith the exception of simple demos, it is not helpful to use globals for controller constructors. This adds a new method to `$controllerProvider` to re-enable the old behavior, but disables this feature by default.', '8', null, null, 'btford', '2014-07-01T17:58:15Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5313', '37', '804', 'feat(scope.$eval): Allow passing locals to the expression', '', '1', null, null, 'vojtajina', '2012-03-19T06:47:04Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5314', '37', '8041', 'feat(input): support constant expressions for ngTrueValue/ngFalseValue', 'ngTrueValue and ngFalseValue now support parsed expressions which the parser\ndetermines to be constant values.\n\nBREAKING CHANGE:\n\nPreviously, these attributes would always be treated as strings. However, they\nare now parsed as expressions, and will throw if an expression is\nnon-constant.\n\nTo convert non-constant strings into constant expressions, simply wrap them in\nan extra pair of quotes, like so:\n\n <input type=\"checkbox\" ng-model=\"...\" ng-true-value=\"\'truthyValue\'\">\n\n(This is an alternative solution to #5346, /CC @IgorMinar PTAL)', '3', null, null, 'caitp', '2014-07-02T00:31:42Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5315', '37', '8042', 'feat(jqLite): cross-browser support for float style property', 'Change css() function to support `css(\'float\', \'value\')` in all major\r\nbrowsers, since Firefox only accepts `cssFloat` property and Chrome\r\nsupports both.', '8', null, null, 'tlewin', '2014-07-02T02:56:12Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5316', '37', '8046', 'feat(ngRepeat): provide support for aliasing filtered repeater results as a scope member', 'ngRepeat can now alias the snapshot of the list of items evaluated after all filters have\r\nbeen applied as a property on the scope. Prior to this fix, when a filter is applied on a\r\nrepeater, there is no way to trigger an event when the repeater renders zero results.\r\n\r\nCloses #5919', '11', null, null, 'matsko', '2014-07-02T10:43:15Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5317', '37', '8047', 'fix(input): trigger modelValue update on viewValue property changes', 'If the $viewValue is an object then we should trigger a model update\r\nif properties on that object change.\r\n\r\nPreviously, we were only checking for change of object identity.\r\n\r\nCloses #7965', '5', null, null, 'petebacondarwin', '2014-07-02T12:12:52Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5318', '37', '8048', 'Update minor doc typo.', 'Request Type: docs\n\nHow to reproduce: \n\nComponent(s): $compile\n\nImpact: medium\n\nComplexity: small\n\nThis issue is related to: \n\n**Detailed Description:**\n\n\n\n**Other Comments:**\n\n', '3', null, null, 'mikehaas763', '2014-07-02T14:50:02Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5319', '37', '8050', 'Updating $location.search() jsdoc signature', 'This comes from the way \"toKeyValue\" specifically checks for === true.\r\n\r\nBy the way, are the short codes in the description e.g. feat(Some feature) documented anywhere?', '2', null, null, 'jpsimons', '2014-07-02T17:39:43Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5320', '37', '8052', 'chore(e2e): update protractor to 1.0.0-rc2 and add more logging', 'Use the new options from the reporter to add more logging to end to end tests,\r\nand increase the Jasmine test timeout from 30 seconds to 60 seconds to allow for\r\nlegitimately long-lasting tests.', '7', null, null, 'juliemr', '2014-07-02T21:22:07Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5321', '37', '8054', 'chore(tests): fix warning about a non-unique element locator in e2e test...', '...s', '3', null, null, 'juliemr', '2014-07-02T23:10:30Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5322', '37', '8055', 'feat($compile): add partialDigest property in directive definition', '', '35', null, null, 'rodyhaddad', '2014-07-03T00:25:02Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5323', '37', '8056', 'feat(form): $submitted state', 'Added new state to form:\r\n- it sets to true when form is submitted\r\n- it sets back to false when $setPristine is called on the form', '15', null, null, 'nicoabie', '2014-07-03T03:35:21Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5324', '37', '8060', 'docs(i18n.ngdoc): typo', 'Request Type: docs\n\nHow to reproduce: \n\nComponent(s): \n\nImpact: small\n\nComplexity: small\n\nThis issue is related to: \n\n**Detailed Description:**\n\nJust a typo in the docs\n\n**Other Comments:**\n\n', '5', null, null, 'dmatteo', '2014-07-03T13:46:30Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5325', '37', '8065', 'Fix docs for template and replace properties', 'Request Type: docs\n\nHow to reproduce: \n\nComponent(s): $compile\n\nImpact: large\n\nComplexity: small\n\nThis issue is related to: \n\n**Detailed Description:**\n\n\n\n**Other Comments:**\n\nSee issue #8062', '3', null, null, 'Izhaki', '2014-07-03T16:25:53Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5326', '37', '8067', 'WIP STAGING for #8300 [[no-merge]]', 'Staging ground for $q improvements in #8300, this is a work in progress.\r\n\r\nThe work is in 3 stages, each building on the previous stage:\r\n\r\n1. Add constructor for promises (ES6-style interface, landed in f3a763fd2edd8a37b80c79a5aaa1444460cd2df7)\r\n2. Port subset of functionality from [Bluebird](github.com/petkaantonov/bluebird), we can now get a perf improvement by sticking methods used for each promise in the prototype chain and avoid creating garbage.\r\n3. Modify the error logging behaviour to be similar to Bluebird, by only logging an error for unhandlde rejections.\r\n\r\nThis is somewhat challenging, as promises in $q currently behave somewhat inconsistently (sometimes rethrowing errors, sometimes not, etc), and it will take some time to finalize this. Hence, staging ground.', '28', null, null, 'caitp', '2014-07-03T18:13:03Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5327', '37', '8069', 'docs(tutorial/step_05): fix typo', '', '3', null, null, 'delikat', '2014-07-03T21:05:14Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5328', '37', '8070', 'fix(parseKeyValue): ignore properties in prototype chain.', 'Previously, properties (typically functions) in the prototype chain\n(Object.prototype) would shadow query parameters, and cause them to be\nserialized incorrectly.\n\nThis CL guards against this by using hasOwnProperty() to ensure that only own\nproperties are a concern.\n\nFixes #8068', '3', null, null, 'caitp', '2014-07-03T21:25:47Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5329', '37', '8071', 'docs(error/$rootScope/inprog): fix $timeout typo', '', '2', null, null, 'chriskuehl', '2014-07-03T21:30:04Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5330', '37', '8073', 'fix(parseKeyValue): ignore properties in prototype chain.', 'Previously, properties (typically functions) in the prototype chain\n(Object.prototype) would shadow query parameters, and cause them to be\nserialized incorrectly.\n\nThis CL guards against this by using hasOwnProperty() to ensure that only own\nproperties are a concern.\n\n(CI testing for IE8)', '2', null, null, 'caitp', '2014-07-04T00:45:37Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5331', '37', '8075', 'fix(jqLite): use .children to fetch child elements but fallback to .childNodes for SVGs in IE', 'e35abc9d broke `jqLiteDealoc` on SVG elements in IE because `.children` is not supported on SVGs in IE (https://developer.mozilla.org/en-US/docs/Web/API/ParentNode.children#Browser_compatibility).\r\n\r\nThis change adds an SVG test and fixes it by doing `.children || .childNodes`. I also added `.children` in a few more places in addition to where e35abc9d originally did. Although if the `.childNodes` fallback is always required for IE, is it still worth using `.children`?', '5', null, null, 'jbedard', '2014-07-04T08:34:30Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5332', '37', '8082', 'Update step_09.ngdoc', 'Request Type: docs\n\nHow to reproduce: \n\nComponent(s): \n\nImpact: small\n\nComplexity: \n\nThis issue is related to: \n\n**Detailed Description:**\n\n\n\n**Other Comments:**\n\nLink to the list of filters rather than the filterProvider.', '2', null, null, 'wcn3', '2014-07-06T03:46:41Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5333', '37', '8086', 'V1.2.x', '', '4', null, null, 'priyanka311', '2014-07-07T01:27:49Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5334', '37', '8087', 'Adds angular.module.list() method that will return a list of all loaded modules.', 'Hello!\r\n\r\nJust a small addition to module creation mechanism that allows to track dynamically loaded modules without additional code from developer.\r\n\r\nangular.module(\"module\", []);\r\nangular.module.list();\r\nreturns\r\n[ \"ngLocale\", \"ng\", \"module\" ]', '3', null, null, 'burdiuz', '2014-07-07T11:45:55Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5335', '37', '809', 'Fix compile merge interpolated css class', '', '0', null, null, 'vojtajina', '2012-03-20T03:13:38Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5336', '37', '8091', 'Update step_04.ngdoc', 'Given the snippets for the phones, the method getNames() from the protractor test compares the name+snippet with name only, therefor the protractor tests given in the example fail without this addition.', '5', null, null, 'ioan-ardelean', '2014-07-07T15:27:30Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5337', '37', '8094', 'chore(tests): increase timeout for navigation in ng-href tests to avoid timeouts', 'Previously, the timeout for ng-href tests waiting for the url change after a link\r\nwas clicked was only 1000 ms. This was causing some flaky timeouts, so increasing\r\nthe wait to 5000 ms.', '3', null, null, 'juliemr', '2014-07-07T17:29:20Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5338', '37', '8096', 'fix(input): escape forward slash in email regexp', 'This messed up with syntax coloring and variable hovering in chrome developer tools and made debugging really difficult.', '4', null, null, 'shahata', '2014-07-07T20:23:33Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5339', '37', '8098', 'docs(error/$sce/insecurl): fix links to $sce and $sceDelegateProvider', 'Request Type: docs\n\nHow to reproduce: \n\nComponent(s): \n\nImpact: \n\nComplexity: \n\nThis issue is related to: \n\n**Detailed Description:**\n\n\n\n**Other Comments:**\n\nsee title', '2', null, null, 'fuqcool', '2014-07-07T21:02:51Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5340', '37', '810', 'Random fixes', '', '1', null, null, 'IgorMinar', '2012-03-20T07:41:50Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5341', '37', '8101', 'chore($parse): remove simpleGetter optimizations as they\'re no longer valid', 'This removes the simpleGetter optimization\r\n\r\nLooking back at the numbers with Igor, and why it was introduced in the first place (864b2596b246470cca9d4e223eaed720f4462319), the optimization is no longer doing any good.\r\n\r\nRelated #7540', '2', null, null, 'rodyhaddad', '2014-07-08T07:24:14Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5342', '37', '8102', 'docs(filter/filter): adding not documented feature', 'Request Type: docs\r\nComponent(s): misc core\r\nImpact: None\r\nComplexity: small\r\nMissing feature documentation. Will be helpfull.\r\nUndocumented feature is really useful.', '4', null, null, 'guilbep', '2014-07-08T09:18:38Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5343', '37', '8106', 'fix(select): auto-select new option that is marked as selected', 'When adding a new <option> element, if the DOM of this option element\r\nstates that the element is marked as `selected`, then select the new\r\n<option> element\r\n\r\nCloses #6828\r\n\r\nThis is a new PR based on a wrong merge done at #7136', '2', null, null, 'lgalfaso', '2014-07-08T18:01:18Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5344', '37', '8107', 'Include method to get an existing cache object.', '', '4', null, null, 'sdbondi', '2014-07-08T18:39:35Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5345', '37', '8108', 'angular.forEach passes object being iterated over as 3rd arg to callback', 'This is for consistency with native Array.prototype.forEach() API, and it is also sometimes useful!', '6', null, null, 'onlywei', '2014-07-08T19:16:45Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5346', '37', '811', 'feat(input.radio): Allow value to be interpolated', '', '0', null, null, 'vojtajina', '2012-03-20T20:27:11Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5347', '37', '8110', 'docs(ngModel): objects passed to $setViewValue should be copied', 'Closes #8095', '1', null, null, 'shahata', '2014-07-08T20:13:53Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5348', '37', '8111', 'chore(e2e): update protractor to 1.0.0-rc4', 'This change contains a stability improvement to use data URLs instead of\r\nabout:blank for resetting the URL.', '7', null, null, 'juliemr', '2014-07-08T20:18:12Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5349', '37', '8112', 'fix(orderBy): changes orderBy to use case sensitive comparison to break ...', '...ties on strings\r\n\r\nPreviously running orderBy on an array of strings such as [\'A cow\', \'a cow\'] would\r\nresult in [\'A cow\', \'a cow\'], regardless of the value of reverseOrder. This is because orderBy cast\r\nall strings to lowercase before comparing them.\r\n\r\nThis commit changes the behavior to result in [\'a cow\', \'A cow\'] when reverseOrder is true,\r\nand [\'A cow\', \'a cow\'] when reverse order is false.', '16', null, null, 'deathbob', '2014-07-08T21:10:39Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5350', '37', '8113', 'fix($parse): correctly assign expressions who\'s path is undefined and that use brackets notation', 'Closes #8039', '4', null, null, 'rodyhaddad', '2014-07-08T22:45:00Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5351', '37', '8117', 'docs(guide): switch from ngmin to ng-annotate', 'Per last AWG meeting.\r\n\r\nng-annotate is an independent alternative to ngmin that is non-invasive\r\nand more performant. For the background around the switch, see the discussion\r\nat:\r\nhttps://github.com/btford/ngmin/issues/93\r\n\r\ncc @IgorMinar @olov', '3', null, null, 'mzgol', '2014-07-09T09:13:32Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5352', '37', '812', '(docs) testing_dom_element Explicitly creating isolate scope', 'Elaborated on isolate scope.', '5', null, null, 'danielzen', '2012-03-21T16:47:45Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5353', '37', '8120', 'Some clarification on the \'matches\' terminology.', 'Request Type: docs\n\nHow to reproduce: \n\nComponent(s): $compile\n\nImpact: medium\n\nComplexity: small\n\nThis issue is related to: \n\n**Detailed Description:**\n\n\n\n**Other Comments:**\n\nAdded example with reference to Mozilla\'s Element.matches.\r\nAlso added another example of Element directive.', '3', null, null, 'Izhaki', '2014-07-09T10:05:58Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5354', '37', '8121', 'Added some extra sub-headings for clarity', 'Request Type: docs\n\nHow to reproduce: \n\nComponent(s): $compile\n\nImpact: medium\n\nComplexity: \n\nThis issue is related to: \n\n**Detailed Description:**\n\n\n\n**Other Comments:**\n\nAdded `Normalization` and `Directive types`` subheadings to the `Matching directive` heading', '2', null, null, 'Izhaki', '2014-07-09T10:13:28Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5355', '37', '8122', 'Update index.ngdoc', 'Added information how to set path to chrome binary', '8', null, null, 'psakar', '2014-07-09T10:14:21Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5356', '37', '8124', 'Update bootstrap.ngdoc', 'Update incorrect variable name in html.', '3', null, null, 'mjhamm75', '2014-07-09T15:52:25Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5357', '37', '8125', 'fix $browser: change to encodeURIComponent and decodeURIComponent for co...', 'Request Type: bug\n\nHow to reproduce: Include special characters (€) in a cookie and it will not decode correctly.\n\nComponent(s): ngCookies\n\nImpact: small\n\nComplexity: small\n\nThis issue is related to: \n\n**Detailed Description:**\n\n\n\n**Other Comments:**\n\nthe self.cookies method in $browser was using escape and unescape to handle the cookie name and value. These methods are deprecated and cause problems with some special characters (€). The method has been changed to use the replacement encodeURIComponent and decodeURIComponent.', '10', null, null, 'andrewtarry', '2014-07-09T16:18:07Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5358', '37', '8130', 'error correction', 'In the example did not match the controller name in the script and HTML code', '3', null, null, 'sank', '2014-07-10T04:21:19Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5359', '37', '8133', 'Corrected controller name in html binding', 'Request Type: bug\n\nHow to reproduce: Go to https://docs.angularjs.org/api/ng/filter/orderBy and check the example in the bottom\n\nComponent(s): \n\nImpact: small\n\nComplexity: small\n\nThis issue is related to: \n\n**Detailed Description:**\n\nThis is a very tiny problem with one of the demos on the orderBy doc page.\n\n**Other Comments:**\n\nController was set to Ctrl and controller was named ExampleController in js. Changed the html binding to ExampleController to fix the demo.', '3', null, null, 'sqdk', '2014-07-10T14:20:49Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5360', '37', '8136', 'fix(jqLite): use getElementsByTagName for dealoc-ing elements, cz of SVG on IE', 'See comments in #8075', '4', null, null, 'rodyhaddad', '2014-07-10T18:36:58Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5361', '37', '8139', 'docs (scope.ngdoc): add missing \'.\' ', '', '4', null, null, 'skeller88', '2014-07-10T20:56:20Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5362', '37', '814', 'feat(jqLite): make injector() and scope() work with the document object', 'For typical app that has ng-app directive on the html element, we now can do:\r\n\r\nangular.element(document).injector() or .injector()\r\nangular.element(document).scope() or .scope()\r\n\r\ninstead of:\r\n\r\nangular.element(document.getElementsByTagName(\'html\')[0]).injector()\r\n...', '0', null, null, 'IgorMinar', '2012-03-21T22:18:03Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5363', '37', '8140', 'Update ngInclude.js', 'The @eventOf tag was causing a warning on build. I removed the tag and changed the @name to match the previous comment blocks.', '4', null, null, 'jesselpalmer', '2014-07-11T04:26:42Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5364', '37', '8141', 'feat(ngTransclude): allow ngTransclude to be used as an element', '', '3', null, null, 'IgorMinar', '2014-07-11T04:44:26Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5365', '37', '8146', 'add number 6 for jshint with ecmascript3 option', 'for ie 8 and lower', '3', null, null, 'MrJH', '2014-07-11T12:09:04Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5366', '37', '8147', 'refactor(bootstrap): Remove support for old bootstrap mechanisms', 'Remove support for bootstrap detection using the element id or the element class. E.g.\r\n\r\n```\r\n<div id=\"ng-app\">...</div>\r\n<div class=\"ng-app: module\">...</div>\r\n```\r\n\r\nRemoves reference to bootstrap using IE7\r\n\r\nBREAKING CHANGE:\r\n\r\nIf using any of the mechanisms specified above, then migrate by\r\nspecifying the attribute `ng-app` to the root element. E.g.\r\n\r\n```\r\n<div ng-app=\"module\"\r\n```', '11', null, null, 'lgalfaso', '2014-07-11T12:27:20Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5367', '37', '8149', 'Update index.ngdoc', '', '3', null, null, 'raghzz', '2014-07-11T14:59:35Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5368', '37', '8154', 'Fix #6128 and #8150', 'Request Type: bug\r\n\r\nHow to reproduce: it(\'should not double quote dates\', function() {\r\n $httpBackend.expect(\'GET\', \'/url?date=2014-07-15T17:30:00.000Z\').respond(\'\');\r\n $http({url: \'/url\', params: {date:new Date(\'2014-07-15T17:30:00.000Z\')}, method: \'GET\'});\r\n })\r\n\r\nCurrently, datetimes passed into $http.get params are wrapped in double quotes and then escaped giving urls like this: /url?date=%222014-07-15T17:30:00.000Z%22\r\n\r\nComponent(s): $http\r\n\r\nImpact: large\r\n\r\nComplexity: small\r\n\r\nThis issue is related to: \r\n\r\n**Detailed Description:**\r\n\r\n\r\n\r\n**Other Comments:**\r\n\r\nSee comments on #6128, #8150', '6', null, null, 'danbarua', '2014-07-11T16:42:36Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5369', '37', '8155', 'Update animate.js', 'You need to add the ng-leave class to ng-leave-active in order for the leave animation to work', '11', null, null, 'standup75', '2014-07-11T17:06:51Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5370', '37', '8157', 'test(jqLite): make iframe contents() test less flaky', null, '3', null, null, 'caitp', '2014-07-11T19:54:40Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5371', '37', '8158', 'fix(select): force visual update in IE', 'IE9, IE10 and IE11 would always show the first <option> as\r\nselected when the user moves from a null <option>\r\nto a non-null one in a non-null <select>.\r\nEven though the model was being updated correctly,\r\nvisually, the first <option> always appeared selected.\r\n\r\nSetting the `selected` property twice in a row\r\nseems to fix it in all the three versions mentioned above.\r\n\r\nCloses #7692\r\n\r\n----\r\n\r\nI doubt we can actually write tests for this, since it\'s only visual', '1', null, null, 'rodyhaddad', '2014-07-11T20:41:37Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5372', '37', '8160', 'adds xhrFields to $http config object', 'The properties of the `xhrFields` object is set on the XHR object making it possible to set non-standard properties. It is also possible to set the object on `$http.defaults` to use it globally. Please note that this will not work for certain non-standard read-only properties specified by Mozilla, such as `mosSystem` and `mozAnon` as they must be passed throught the constructor.\r\n\r\n\r\n', '14', null, null, 'sjurba', '2014-07-11T23:29:37Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5373', '37', '8161', 'fix(jqLite): .css() retrieves computed style also', 'fixes #2866 ', '13', null, null, 'sagens42', '2014-07-11T23:51:09Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5374', '37', '8163', 'doc updates', 'Request Type: docs\n\nHow to reproduce: \n\nComponent(s): $http\n\nImpact: small\n\nComplexity: small\n\nThis issue is related to: \n\n**Detailed Description:**\n\nThe @methodOf tag was causing a warning on build. I removed the tag and changed the @name to match the previous comment blocks.\n\n**Other Comments:**\n\n', '1', null, null, 'jesselpalmer', '2014-07-12T04:25:10Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5375', '37', '8168', 'contribute doc updated', 'Some of the text in the \'Building AngularJS\' section shows up in red. I changed the way the section is formatted, so this no longer happens. The steps in this section now matches the other sections on the page.', '3', null, null, 'jesselpalmer', '2014-07-13T01:32:01Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5376', '37', '8169', 'docs(misc/contribute): fix syntax highlighting of URLS', 'Closes #8168', '4', null, null, 'caitp', '2014-07-13T02:07:30Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5377', '37', '8170', 'removed invalid jsdoc tag', 'The @methodOf tag was causing a warning on build. I removed the tag and changed the @name to match the previous comment blocks.', '4', null, null, 'jesselpalmer', '2014-07-13T03:55:07Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5378', '37', '8171', 'docs(misc/faq): faq minor updates', 'Hyperlinked the email address and added a hyphen to \'client side\'. This was originally in #8163. I\'ll make sure to remove unnecessary commits from original PR instead of closing it and creating a new one it next time.', '2', null, null, 'jesselpalmer', '2014-07-13T05:00:50Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5379', '37', '8173', 'Updated e2e spec to remove warning', 'Request Type: docs\n\nHow to reproduce: the bug is fixed already in the code, but the document was not updated\n\nComponent(s): \n\nImpact: small\n\nComplexity: small\n\nThis issue is related to: \n\n**Detailed Description:**\n\nIn step-6 of angular phonecat tutorial, the node snippet for protractor test is not up to date. The code was giving a warning message which has already been updated but in the step 6, it still shows the old code.\n\n**Other Comments:**\n\nlement(by.css(.phones li a)).click();\n\nselenium will throw a warning message that more then one element found.\n\nelement.all(by.css(\'.phones li a\')).first().click(); fixes the issue', '5', null, null, 'vikramsoni2', '2014-07-13T10:39:05Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5380', '37', '8175', 'Update directive.ngdoc', 'In the function directive,the scope option is changed:\r\nscope: {\r\n customerInfo: \'=info\'\r\n}\r\n==>>\r\nscope:{\r\ncustomerInfo: \'@info\' // >=1.3.0v\r\n}', '3', null, null, 'jincdream', '2014-07-13T14:39:19Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5381', '37', '8176', 'refactor(src/angular) adds a boolean helper function to check for private object', '', '3', null, null, 'jesselpalmer', '2014-07-14T02:02:02Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5382', '37', '8177', 'Update forms.ngdoc', 'The controller name defined in script.js is \"ExampleController\". But name \"Contorller\" is used in html. Fix the controller name. ', '3', null, null, 'HaoWu', '2014-07-14T06:31:31Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5383', '37', '819', 'Typo and syntax error in the recent documentation.', 'Typo and syntax error in the recent documentation.', '1', null, null, 'mkotsur', '2012-03-23T08:35:08Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5384', '37', '8190', 'fix($rootScope): remove support for a watch listener to be a string', 'BREAKING CHANGE:\r\n\r\nPreviously, it was possible for a listener passed to $watch\r\nto be a string, interpreted as an angular expresison. This is no longer supported.\r\nThe listener now has to be a function.\r\nPassing a listener to $watch is still optional.', '5', null, null, 'rodyhaddad', '2014-07-14T16:51:03Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5385', '37', '8191', 'fix(csp): fix autodetection of CSP + better docs', 'CSP spec got changed and it is no longer possible to autodetect if a policy is\r\nactive without triggering a CSP error:\r\n\r\nhttps://github.com/w3c/webappsec/commit/18882953ce2d8afca25f685557fef0e0471b2c9a\r\n\r\nNow we use `new Function(\'\')` to detect if CSP is on. To prevent error from this\r\ndetection to show up in console developers have to use the ngCsp directive.\r\n\r\n(This problem became more severe after our recent removal of `simpleGetterFn`\r\n which made us depend on function constructor for all expressions.)\r\n\r\nCloses #8162', '10', null, null, 'IgorMinar', '2014-07-14T17:33:54Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5386', '37', '8192', 'fix: text that looks like an html tag but is not causes [$sanitize:badparse] error', 'The provided unit test fails with this error.\r\n\r\n```\r\nError: [$sanitize:badparse] The sanitizer was unable to parse the following block of html: <\r\nnonEndingTag href <nonEndingTag href\r\n```\r\n\r\nThe provided change fixes it.', '5', null, null, 'sylvain-hamel', '2014-07-14T18:10:51Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5387', '37', '8193', 'fix: text that looks like an html tag but is not causes [$sanitize:badparse] error', 'The provided unit test fails with this error.\r\n\r\n```\r\nError: [$sanitize:badparse] The sanitizer was unable to parse the following block of html: <\r\nnonEndingTag href <nonEndingTag href\r\n```\r\n\r\nThe provided change fixes it.\r\n\r\nCan you please backport the fix into v1.2.x as this is a show stopper for us. Thanks', '29', null, null, 'sylvain-hamel', '2014-07-14T19:07:18Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5388', '37', '8197', 'docs(guide/unit-testing): add info on testing element transclude directives', '\r\nCloses #4505', '6', null, null, 'petebacondarwin', '2014-07-14T21:41:31Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5389', '37', '8199', 'docs(guide/concepts.ngdoc) protocol relative URL', 'Request Type: bug\n\nHow to reproduce: Open the angular docs from https: https://docs.angularjs.org/guide/concepts\n\nComponent(s): \n\nImpact: small\n\nComplexity: small\n\nThis issue is related to: \n\n**Detailed Description:**\n\n\n\n**Other Comments:**\n\nWhen accessing the docs from https, the \"Accessing the backend\" example fails because it contains a hard coded protocol. By making the URL protocol relative, the example should work over http and https.', '4', null, null, 'nickvdyck', '2014-07-15T11:14:49Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5390', '37', '82', 'toJson() update', 'Comments before rebase:\nhttps://github.com/vojtajina/angular.js/commit/9313cd4b3d586335a98d324255d0dfe1261fbce2\nhttps://github.com/vojtajina/angular.js/commit/dfe18b2d563a5512cd5506c905d74b0216f3d475\nhttps://github.com/vojtajina/angular.js/commit/52ec2bc5caa651278c1d607d604b291b3ab787c3\nhttps://github.com/vojtajina/angular.js/commit/0d911b37ee40cd434f790a390e99fa1c54d82614', '6', null, null, 'vojtajina', '2010-10-25T21:04:26Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5391', '37', '820', 'Bugs', '', '0', null, null, 'mhevery', '2012-03-23T20:43:47Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5392', '37', '8200', 'improve interpolation of params in ngRoute', 'Request Type: bug\n\nHow to reproduce: 6f776102b23f413f7f2443ef\n\n1. create a route with optional parameters, eg. $routeProvider.when(\'/profile/:userId?\', ...)\n\n2. angular will add the automatic redirect with or without the trailing /, in this case \'/profile/userId?/\'\n\n3. point your browser to the redirect http://localhost/#!/profile/0/, you\'ll see the encoded ? (%3F) at the end of the url: http://localhost/#!/profile/0%3F\n\nComponent(s): ngRoute\n\nImpact: medium\n\nComplexity: small\n\nThis issue is related to: \n\n**Detailed Description:**\n\nIn line with #5746, this changes how parameters are interpolated in redirectTo strings.\n\nFirst, I added a test case (it\'s my first in Javascript ever, so bear with me) which exhibits the failure:\n\n```\n Expected \'/bar/id1/subid3?/23\' to equal \'/bar/id1/subid3/23\'.\n Error: Expected \'/bar/id1/subid3?/23\' to equal \'/bar/id1/subid3/23\'.\n at null.<anonymous> (/home/vtc/src/angular.js/test/ngRoute/routeSpec.js:826:34)\n at Object.invoke (/home/vtc/src/angular.js/src/auto/injector.js:801:17)\n at workFn (/home/vtc/src/angular.js/src/ngMock/angular-mocks.js:2187:20)\n at window.inject.angular.mock.inject (/home/vtc/src/angular.js/src/ngMock/angular-mocks.js:2159:42)\n at null.<anonymous> (/home/vtc/src/angular.js/test/ngRoute/routeSpec.js:822:7)\n Expected \'/bar/id1/?/23\' to equal \'/bar/id1/23\'.\n Error: Expected \'/bar/id1/?/23\' to equal \'/bar/id1/23\'.\n at null.<anonymous> (/home/vtc/src/angular.js/test/ngRoute/routeSpec.js:832:34)\n at Object.invoke (/home/vtc/src/angular.js/src/auto/injector.js:801:17)\n at workFn (/home/vtc/src/angular.js/src/ngMock/angular-mocks.js:2187:20)\n at window.inject.angular.mock.inject (/home/vtc/src/angular.js/src/ngMock/angular-mocks.js:2159:42)\n at null.<anonymous> (/home/vtc/src/angular.js/test/ngRoute/routeSpec.js:822:7)\n Expected \'/path/foovalue/barvalue*/1\' to equal \'/path/foovalue/barvalue/1\'.\n Error: Expected \'/path/foovalue/barvalue*/1\' to equal \'/path/foovalue/barvalue/1\'.\n at null.<anonymous> (/home/vtc/src/angular.js/test/ngRoute/routeSpec.js:837:34)\n at Object.invoke (/home/vtc/src/angular.js/src/auto/injector.js:801:17)\n at workFn (/home/vtc/src/angular.js/src/ngMock/angular-mocks.js:2187:20)\n at window.inject.angular.mock.inject (/home/vtc/src/angular.js/src/ngMock/angular-mocks.js:2159:42)\n at null.<anonymous> (/home/vtc/src/angular.js/test/ngRoute/routeSpec.js:822:7)\n```\n\nAlas, the fix from Pasvaz in #5746 lead to an error too:\n\n```\n Expected \'/bar/id1//23\' to equal \'/bar/id1/23\'.\n Error: Expected \'/bar/id1//23\' to equal \'/bar/id1/23\'.\n at null.<anonymous> (/home/vtc/src/angular.js/test/ngRoute/routeSpec.js:832:34)\n at Object.invoke (/home/vtc/src/angular.js/src/auto/injector.js:801:17)\n at workFn (/home/vtc/src/angular.js/src/ngMock/angular-mocks.js:2187:20)\n at window.inject.angular.mock.inject (/home/vtc/src/angular.js/src/ngMock/angular-mocks.js:2159:42)\n at null.<anonymous> (/home/vtc/src/angular.js/test/ngRoute/routeSpec.js:822:7)l\n```\n\nNote the doubled slash, which is kind of awkward. So, a slash should be removed when the optional parameter is missing.\n\nNow string interpolation is done similar to the generation of the regexp in route, using a replace function.\n\nAll good, tests pass.\n\n**Other Comments:**\n\nI don\'t know what your preference is, should I reorder the commits in order to keep the tests passing for every single commit?', '24', null, null, 'avdv', '2014-07-15T11:30:18Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5393', '37', '8202', 'Optimise \'for loops\' with cached length', 'http://jsperf.com/angularjs-foreach-vs-native-foreach/17\r\n\r\nA little optimisation can improve the forEach method within AngularJS - although its better to use native JS and simplify your data which you want to iterate over:\r\n\r\nvar i = 0,arrLen = arr.length;\r\nfor (; i < arrLen; i++) {\r\n arr[i];\r\n}\r\n\r\n695,501\r\n±0.15%\r\nfastest', '16', null, null, 't0mtaylor', '2014-07-15T13:14:39Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5394', '37', '8203', 'docs(ngValue) Replace input[select] with option for clarity', 'Request Type: docs\n\nHow to reproduce: \n\nComponent(s): forms\n\nImpact: \n\nComplexity: small\n\nThis issue is related to: \n\n**Detailed Description:**\n\nIt is impossible to create an `input[select]`, so it appears the intention\nhere was actually `option`.\n\nWhile `ngOptions` would probably be easier to use in most cases, someone may have a use case for using `ngValue` with `option` which is why I decided to change it in lieu of deleting it, as had been mentioned in the issue.\n\n**Other Comments:**\n\n', '3', null, null, 'timraymond', '2014-07-15T13:15:10Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5395', '37', '8205', 'fix(input): make maxlength and minlength work with non-string values', 'Request Type: bug\n\nHow to reproduce: \n\nComponent(s): misc core\n\nImpact: small\n\nComplexity: small\n\nThis issue is related to: \n\n**Detailed Description:**\n\n\n\n**Other Comments:**\n\nValidity for inputs with maxlength attribute and an underlying non-string model value is always false: e.g. the length property for a numeric data type returns undefined', '3', null, null, 'ssergio83', '2014-07-15T14:45:43Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5396', '37', '8206', 'fixed controller name in markup', 'Request Type: docs\n\nHow to reproduce: \n\nComponent(s): forms\n\nImpact: small\n\nComplexity: small\n\nThis issue is related to: \n\n**Detailed Description:**\n\nThe \"Binding to form and control state\" sample had a wrong controller name which prevents the sample from running\n\n**Other Comments:**\n\n', '7', null, null, 'mxab', '2014-07-15T15:28:47Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5397', '37', '8208', 'chore(travis): get npm dependencies from npm-bundle-deps', 'WIP for now\r\n\r\nSee https://github.com/btford/npm-bundle-deps', '2', null, null, 'rodyhaddad', '2014-07-15T18:54:35Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5398', '37', '8209', 'fix($parse): one-time binding for literal expressions works as expected', 'Meaning the watcher is only removed when all the properties of the object, or\r\nall the elements of the array, are defined.\r\n\r\nCloses #7663', '5', null, null, 'rodyhaddad', '2014-07-15T21:12:33Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5399', '37', '821', 'fix($compile): create new (isolate) scopes for directives on root elements', 'previously we would not create them and it\'s causing all kinds of issues and accidental leaks\r\n\r\nCloses #817', '0', null, null, 'IgorMinar', '2012-03-23T21:16:37Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5400', '37', '8210', 'feat($parse): Adds range operators', 'Adds the operators \'..\' and \'...\' that work as range operators. These new operators are only valid within an array declaration and allows the array to be declared as a range. E.g.\r\n\r\n```html\r\n<div ng-repeat=\"index in [1...pages.length]\">{{index}}</div>\r\n```\r\n', '8', null, null, 'lgalfaso', '2014-07-15T21:49:32Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5401', '37', '8211', 'Update scope.ngdoc', 'Include missing parenthesis', '4', null, null, 'fogonthedowns', '2014-07-15T22:35:42Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5402', '37', '8212', 'fix(ngSanitize): follow HTML parser rules for start tags / allow < in text content', 'ngSanitize will now permit opening braces in text content, provided they\nare not followed by either an unescaped backslash, or by an ASCII letter\n(u+0041 - u+005A, u+0061 - u+007A), in compliance with rules of the parsing\nspec, without taking insertion mode into account.\n\nBREAKING CHANGE\n\nPreviously, $sanitize would \"fix\" invalid markup in which a space preceded\nalphanumeric characters in a start-tag. Following this change, any opening\nangle bracket which is not followed by either a forward slash, or by an\nASCII letter (a-z | A-Z) will not be considered a start tag delimiter, per\nthe HTML parsing spec\n(http://www.whatwg.org/specs/web-apps/current-work/multipage/parsing.html).\n\nCloses #8193', '15', null, null, 'caitp', '2014-07-16T01:49:05Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5403', '37', '8213', 'Binding to form and control state section', 'Binding to form and control state section controller name error, it should be \"ExampleController\", not \"Controller\"', '3', null, null, 'xuez', '2014-07-16T07:07:15Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5404', '37', '8214', 'docs($cacheFactory): prevent example breaking on key update', 'The example for $cacheFactory breaks when a user tries to update a value for a key.\r\nSetting a new value for an existing key results in duplicate key entries in the key array, thus breaking the ng-repeat directive.\r\nWith this fix the key is only added if it isn\'t contained in the array already.', '4', null, null, 'kasoban', '2014-07-16T11:15:59Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5405', '37', '8216', 'feat(ngList): support whitespace control through ngTrim', 'This PR sits on top of #4344 to make `ngList` consistent with standard use of `ngTrim` and useful in scenarios where you want to split on whitespace strings.', '10', null, null, 'petebacondarwin', '2014-07-16T13:14:56Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5406', '37', '8218', 'Fixed broken angular.copy example', 'Request Type: docs\n\nHow to reproduce: Go to angular.copy documentation (https://docs.angularjs.org/api/ng/function/angular.copy) and try example; it does not work.\n\nComponent(s): \n\nImpact: small\n\nComplexity: small\n\nThis issue is related to: \n\n**Detailed Description:**\n\n\n\n**Other Comments:**\n\n', '2', null, null, 'Almar', '2014-07-16T15:21:24Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5407', '37', '8219', 'test($http): ignore date-toJSON test if running in IE8', 'IE8 does not implement Date.prototype.toISOString(), which is necessary for\nthis feature. The feature still works if this method is polyfilled, but these\ntests are not run with polyfills.\n\n/CC @IgorMinar (Please review, shouldn\'t take long!)', '0', null, null, 'caitp', '2014-07-16T16:08:45Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5408', '37', '822', 'chore(module): move files around in preparation for more modules', '', '0', null, null, 'mhevery', '2012-03-23T21:28:15Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5409', '37', '8221', 'fix(select): revert commit to fix skipping over blank disabled options', 'An earlier commit caused an error where the first option of a select would be skipped\r\nover if it had a blank value. This fix adds a test case to identify this case and shows\r\nthat reverting the earlier commit causes the behavior to change.\r\n\r\nRelates to #7715', '31', null, null, 'ealtenho', '2014-07-16T18:14:24Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5410', '37', '8227', 'fix(ngSanitize): follow HTML parser rules for start tags / allow < in text content', 'WIP: Port into v1.2.x (needed some fixes to the jshint rules to match master)\n\nngSanitize will now permit opening braces in text content, provided they\nare not followed by either an unescaped backslash, or by an ASCII letter\n(u+0041 - u+005A, u+0061 - u+007A), in compliance with rules of the parsing\nspec, without taking insertion mode into account.\n\nBREAKING CHANGE\n\nPreviously, $sanitize would \"fix\" invalid markup in which a space preceded\nalphanumeric characters in a start-tag. Following this change, any opening\nangle bracket which is not followed by either a forward slash, or by an\nASCII letter (a-z | A-Z) will not be considered a start tag delimiter, per\nthe HTML parsing spec\n(http://www.whatwg.org/specs/web-apps/current-work/multipage/parsing.html).', '1', null, null, 'caitp', '2014-07-16T23:59:17Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5411', '37', '8228', 'docs($interval): fix missing square brackets in example', 'Request Type: docs\n\nHow to reproduce: Go to https://docs.angularjs.org/api/ng/service/$interval\n\nView example - bindings not complete and buttons do not work\n\nComponent(s): \n\nImpact: small\n\nComplexity: small\n\nThis issue is related to: \n\n**Detailed Description:**\n\nThe docs example was missing closing ] for dependency injections.\n\n**Other Comments:**\n\n', '2', null, null, 'JoshSchreuder', '2014-07-17T00:38:56Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5412', '37', '823', 'fix(init): use jQuery#ready for init if available', 'Closes #818', '1', null, null, 'IgorMinar', '2012-03-23T22:02:24Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5413', '37', '8231', 'chore(ci): update protractor to 1.0.0-rc5 and increase global timeout fo...', '...r loading pages\r\n\r\nThis should help with occasional safari page load timeouts. In a test of\r\n4500 page loads, the current 10 second limit caused 3 errors while a 30 second limit\r\ncaused none.', '3', null, null, 'juliemr', '2014-07-17T05:58:53Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5414', '37', '8233', 'fix($location): consider baseHref in relative link for legacy browsers', 'Request Type: bug\r\n \r\n**How to reproduce:**\r\n\r\nIn a legacy browser that doesn\'t support HTML5 push state (ie: IE9) have the following:\r\n\r\n- `$locationProvider.html5Mode(true).hashPrefix(\'!\');` in app configuration;\r\n- a number of routes such as `/foo`, `/bar` in the `$routeProvider` configuration;\r\n- `<base href=\"/en/\">` in page headers;\r\n- `<a href=\"/en/foo\">` in a link.\r\n\r\nWhen clicking a link, it is rewritten as: `http://host/en/#!/en/foo` \r\nExpected: `http://host/en/#!/foo`\r\n\r\nComponent(s): $location\r\n\r\nImpact: medium\r\n\r\nComplexity: small\r\n\r\nThis issue is related to: \r\n\r\n\r\n\r\n**Other Comments:**\r\n\r\nI couldn\'t yet devise any test for covering this case. This fix concern a click handler on the `$rootElement` which (afaik) is not covered in the current tests.\r\n\r\nPlease let me know if you find it reasonable and if you have ideas on how to test for it.\r\nThanks!', '23', null, null, 'thenikso', '2014-07-17T10:09:56Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5415', '37', '8237', 'fix(ngTouch): leaving an element must end swiping', 'when user leaves a swiping area, it keeps on swiping. with this fix leaving area acts as a swipe cancel.\r\n\r\ncloses: #4810', '7', null, null, 'swisstofu', '2014-07-17T13:35:19Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5416', '37', '824', 'Evaluate boolean attrs', '', '1', null, null, 'vojtajina', '2012-03-24T00:07:32Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5417', '37', '8244', 'fix(ngSwitch): use the correct transclusion scope', 'If an ngSwitchWhen or ngSwitchDefault directive is on an element that also\r\ncontains a transclusion directive (such as ngRepeat) the new scope should\r\nbe the one provided by the bound transclusion function.\r\n\r\nPreviously we were incorrectly creating a simple child of the main ngSwitch\r\nscope.\r\n\r\nCloses #8235', '12', null, null, 'petebacondarwin', '2014-07-17T19:08:12Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5418', '37', '8245', 'fix($location): handle plus character in query strings', 'Closes #3042', '7', null, null, 'caguillen214', '2014-07-17T21:55:31Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5419', '37', '8246', 'Pr/7963', 'For travis.\r\nAlways failing on my fork :/', '2', null, null, 'rodyhaddad', '2014-07-17T23:16:31Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5420', '37', '8248', 'docs(guide/module) fixed disabled global cntl', 'Example contained a global controller.\r\n\r\n**How to reproduce:** https://docs.angularjs.org/guide/module\r\n\r\n**Plunker with fix:** http://plnkr.co/jwu6ZBTNzOZjVqy1lLEo', '4', null, null, 'nickvdyck', '2014-07-17T23:28:37Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5421', '37', '8250', 'fix(input): by default, do not trim input[type=password] values', 'Previously, all input types using ngModel and textInputType() would trim values if the ng-trim attribute was unspecified. This is undesirable for passwords because a user\'s input should always be canonical in that case.\r\n\r\nThis CL changes this behaviour by only trimming by-default if the input type is not password. In the future, if other input types need to be checked, or if the input type needs to be checked at runtime, this may be refactored to support those cases.\r\n\r\nBREAKING CHANGE:\r\n\r\nPreviously, input[type=password] would trim values by default. This is no longer the case, and requires an explicit `ng-trim=\"value other than \'false\'\"` to ensure that the value is trimmed in casees where this is actually desirable.\r\n\r\nExample:\r\n\r\n```html\r\n<!-- WILL NOT TRIM VALUE -->\r\n<input type=\"password\" ng-model=\"password\">\r\n<input type=\"password\" ng-model=\"password\" ng-trim=\"false\">\r\n\r\n<!-- WILL TRIM VALUE -->\r\n<input type=\"password\" ng-model=\"password\" ng-trim=\"ANYTHING ELSE\"> \r\n```\r\n\r\nCloses #8230', '8', null, null, 'caitp', '2014-07-18T01:51:44Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5422', '37', '8253', 'fix($compile): updating the jQuery .context when it is replaced', 'This allows replaced DOM nodes to be GCed when using jQuery. The issue is pretty minor and the jQuery .context might be removed in the future (see https://api.jquery.com/context/), but the fix is pretty simple.\r\n\r\nFixes #7900', '2', null, null, 'jbedard', '2014-07-18T03:37:57Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5423', '37', '8255', 'docs(guide/$location) global cntl deprecated', 'PR partially fixes #8226\r\n\r\nThere is still a problem where the doc generator constantly adds ng-app to the body which is not necessary or wanted in the example.\r\n\r\nBTW: where can i find more info about the doc generator', '18', null, null, 'nickvdyck', '2014-07-18T11:30:19Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5424', '37', '8256', 'fix(ngTouch): leaving an swipe element must not terminate swiping', 'when user leaves the area of the swiped element, it must keeps on swiping until until mouse is up.\r\n\r\ncloses: #6821', '11', null, null, 'swisstofu', '2014-07-18T12:59:25Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5425', '37', '8257', 'docs(guide/directive) example79 ptor missing attr', 'Example missing type=\"protractor\" attribute so tests are showing up in browser and aren\'t run by test suite.', '2', null, null, 'nickvdyck', '2014-07-18T14:45:14Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5426', '37', '826', 'Controller provider register', '', '1', null, null, 'IgorMinar', '2012-03-26T20:04:06Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5427', '37', '8260', 'Update modulerr.ngdoc', 'The additional context is omitted in the minified version. Had this been documented earlier it could have saved me 20 minutes. Maybe it can help someone else =)', '4', null, null, 'Dan-Nolan', '2014-07-18T17:20:57Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5428', '37', '8261', 'perf(ngBindHtml): move addClass to the compile phase', '', '2', null, null, 'IgorMinar', '2014-07-18T18:23:28Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5429', '37', '8262', 'WIP: detect accidental interpolation', 'throw an error when developer accidentaly uses interpolation instead of an expression\r\n\r\nTODO:\r\n- try to apply this to other directives\r\n- try to apply this genericaly for directives with isolate scope definition\r\n- add an error page', '16', null, null, 'IgorMinar', '2014-07-18T18:39:15Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5430', '37', '8267', 'Promise-based validations & Multi-stage validation API for ngModel', '', '26', null, null, 'matsko', '2014-07-19T15:22:27Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5431', '37', '8268', 'perf(ngForm,ngModel): move initial addClass to the compile phase', 'Other then moving from link to compile time the only difference (which unit tests didn\'t seem to care about) is that `$animate.addClass(VALID_CLASS)` and `$animate.removeClass(INVALID_CLASS)` are no longer called at link time since VALID_CLASS is added at compile and INVALID_CLASS shouldn\'t exist. If anyone depends on the initial animation calls or on the `.removeClass(INVALID_CLASS)` then this change won\'t work, at least in its current form...', '22', null, null, 'jbedard', '2014-07-19T21:36:28Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5432', '37', '8269', 'docs($http) Clarify how to specify JSONP callback.', 'Request Type: docs\n\nHow to reproduce: \n\nComponent(s): $http\n\nImpact: small\n\nComplexity: small\n\nThis issue is related to: \n\n**Detailed Description:**\n\n\n\n**Other Comments:**\n\nMake clear that it is the name of the callback that should be `JSON_CALLBACK`, instead of the current vague description that implies the string can be located anywhere in the URL.', '2', null, null, 'garetht', '2014-07-19T22:35:53Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5433', '37', '827', 'refactor($sniffer): make $sniffer service private', 'This service has been accidentaly documented in the past, it should not be considered\r\nto be public api.\r\n\r\nI\'m also removing fallback to Modernizr since we don\'t need it.\r\n\r\nBreaks any app that depends on this service and its fallback to Modernizr, please\r\nmigrate to custom \"Modernizr\" service:\r\n\r\n module.value(\'Modernizr\', function() { return Modernizr; });', '0', null, null, 'IgorMinar', '2012-03-26T22:47:03Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5434', '37', '8270', 'fix(ngMock): respond did not always take a statusText argument', 'minor fix so that `respond` can take a `statusText` argument even when having status 200 by default', '5', null, null, 'shahata', '2014-07-19T22:42:00Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5435', '37', '8271', 'docs(Scope): clarify naming in the $watch example', 'Fixes #8254', '7', null, null, 'pkozlowski-opensource', '2014-07-20T12:58:32Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5436', '37', '8273', 'refactor(injector): remove unused code', 'The removed code isn\'t being used:\r\n- there isn\'t a single place in the code where `invoke` would be\r\ncalled with a string argument in the third position.\r\n- the fourth parameter is also not documented,\r\nso when called from outside of the framework\'s source,\r\nthe third parameter is meant to be the locals object.', '9', null, null, 'pomerantsev', '2014-07-20T19:35:57Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5437', '37', '8277', 'Fix whitespace', 'Request Type: chore\n\nHow to reproduce: \n\nComponent(s): \n\nImpact: \n\nComplexity: small\n\nThis issue is related to: \n\n**Detailed Description:**\n\n\n\n**Other Comments:**\n\nThis involves multiple whitespace-only changes:\r\n\r\n- Convert some tab indentation to spaces\r\n- Trim all trailing spaces\r\n- Add final newlines that are missing from some files\r\n\r\nDoing a `git diff -w master` will confirm that this is a whitespace-only change. Adding ?w=1 to the files changed URL also demonstrates this.', '4', null, null, 'treyhunner', '2014-07-21T08:11:33Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5438', '37', '8278', 'Add EditorConfig file', 'Request Type: feature\n\nHow to reproduce: \n\nComponent(s): \n\nImpact: \n\nComplexity: small\n\nThis issue is related to: \n\n**Detailed Description:**\n\n\n\n**Other Comments:**\n\nThis file acts as a living style guide. With an EditorConfig plugin installed, this file acts as a self-enforcing style guide.\r\n\r\nSee http://editorconfig.org for more details.\r\n\r\nThis should reduce problems such as the one in #8277.\r\n\r\nDisclaimer: I\'m one of the EditorConfig project team members.', '9', null, null, 'treyhunner', '2014-07-21T08:14:50Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5439', '37', '829', 'Trim arguments', 'It turns out that if you have a function like this: function ( ) { }, Chrome will return the space in the empty parameter list while Firefox will not. This means that the injection lookup will get a string like this: \" \", which is not handled in inferInjectionArgs.', '1', null, null, 'recht', '2012-03-27T16:43:03Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5440', '37', '8291', 'docs(angular-mocks.js): fix missing brackets typo', 'The code snippet does not work without brackets (it is a code without effect). \r\nThe function call is necessary in order to evaluate whether or not an exception should be thrown.', '3', null, null, 'zorec', '2014-07-22T09:48:22Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5441', '37', '8293', 'Update interpolate.js', 'https://github.com/angular/angular.js/issues/8276', '4', null, null, 'dbwhddn10', '2014-07-22T11:10:04Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5442', '37', '8294', 'Update directive.ngdoc', 'Slight change in formatting.', '3', null, null, 'hanstest', '2014-07-22T13:50:31Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5443', '37', '8299', 'chore(e2e): protractor version bump to 1.0', '', '3', null, null, 'juliemr', '2014-07-22T19:05:50Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5444', '37', '83', 'Scenario runner improved', 'Hooray better scenario runner. :)', '0', null, null, 'esprehn', '2010-10-25T21:17:53Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5445', '37', '8301', 'feat(rootScope): allow $apply expressions to prevent unnecessary digest', 'This allows, for example to prevent unnecessary digest in ngClick handler function in case the handler does not have any immediate side effects.\r\n\r\nCloses #8286', '15', null, null, 'shahata', '2014-07-22T21:45:50Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5446', '37', '8302', 'refactor(Angular): add isPromise helper function', 'This can be used internally to remove the repeating pattern of `obj && obj.then`. For now, I don\'t see a good reason to expose this in angular\'s public interface.', '7', null, null, 'shahata', '2014-07-22T22:22:08Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5447', '37', '8303', 'feat(ngLog): provides support to debug the application in chosen level', 'Request Type: feature\r\n\r\nHow to reproduce: \r\n\r\nComponent(s): jqLite\r\n\r\nImpact: large\r\n\r\nComplexity: small\r\n\r\nThis issue is related to: \r\n\r\n**Detailed Description:**\r\n\r\nI think we need to set a level to debug the application. So, I\'ve developed a feature that add an extra behaviour to $log. In the $logProvider, I created a method called debugLevel that receives a string as parameter and, based on that parameter, the application change its debug level.\r\n\r\nWith this feature, setting debugLevel to \'error\' will log only error messages, while setting \'log\' will debug the application in a \"trace like\" mode.\r\n\r\n- error: log only error messages;\r\n- warn: log warn and error messages;\r\n- info: log info, warn and error messages;\r\n- log: log log and all other messages (trace like).\r\n\r\n~~I\'m not able to write tests for this feature and I think the code can be cleaner, but it helped me a lot.~~ In the two last commits I\'ve added two tests to this feature: one to ensure that if debugLevel is not defined, the application will log as default and one setting the level to \'warn\'.\r\n\r\n**Other Comments:**\r\n\r\nngLog can now log in window console based on a debug level, that can be redefined in LogProvider. Defaults to \'log\'.', '9', null, null, 'gabrielfgularte', '2014-07-22T22:36:59Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5448', '37', '8305', 'correct the URL', 'The old URL will show the list of phones. So correct the URL.', '3', null, null, 'yangshuan', '2014-07-23T05:52:38Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5449', '37', '8309', 'Updating the provider documentation', 'Highlighted the Best Practices section, and took the styling from the Services doc. I also removed some superfluous wording that was in the \"Provider Recipe\"', '3', null, null, 'hppycoder', '2014-07-23T13:42:58Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5450', '37', '8311', 'feat($q): add streamlined ES6-style interface for using $q', 'This potentially helps lead the way towards a more performant fly-weight implementation, as discussed earlier in the year. Using a constructor means we can put things in the prototype chain, and essentially treat $q as a Promise class, and reuse methods as appropriate.\n\nShort of that, I feel this style is slightly more convenient and streamlined, compared with the older API.\n\n(#8067 originally contained this PR, but has been refactored into a staging branch for the remaining changes left in #8300 --- This should be much easier to review as the first of a set of 3 changes).', '14', null, null, 'caitp', '2014-07-23T21:13:09Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5451', '37', '8313', 'feat(ngModelOptions): add allowInvalid option', 'This option allows to write invalid values to the model instead of having them become undefined.\r\n\r\nCloses #8290\r\n', '23', null, null, 'shahata', '2014-07-24T00:25:19Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5452', '37', '8321', 'feat($compile): change directive\'s restrict setting to default to EA (el...', '...ement/attribute)\r\n\r\nPreviously we defaulted just to A because of IE8 which had a hard time with applying css styles to HTMLUnknownElements.\r\n\r\nThis is no longer the case with IE9, so we should make restrict default to EA. Doing so will make it easier to create\r\ncomponents and avoid matching errors when creating new directives', '8', null, null, 'IgorMinar', '2014-07-24T15:20:47Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5453', '37', '8322', 'fix(rootScope.js): edit $watch parameter comment', 'i think $watch listener params comment is wrong ( string value is not correct)\r\n\r\ni think $watch listener params is same as $watchgroup listener and only function value\r\n\r\nhttps://github.com/angular/angular.js/blob/master/src/ng/rootScope.js#L349-351', '5', null, null, 'dbwhddn10', '2014-07-24T15:50:53Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5454', '37', '8327', 'fix(docs): change plnkr form to open in same window', 'Form previously posted to target=\"_blank\", but pop-up blockers were causing this to not work.\r\nIf a user chose to bypass pop-up blocker one time and click the link, they would arrive at\r\na new default plnkr, not a plnkr with the desired template.\r\n\r\nThis fix removes the _blank target, causing the plnkr to open in the current window/tab.', '3', null, null, 'jeffbcross', '2014-07-24T21:21:33Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5455', '37', '833', 'fix(): put \"use strict\" into the closure', 'To allow non strict code to be concatenated together with angular into a single file.', '2', null, null, 'vojtajina', '2012-03-28T03:28:17Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5456', '37', '8330', 'extended ngClass to add ngClassUpdate attribute to execute expression wh...', '...en ending animation\r\n\r\nI want to use a callback function after addClass/removeClass/setClass animation.', '6', null, null, 'amo12937', '2014-07-25T08:17:41Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5457', '37', '8331', 'fix(src): remove unused variables.', ' Fixes #8142.', '1', null, null, 'chirag04', '2014-07-25T09:21:27Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5458', '37', '8336', 'fixes #8333', 'Request Type: bug\n\nHow to reproduce: In a controller change the change the $locale.DATETIME_FORMATS and $locale.NUMBER_FORMATS and observer how dates change their format, but numbers and currency does not.\n\nComponent(s): misc core\n\nImpact: small\n\nComplexity: small\n\nThis issue is related to: \n\n**Detailed Description:**\n\nThe i18n locales provided with angular only allow you to use one locale, not multiple. To get around that you can use the date time and number formats in the i18n files and change them during runtime as follows:\n```\nangular.module(\'yourApp\').service(\'servicename\', function ($locale) {\n var locales = {\n \'en\': {\n \"DATETIME_FORMATS\": { ... },\n \"NUMBER_FORMATS\": { ... },\n },\n \'da\': { ... }\n }\n\n return {\n setLanguage: function (locale) {\n $locale.DATETIME_FORMATS = locales[locale].DATETIME_FORMATS;\n $locale.NUMBER_FORMATS = locales[locale].NUMBER_FORMATS;\n },\n }\n});\n```\nThis works for dates - however it does not work for the currency and number filters because the $locale provider is injected into a local variable and can thus not be changed post initialization.\n\nHere is the code for the date filer:\n```\ndateFilter.$inject = [\'$locale\'];\nfunction dateFilter($locale) {\n....\n return function(date, format) {\n...\n format = format || \'mediumDate\';\n format = $locale.DATETIME_FORMATS[format] || format;\n```\n\nHowever here is the code for the number filter\n```\nnumberFilter.$inject = [\'$locale\'];\nfunction numberFilter($locale) {\n var formats = $locale.NUMBER_FORMATS;\n return function(number, fractionSize) {\n return formatNumber(number, formats.PATTERNS[0], formats.GROUP_SEP, formats.DECIMAL_SEP,\n```\n\nThe fix is simple, change the number and currency filter to use the $locale when formatting is requested instead of during initialization.\n\n**Other Comments:**\n\n', '5', null, null, 'tinusn', '2014-07-25T11:55:36Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5459', '37', '8337', 'fix(angular.copy): clone regexp flags correctly', 'Closes #5781', '2', null, null, 'shahata', '2014-07-25T12:34:05Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5460', '37', '8342', 'feat(ngAria): New module to make a11y easier', 'Adds various aria attributes to the built in directives.\r\nThis module currently hooks into ng-show/hide, input, textarea\r\nbutton as a basic level of support for a11y. I am using this as a\r\nbase for adding more tags into the mix for form direction flow,\r\nmaking ng-repeat updates atomic but the tags here are the most\r\nbasic ones.\r\n\r\nCloses #5486 and #1600', '49', null, null, 'arbus', '2014-07-25T17:38:28Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5461', '37', '8345', 'docs(tutorial/step-7):Update tutorial/step-7 to fix grammar', 'Request Type: docs\n\nHow to reproduce: \n\nComponent(s): \n\nImpact: medium\n\nComplexity: small\n\nThis issue is related to: \n\n**Detailed Description:**\n\ndocs(tutorial/step-7):\n\nFixes a missing \'as\'.\n*Previous:*\nWe also have to add the modules dependencies of our app. By listing these two modules as dependencies of `phonecatApp`, ...\n*New:*\nWe also have to add the modules *as* dependencies of our app. By listing ...\n\n**Other Comments:**\n\n', '2', null, null, 'olslash', '2014-07-25T19:04:39Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5462', '37', '8347', 'chore(ci): update sauce connect from 3 to 4 for the 1.2.x branch', '', '7', null, null, 'juliemr', '2014-07-25T20:36:27Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5463', '37', '835', 'Fix compile attr', 'The first commit is important fix, that should go to release.\r\nThe second one, is not that important, just refactoring for better performance (hopefully, I did benchmark only in my head :-D)', '0', null, null, 'vojtajina', '2012-03-28T23:22:41Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5464', '37', '8350', 'feat($interpolate): use custom toString member if present', 'BREAKING CHANGE: use custom toString implementation when present on object value types.\r\nBehavior is consistent with other implementations.\r\n\r\nCloses #7317', '4', null, null, 'danielkrainas', '2014-07-26T01:44:03Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5465', '37', '8352', 'feat(ngMock): allow override of when/expect definitions', 'Closes #5766', '5', null, null, 'shahata', '2014-07-26T13:58:19Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5466', '37', '8354', 'Say how to modify port or ip served by `npm start`', 'A developer working on a remote server will want to change the IP\r\naddress which npm start serves on. A developer working on a machine\r\nwhich is already using port 8000 will want to change the port.\r\n\r\nSee https://github.com/angular/angular-phonecat/pull/191', '3', null, null, 'amfarrell', '2014-07-26T15:21:48Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5467', '37', '8356', 'feat(http): allow caching for JSONP requests', 'Closes #1947', '10', null, null, 'shahata', '2014-07-26T20:31:12Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5468', '37', '8358', 'feat(ngRoute): add method for changing url params', 'Request Type: feature\n\nHow to reproduce: \n\nComponent(s): ngRoute\n\nImpact: medium\n\nComplexity: small\n\nThis issue is related to: \n\n**Detailed Description:**\n\nAdd a `$route#update` method for changing the current route\nparameters without having to manually build a URL and call `$location#path`.\nUseful for apps with a structure involving programmatically moving\nbetween pages on the same route, but with different `:param`\nvalues.\n\n**Other Comments:**\n\n', '19', null, null, 'NotBobTheBuilder', '2014-07-26T23:41:30Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5469', '37', '8359', 'fix(jqLite): fix regression where mutating the dom tree on a event breaks jqLite.remove', '012ab1f8745c8985d3f132c2dfa8fd84e7dc7041 introduced a regression where if a user\'s `$destroy` event modified the descendant DOM tree, `jqLite.remove` would break.\r\nThis is because it uses `getElementsByTagName` and caches the length of the returned live NodeList\r\n\r\ncc @ggoodman', '2', null, null, 'rodyhaddad', '2014-07-27T06:01:57Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5470', '37', '8360', 'style(AngularPublic): add missing whitespaces', 'Request Type: refactor\n\nHow to reproduce: \n\nComponent(s): misc core\n\nImpact: small\n\nComplexity: small\n\nThis issue is related to: \n\n**Detailed Description:**\n\n\n\n**Other Comments:**\n\nAdded missing whitespaces in publishExternalAPI function', '2', null, null, 'ssergio83', '2014-07-27T08:00:12Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5471', '37', '8361', 'V1.2.x', '', '2', null, null, 'c-dave', '2014-07-27T11:05:19Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5472', '37', '8362', 'Update index.ngdoc', 'Awesome tutorial! There does seem to be 1 problem though; the tutorial tells users that server is listening on port 8000; however, to get this working, I had to use port 8080.', '4', null, null, 'sherm008', '2014-07-27T12:58:15Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5473', '37', '8363', 'fix(currencyFilter/formatNumber)', 'See #5672 and #5674', '10', null, null, 'petebacondarwin', '2014-07-27T18:25:52Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5474', '37', '8364', 'feat($interval): allow function to calculate the delay for each iteration.', 'Request Type: feature\r\n\r\nComponent(s): misc core\r\n\r\nImpact: small\r\n\r\nComplexity: small\r\n\r\nDetailed Description:\r\n\r\nExample use case:\r\n\r\n var START_DELAY = 1000;\r\n\r\n $interval(\r\n function() { ... },\r\n function(iteration) { return ((Math.pow(2, iteration) - 1) / 2) * START_DELAY; }\r\n );\r\n', '5', null, null, 'amyboyd', '2014-07-27T19:16:52Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5475', '37', '8367', 'fix(select): do not update selected property of an option element on digest with no change event', 'Fixes #8221', '4', null, null, 'petebacondarwin', '2014-07-28T11:27:28Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5476', '37', '837', 'fix($injector): properly infer dependencies from fn with no args', 'Previously if there was a white-space in fn: fn( ) {} we failed to infer no args.\r\n\r\nThis was originally reported by recht, but I decided to use a different fix.\r\n\r\nCloses #829', '0', null, null, 'IgorMinar', '2012-03-29T00:30:07Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5477', '37', '8371', 'fix($sanitize): dont not remove tab index property', 'fixes #5853', '7', null, null, 'chirag04', '2014-07-28T13:59:35Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5478', '37', '8377', 'fix($location): add semicolon to whitelist of delimiters to unencode', 'Some servers require characters within path segments to contain semicolons,\r\nsuch as `/;jsessionid=foo` in order to work correctly. RFC-3986 includes\r\nsemicolons as acceptable sub-delimiters inside of path and query, but $location\r\ncurrently encodes semicolons. This can cause an infinite digest to occur since $location\r\nis comparing the internal semicolon-encoded url with the semicolon-unencoded url returned\r\nfrom window.location.href, causing Angular to believe the url is changing with each digest\r\nloop.\r\n\r\nThis fix adds \";\" to the list of characters to unencode after encoding queries or path segments.\r\n\r\nCloses #5019', '10', null, null, 'jeffbcross', '2014-07-28T17:31:28Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5479', '37', '8380', 'WIP - trying to figure out what\'s going on with sc', 'Work in progress, please ignore! Need to submit a PR to get this to run on Travis.', '0', null, null, 'juliemr', '2014-07-28T22:41:30Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5480', '37', '8382', 'Update resource.js', '', '1', null, null, 'shengt', '2014-07-29T04:08:33Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5481', '37', '8383', 'Update resource.js', 'The action name should be \'query\'.', '1', null, null, 'shengt', '2014-07-29T04:09:46Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5482', '37', '8385', 'refact($compile): custom sort directives for better performance', 'please see and reopen this issue https://github.com/angular/angular.js/issues/8355', '6', null, null, 'dbwhddn10', '2014-07-29T06:52:48Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5483', '37', '8386', 'Update step_02.ngdoc', 'Warn reader not to minimise browser that Karma\'s running on.', '1', null, null, 'Andrew-Fam', '2014-07-29T07:07:47Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5484', '37', '8387', 'Updated angular extend to ignore undefined properties', 'Updated angular.extend to ignore undefined properties.', '4', null, null, 'martynasb', '2014-07-29T10:58:20Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5485', '37', '8388', 'Update introduction.ngdoc', '', '2', null, null, 'rajabe2008', '2014-07-29T10:58:23Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5486', '37', '8389', 'Fix milliseconds placeholder', '', '1', null, null, 'moroshko', '2014-07-29T11:33:41Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5487', '37', '8391', 'feat(currency): Add optional rounding', 'Add optional ability to specify custom amount to round currency using filter\r\n\r\nThis is useful in particular for rounding to a whole number, i.e. `{{amount | currency: \'$\': -2}}` will round `$1234.5678` to `$1,200`.', '1', null, null, 'wesleycho', '2014-07-29T14:00:26Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5488', '37', '8392', 'Update step_02.ngdoc', 'Improve wording.', '4', null, null, 'nwiebe', '2014-07-29T14:36:48Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5489', '37', '8394', 'Update step_02.ngdoc', 'New merge request based on feedback.', '1', null, null, 'nwiebe', '2014-07-29T15:31:18Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5490', '37', '8395', 'fix($location): ignore url start at \"javascript:\" and \"mailto:\"', 'It will make the legacy browsers go wrong place', '0', null, null, 'winsontam', '2014-07-29T16:06:43Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5491', '37', '8396', 'perf(Scope): use remove the need for the extra watch in $watchGroup', 'Instead of using a counter and an extra watch, just schedule the reaction function via .\r\n\r\nThis gives us the same/similar ordering and coalecsing of updates as counter without the extra\r\noverhead. Also the code is easier to read.\r\n\r\nSince interpolation uses watchGroup, this change additionally improves performance of interpolation.\r\n\r\nIn large table benchmark digest cost went down by 15-20% for interpolation.', '19', null, null, 'IgorMinar', '2014-07-29T17:55:02Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5492', '37', '8397', 'fix($location): add semicolon to whitelist of delimiters to unencode', 'Some servers require characters within path segments to contain semicolons,\r\nsuch as `/;jsessionid=foo` in order to work correctly. RFC-3986 includes\r\nsemicolons as acceptable sub-delimiters inside of path and query, but $location\r\ncurrently encodes semicolons. This can cause an infinite digest to occur since $location\r\nis comparing the internal semicolon-encoded url with the semicolon-unencoded url returned\r\nfrom window.location.href, causing Angular to believe the url is changing with each digest\r\nloop.\r\n\r\nThis fix adds \";\" to the list of characters to unencode after encoding queries or path segments.\r\n\r\nCloses #5019', '0', null, null, 'jeffbcross', '2014-07-29T18:06:12Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5493', '37', '8399', 'feat($compile): allow any attribute to use allOrNothing interpolation', 'Previously, only a limited set of attributes would use allOrNothing\ninterpolation. It is now possible to request allOrNothing interpolation by\nappending a \'!\' to the attribute name. This should result in attributes being\nremoved / not added to the node if their values are undefined, which can\nprevent some kinds of errors in SVG elements.\n\nExample:\n\n <circle ng-attr-r!=\"{{dimensions.radius}}\" x!=\"{{position.left}}\">\n\nCloses #8376', '22', null, null, 'caitp', '2014-07-29T18:40:17Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5494', '37', '84', 'Scenario runner improved', 'Improved runner. (this is a second push because I had forgotten the angular.suffix and Rakefile fixes.', '2', null, null, 'esprehn', '2010-10-25T22:16:08Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5495', '37', '840', 'Fixes #751', 'Made $location search to be processed in the same ways when passed to constructor and to setter.\r\n\r\nP.S. sorry for mess with commits, didn\'t realize that need to create separate branch for commit and use fast forward :-)', '1', null, null, 'mkotsur', '2012-03-30T08:08:25Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5496', '37', '8400', 'fix(input): $evalAsync than $apply on input blur', 'without $evalAsync I would have to wrap a few directives in a setTimeout to prevent digest loop conflicts\r\n```javascript\r\nangular.module(\'directives\', [])\r\n.directive(\'focusOn\', function($parse) {\r\n return function(scope, element, attrs) {\r\n\r\n // avoid $digest in progress\r\n setTimeout(function() {\r\n var getter = $parse(attrs.focusOn);\r\n if (getter(scope)) {\r\n element[0].focus();\r\n }\r\n }, 0);\r\n\r\n };\r\n\r\n})\r\n```', '1', null, null, 'gdi2290', '2014-07-29T19:07:33Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5497', '37', '8401', 'feat(getControllers): allow objects for require', 'allowing objects, similar to $Q.all, read out more clearly for example\r\ncurrent ngModelDirective\r\n```javascript\r\nvar ngModelDirective = function() {\r\n return {\r\n restrict: \'A\',\r\n require: [\'ngModel\', \'^?form\', \'^?ngModelOptions\'],\r\n controller: NgModelController,\r\n link: {\r\n pre: function(scope, element, attr, ctrls) {\r\n // Pass the ng-model-options to the ng-model controller\r\n if (ctrls[2]) {\r\n ctrls[0].$options = ctrls[2].$options;\r\n }\r\n\r\n // notify others, especially parent forms\r\n\r\n var modelCtrl = ctrls[0],\r\n formCtrl = ctrls[1] || nullFormCtrl;\r\n\r\n formCtrl.$addControl(modelCtrl);\r\n\r\n scope.$on(\'$destroy\', function() {\r\n formCtrl.$removeControl(modelCtrl);\r\n });\r\n },\r\n post: function(scope, element, attr, ctrls) {\r\n var modelCtrl = ctrls[0];\r\n if (modelCtrl.$options && modelCtrl.$options.updateOn) {\r\n element.on(modelCtrl.$options.updateOn, function(ev) {\r\n scope.$apply(function() {\r\n modelCtrl.$$debounceViewValueCommit(ev && ev.type);\r\n });\r\n });\r\n }\r\n\r\n element.on(\'blur\', function(ev) {\r\n scope.$evalAsync(function() {\r\n modelCtrl.$setTouched();\r\n });\r\n });\r\n }\r\n }\r\n };\r\n};\r\n```\r\n\r\n\r\nngModelDirective with a require object\r\n```javascript\r\nvar ngModelDirective = function() {\r\n return {\r\n restrict: \'A\',\r\n require: {\r\n ngModel: \'ngModel\',\r\n form: \'^?form\',\r\n ngModelOptions: \'^?ngModelOptions\'\r\n },\r\n controller: NgModelController,\r\n link: {\r\n pre: function(scope, element, attr, ctrls) {\r\n // Pass the ng-model-options to the ng-model controller\r\n if (ctrls.ngModelOptions) {\r\n ctrls.ngModel.$options = ctrls.ngModelOptions.$options;\r\n }\r\n\r\n // notify others, especially parent forms\r\n\r\n var modelCtrl = ctrls.ngModel,\r\n formCtrl = ctrls.form || nullFormCtrl;\r\n\r\n formCtrl.$addControl(modelCtrl);\r\n\r\n scope.$on(\'$destroy\', function() {\r\n formCtrl.$removeControl(modelCtrl);\r\n });\r\n },\r\n post: function(scope, element, attr, ctrls) {\r\n var modelCtrl = ctrls.ngModel;\r\n if (modelCtrl.$options && modelCtrl.$options.updateOn) {\r\n element.on(modelCtrl.$options.updateOn, function(ev) {\r\n scope.$apply(function() {\r\n modelCtrl.$$debounceViewValueCommit(ev && ev.type);\r\n });\r\n });\r\n }\r\n\r\n element.on(\'blur\', function(ev) {\r\n scope.$evalAsync(function() {\r\n modelCtrl.$setTouched();\r\n });\r\n });\r\n }\r\n }\r\n };\r\n};\r\n```', '14', null, null, 'gdi2290', '2014-07-29T19:30:47Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5498', '37', '8405', 'WIP: [[nomerge]] adapt to location changes happening outside of Angular', 'Just opening for Travis for now. Still need to determine if this is best approach to problem described in #6976.', '13', null, null, 'jeffbcross', '2014-07-29T23:55:52Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5499', '37', '8406', 'feat(FormController): add $submitted $setSubmitted', 'allowing <code>$submitted</code> on <code>FormController</code> allows the user more convenience when dealing with ngMessages for example\r\nhttps://yearofmoo.github.io/ngMessages/\r\n```javascript\r\nangular.module(\'yolo\', [\'ngMessages\'])\r\n.controller(\'exampleCtrl\', function($scope) { \r\n this.model = \'\';\r\n $scope.submitted = false;\r\n $scope.submit = function() {\r\n $scope.submitted = true;\r\n };\r\n $scope.interacted = function(field) {\r\n return $scope.submitted || field.$dirty;\r\n };\r\n}\r\n```\r\n```html\r\n<form name=\"userForm\">\r\n <input name=\"emailAddress\" ng-model=\"ctrl.model\">\r\n <div \r\n ng-messages=\"userForm.emailAddress.$error\" \r\n ng-if=\"interacted(userForm.emailAddress)\" \r\n ng-messages-include=\"error-messages\"\r\n ></div>\r\n</form>\r\n``` \r\n\r\nwith <code>$submitted</code> would simply be\r\n```javascript\r\nangular.module(\'yolo\', [\'ngMessages\'])\r\n.controller(\'exampleCtrl\', function($scope) { \r\n this.model = \'\';\r\n}\r\n```\r\n```html\r\n<form name=\"userForm\">\r\n <input name=\"emailAddress\" ng-model=\"ctrl.model\">\r\n <div \r\n ng-messages=\"userForm.emailAddress.$error\" \r\n ng-if=\"userForm.$submitted || userForm.emailAddress.$dirty\" \r\n ng-messages-include=\"error-messages\"\r\n ></div>\r\n</form>\r\n``` \r\n\r\n\r\n~~I can also add <code>.ng-submitted</code> class etc that would help for styles~~\r\nI also added <code>.ng-submitted</code> to the form for styling input errors when the form is submitted and still dirty', '4', null, null, 'gdi2290', '2014-07-30T00:23:14Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5500', '37', '8407', 'fix($location) solve when url is \"javascript:\" or \"mailto:\"', 'When url is started with \"javascript:\" or \"mailto:\"\r\nIt still do the redirect.', '5', null, null, 'winsontam', '2014-07-30T03:15:19Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5501', '37', '841', 'remove ng-model-instant, remove ng-include scope attr, refactoring', '', '1', null, null, 'vojtajina', '2012-03-30T22:19:58Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5502', '37', '8411', 'Update angular-mocks.js', '\" For this reason the e2e $httpBackend automatically flushes mocked out requests automatically, closely simulating the behavior of the XMLHttpRequest object.\"\r\n has been changed to \r\n\"For this reason the e2e $httpBackend flushes mocked out requests automatically, closely simulating the behavior of the XMLHttpRequest object.\", removing redundant \'automatically\'.', '1', null, null, 'DanielleGonzalez', '2014-07-30T13:43:58Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5503', '37', '8417', 'fix(ngSanitize): ensure `html` is a string in htmlParser()', 'Previously, $sanitize(nonString) would throw. Now, the type is converted to a\nstring before any work is done.\n\nCloses #8416', '3', null, null, 'caitp', '2014-07-30T15:32:28Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5504', '37', '8421', 'docs(error): redefining module causes $injector:unpr', '', '4', null, null, 'ksheedlo', '2014-07-30T17:53:48Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5505', '37', '8422', 'Small grammatical error', '', '1', null, null, 'NoNeedToBail', '2014-07-30T19:38:26Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5506', '37', '8424', 'include $http.patch in list of available methods (docs only)', '', '2', null, null, 'k-funk', '2014-07-30T23:41:37Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5507', '37', '8426', 'fix($location) don\'t rewrite location when clicking on \"javascript:\" or \"mailto:\" link', 'Previously, absent a specified target attribute, when clicking on an anchor tag with an href beginning with either \"javascript:\" or \"mailto:\", the framework would rewrite the URL, when it ought not to.\n\nWith this change, the browser is prevented from rewriting if the URL begins with a case-insensitive match for \"javascript:\" or \"mailto:\", optionally preceeded by whitespace.\n\nCloses #8407\nCloses #8425', '3', null, null, 'caitp', '2014-07-31T04:49:28Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5508', '37', '8429', 'fix(select): ensure that at least one option has the `selected` attribute set', 'Using `prop` to set selected is correct programmatically but accessibility\r\nguidelines suggest that at least on item should have the `selected` attribute\r\nset.\r\n\r\nCloses #8366', '4', null, null, 'petebacondarwin', '2014-07-31T08:32:09Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5509', '37', '8430', 'feat($compile/ngBind): don\'t add binding info if not enabled', 'The compiler and ngBind directives add binding information (`ng-binding`\r\nCSS class and `$binding` data object) to elements when they are bound to\r\nthe scope. This is only to aid testing and debugging for tools such as\r\nProtractor and Batarang. In production this is unneccesary and add a\r\nperformance penalty.\r\n\r\nThis change disables adding this binding information by default. You can\r\nenable it by calling `$compilerProvider.enableBindingInfo()` in a module\r\n`config()` block.\r\n\r\nBREAKING CHANGE:\r\n\r\nThe `ng-binding` CSS class and the `$binding` data object are no longer\r\nattached to DOM elements that have a binding to the scope, by default.\r\nIf you relied on this feature then you can re-enable it in one of your\r\napplication modules:\r\n\r\n```\r\nsomeModule.config([\'$compileProvider\', function($compileProvider) {\r\n $compileProvider.enableBindingInfo();\r\n}]);\r\n```', '69', null, null, 'petebacondarwin', '2014-07-31T11:21:59Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5510', '37', '8432', 'chore(perf): add event delegation benchmark', '', '5', null, null, 'tbosch', '2014-07-31T13:28:58Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5511', '37', '8436', 'docs(content): update Angular 1.2 mentions to Angular 1.3', 'Angular 1.3 docs now describe the process of using this version instead of\r\nthe older 1.2 that is the latest stable version.\r\n\r\nAlso, update jQuery 1.10.x mentions to 2.1.x.\r\n\r\n@IgorMinar this is re our latest talk at the AWG meeting. This merge should probably wait until http://docs.angularjs.org is switched to point to the latest commit on the `1.2.x` branch by default instead of `master`.', '10', null, null, 'mzgol', '2014-07-31T20:37:01Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5512', '37', '8437', 'perf($q): move Deferred and Promise methods to prototypes', 'Opening PR for tests and comparison with other solutions for `$q` perf.\r\n\r\nNOTE: Deferred doesn\'t get all the advantages of moving methods to the prototype,\r\nsince the constructor binds instance methods to \"this\" to support unbounded execution.\r\n\r\nNOTE: This change increases the gzipped version by 100 bytes.', '12', null, null, 'jeffbcross', '2014-07-31T21:25:09Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5513', '37', '844', 'Fixes #843', 'Fixed failed e2e test', '0', null, null, 'mkotsur', '2012-04-01T16:11:49Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5514', '37', '8440', 'fix(ngRepeat): support complex assignable aliasAs expressions', 'Parse aliasAs as an expression, and assert that the expression is assignable.\n\nJust throwing together a quick fix, but I\'m not sure this is what we want to do, especially since we\nwant to change the behaviour of aliasAs to provide more data. /cc @matsko / @shahata / @petebacondarwin\n\nBREAKING CHANGE\n\nPreviously, any name passed as an expression would make up a single property\nname, including constant values such as 1, NaN, null, undefined, or even\nexpressions such as function calls or boolean expressions.\n\nNow, more complex expressions are possible, allowing the collection alias to\nbe assigned as a property of an object --- however, if the expression is not\ndetermined to be assignable, it will throw.\n\nFixes #8438', '60', null, null, 'caitp', '2014-08-01T01:38:30Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5515', '37', '8441', 'Update angular-locale_es-gt.js', 'Modificaciones necesarias para manejo de Quetzales (Moneda Guatemalteca) \r\n\r\nQ1,234.56\r\n\r\nChanges needed to show Guatemalan currency correctly, above is an example of the correct format. ', '6', null, null, 'stvortiz', '2014-08-01T02:34:36Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5516', '37', '8443', 'fixed bug or bad feature in $httpBackend expect', 'https://github.com/angular/angular.js/issues/8442', '11', null, null, 'Kapaacius', '2014-08-01T09:18:21Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5517', '37', '8444', 'docs($compile): fix title level for multiElement', 'The multiElement attribute is bigger than the other attributes, as it has the wrong title level.\r\n\r\nSee https://docs.angularjs.org/api/ng/service/$compile', '1', null, null, 'cexbrayat', '2014-08-01T09:43:56Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5518', '37', '8450', 'perf(input): prevent multiple $digest when input is blurred', '@kevinjamesus86 noticed that the input control would trigger a $digest\r\ncycle every time it was blurred, https://github.com/angular/angular.js/commit/adcc5a00bf582d2b291c18e99093bb0854f7217c#commitcomment-7129512.\r\n\r\nAfter the control is in a $touched state, other $digest cycles are\r\nunnecesary.\r\n\r\nReferences #7673', '3', null, null, 'guzart', '2014-08-01T17:09:04Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5519', '37', '8451', 'feat(ngScopeAs): directive to save the current scope as an alias', 'This is useful when we need to access an outer scope in nested `ngRepeat` and generally in many of the places `$parent` is used to access an outer scope.\r\n\r\nCloses #8398', '10', null, null, 'shahata', '2014-08-01T21:07:02Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5520', '37', '8452', 'chore(travis): rename fetch_bundle script and make it not abort a travis build if it fails', '', '1', null, null, 'rodyhaddad', '2014-08-02T02:02:49Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5521', '37', '8454', 'add template url argument to $includeContentRequested event', '#8453', '11', null, null, 'stephenbunch', '2014-08-02T02:43:16Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5522', '37', '8457', 'Clarifying the meaning of @ in paramDefaults', '', '4', null, null, 'jsdevel', '2014-08-02T08:52:44Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5523', '37', '8459', 'Create a build of AngularJS that contains no CSS.', 'This is useful for sites that use CSP, especially those that prohibit inline CSS but allow eval.', '15', null, null, 'realityking', '2014-08-02T17:23:34Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5524', '37', '846', 'fix($q): $q.reject should forward callbacks if missing', 'Closes #845', '0', null, null, 'IgorMinar', '2012-04-02T17:11:44Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5525', '37', '8462', 'refactor(mocks) : changed the implementations of expect any URL', 'Changed $httpBackend.expect any URL ( expect(\'GET\') ) from undefined / null to * ( expect(\'GET\', \'*\') )', '11', null, null, 'Kapaacius', '2014-08-03T13:51:03Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5526', '37', '8463', 'docs(ngController): no global controller constructors', 'Update doc to reflect [3f2232b5](https://github.com/angular/angular.js/commit/3f2232b5a181512fac23775b1df4a6ebda67d018), which disabled use of global controller constructors (by default).', '3', null, null, 'drewbarbs', '2014-08-03T14:43:02Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5527', '37', '8464', 'docs(form.js): fix ngdocfor setSubmitted', 'https://github.com/angular/angular.js/commit/108a69be17df5884d026c57b2be3235c576250fe', '0', null, null, 'gdi2290', '2014-08-03T17:31:45Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5528', '37', '8465', 'test(select): relax test for IE8 bug', 'There is a bug in IE8 (http://support.microsoft.com/kb/829907 and\r\nhttp://yuilibrary.com/forum-archive/forum/viewtopic.php@p=14826.html):\r\nwhen you clone an `<option>` element the selected attribute on the options\r\ncan become invalid.\r\n\r\nThis is not relevant to the proper behaviour of the `select` directive\r\nsince it uses `prop` not `attr` to store the selected status of each\r\noption.\r\n\r\nThis test is only interested in there being at least on option with\r\nthe `selected` attribute, for conformance to accessibility guidelines.\r\nSo we can safely relax the test to check this rather than concerning\r\nourselves with which option actually has this attribute.', '0', null, null, 'petebacondarwin', '2014-08-03T20:55:28Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5529', '37', '8466', 'docs(ngController): global controller fns disabled by default', 'Update doc to reflect [3f2232b5](https://github.com/angular/angular.js/commit/3f2232b5a181512fac23775b1df4a6ebda67d018),\r\nwhich disabled use of global controller constructors (by default).', '0', null, null, 'drewbarbs', '2014-08-03T23:37:43Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5530', '37', '8468', 'Add images attribute', 'The purpose of adding the image attribute is so that one of the tests in controllerSpecs.js does not fail in step_10.ngdoc when we add ```$scope.mainImageUrl = data.images[0];``` to PhoneDetailCtrl.', '4', null, null, 'derrickmar', '2014-08-04T09:50:58Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5531', '37', '8474', 'docs(CHANGELOG.md): add missing breaking change from 1.3.0-beta.14', 'The script apparently never picked up this one.', '2', null, null, 'caitp', '2014-08-04T20:24:57Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5532', '37', '8475', 'Add logic for Angular to inject mock modules itself', 'see https://github.com/angular/protractor/pull/1155', '2', null, null, 'hankduan', '2014-08-04T22:16:14Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5533', '37', '8476', 'docs($compile): fix typo \'default\' spelling', 'Change spelling of \'defualt\' to \'default\'', '1', null, null, 'asilluron', '2014-08-04T22:40:09Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5534', '37', '8479', 'git test', '', '0', null, null, 'zhanglingkang', '2014-08-05T04:54:41Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5535', '37', '848', '$location: links to different base paths should not be rewritten but fully reloaded by the browser', 'Let\'s consider an angular app that is deployed at dom.tld/app1 and which use the html5 mode of the $location service. In such a configuration, the header section of the index file should contain a <base href=\"...\" /> tag, and thus the base path of the app1 is known.\r\n\r\nFor now, links that go to the same domain (dom.tld) are rewritten by the $location service, unless if the link contains the directive \'ng-ext-link\' or the attribute \'target\'. \r\n\r\nThis pull request prevents links that go to the same domain but to other bases to be rewritten by the $location service. Thus, links such as dom.tld/app2/... will not be rewritten and will cause a full browser reload. \r\n\r\n(I\'ve also noticed that the \'ng-ext-link\' directive doesn\'t compile with the new $compiler system since the 1.0.0 and it hard-coded. For instance, it is not possible to use the several directive syntaxes with this directive.)', '2', null, null, 'tleruitte', '2012-04-03T13:59:25Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5536', '37', '8482', 'docs(guide/controller): fix duplicate -Controller suffix', 'Duplicate suffix in the docs introduced by #https://github.com/angular/angular.js/commit/f6877ed2d9d1bb8bc3ace0aa136890b411e78344\r\n\r\n@btford may I ask why the convention is switching from the vastly used and shorter \'Ctrl\' to \'Controller\' ?', '1', null, null, 'cexbrayat', '2014-08-05T07:30:27Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5537', '37', '8486', 'fix(jQuery): cooperate with other libraries monkey-patching jQuery.cleanData', 'Some libraries (like jQuery UI) patch jQuery.cleanData as well. This commit\r\nmakes Angular work correctly even if such external patching was done after\r\nthe Angular one.\r\n\r\nFixes #8471\r\n\r\n/cc @IgorMinar', '12', null, null, 'mzgol', '2014-08-05T12:43:42Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5538', '37', '8487', 'Change JSDoc from DOMElement to HTMLElement', 'Wrong class type used for parameter argument on `angular.element()`. Should be `string` and `HTMLElement`.\r\n\r\nhttps://developer.mozilla.org/en/docs/Web/API/HTMLElement', '7', null, null, 'thinkingmedia', '2014-08-05T14:28:35Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5539', '37', '8488', 'Update attrs.js', 'Self closing `<a>` tags in the examples given make no sense because they won\'t show up in the browser (and I think aren\'t even allowed according to HTML specs). I\'ve seen this confuse people over at stackoverflow.com who tried to copy/paste those examples.', '8', null, null, 'paranoidandroid522', '2014-08-05T14:48:43Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5540', '37', '849', 'feat($http): add withCredentials config option', '', '0', null, null, 'vojtajina', '2012-04-03T18:21:37Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5541', '37', '8492', 'revert fix($location): make legacy browsers behave like modern ones in html5Mode', 'These commits have caused more problems than they\'ve been worth, and we get to remove some code, too.\r\n\r\nReverts: https://github.com/angular/angular.js/commit/3f047704c70a957596371fec554d3e1fb066a29d, https://github.com/angular/angular.js/commit/49e7c32bb45ce3984df6768ba7b2f6a723a4ebe7\r\n\r\nOpinions on reverting these would be appreciated! /cc @IgorMinar', '15', null, null, 'caitp', '2014-08-05T19:27:57Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5542', '37', '8493', '$provide.decorate function dependency injection', 'Current implementation only allows for resolution of Provider dependencies. This resolves all dependencies.', '1', null, null, 'jchadwick', '2014-08-05T19:51:11Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5543', '37', '8495', 'Update concepts.ngdoc', 'setting minimum to number inputs', '2', null, null, 'sixinli', '2014-08-05T21:19:58Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5544', '37', '8496', 'Fixed $routeStartChange preventDefault', 'event.preventDefault() was not working at $routeStartChange, but then, it is!', '3', null, null, 'VictorQueiroz', '2014-08-06T04:26:01Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5545', '37', '8497', 'Fixed $routeStartChange preventDefault', '', '2', null, null, 'VictorQueiroz', '2014-08-06T04:28:33Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5546', '37', '8499', 'WIP: add benchpress builder and runner', '', '17', null, null, 'jeffbcross', '2014-08-06T06:33:45Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5547', '37', '8503', 'Update select.js', '', '4', null, null, 'johnrapp', '2014-08-06T10:53:14Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5548', '37', '8505', 'fix(jqLite): allow `triggerHandler()` to accept custom event', 'In some scenarios you want to be able to specify properties on the event\r\nthat is passed to the event handler. JQuery does this by overloading the\r\nfirst parameter (`eventName`). If it is an object with a `type` property\r\nthen we assume that it must be a custom event.\r\n\r\nIn this case the custom event must provide the `type` property which is\r\nthe name of the event to be triggered. `triggerHandler` will continue to\r\nprovide dummy default functions for `preventDefault()`, `isDefaultPrevented()`\r\nand `stopPropagation()` but you may override these with your own versions\r\nin your custom object if you wish.\r\n\r\nCloses #8469', '14', null, null, 'petebacondarwin', '2014-08-06T13:10:19Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5549', '37', '8507', 'fixed incorrect comment example for userId', '', '1', null, null, 'ruffrey', '2014-08-06T13:19:18Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5550', '37', '8508', 'fix($location): don\'t rewrite hash-fragment links in same document', '$location will no longer rewrite hash fragment links in the same document\n(specified via href=\"#hash...\").\n\nCloses #8478', '3', null, null, 'caitp', '2014-08-06T14:56:50Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5551', '37', '851', 'fix($compile): relax the restriction that directives can not add sibling...', '...s\r\n\r\nRelax the restriction that directives can not add siblings', '1', null, null, 'mhevery', '2012-04-03T21:24:30Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5552', '37', '8512', 'fix($parse): ternary should give assignment precedence in middle and right expressions', '\r\nCloses #8484', '3', null, null, 'petebacondarwin', '2014-08-06T21:08:49Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5553', '37', '8514', 'docs: Fix broken link to to SCE', 'The second link to Strict Contextual Escaping (SCE) points to a 404.', '5', null, null, 'juampynr', '2014-08-06T21:34:33Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5554', '37', '8515', 'WIP: Even more perf', 'this needs a lot of rebasing and polish still. I started off with @petebacondarwin\'s PR and added a bunch of stuff on top of it + threw in my benchpress benchmarks.', '7', null, null, 'IgorMinar', '2014-08-06T21:56:24Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5555', '37', '8516', 'fix($parse): ternary and assignment operator precedence', 'Properly handle assignemnts inside ternary operators\r\n\r\nCloses #8484', '4', null, null, 'lgalfaso', '2014-08-06T22:08:37Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5556', '37', '8517', 'Update ie.ngdoc', 'Updating IE documentation to reflect IE8 and lower throw javascript parse errors when certain keywords such as delete are used. Providing a workaround to using $http.delete in IE8 and below.', '4', null, null, 'jgoeglein', '2014-08-06T23:49:32Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5557', '37', '8519', 'docs: ngSanitize is out ng core at AngularJS 1.2.21', 'When using ngBindHTML directive, ngSanitize module must be added as a dependency.\r\n\r\nNot doing so results in the following error:\r\n\r\n```\r\nError: [$sce:unsafe] http://errors.angularjs.org/1.2.21/$sce/unsafe\r\n at Error (native)\r\n at http://somesite/js/angular.min.js?n9wkqz:6:450\r\n at e (http://somesite/js/angular.min.js?n9wkqz:117:34)\r\n at getTrusted (http://somesite/js/angular.min.js?n9wkqz:118:327)\r\n at Object.e.(anonymous function) [as getTrustedHtml] (http://somesite/js/angular.min.js?n9wkqz:120:71)\r\n at Object.fn (http://somesite/js/angular.min.js?n9wkqz:192:234)\r\n at k.$digest (http://somesite/js/angular.min.js?n9wkqz:109:213)\r\n at k.$apply (http://somesite/js/angular.min.js?n9wkqz:112:173)\r\n at h (http://somesite/js/angular.min.js?n9wkqz:72:300)\r\n at w (http://somesite/js/angular.min.js?n9wkqz:77:288) \r\n```\r\n\r\nYou can see that the API reference for ngBindHTML includes the module below:\r\n\r\n![selection_004](https://cloud.githubusercontent.com/assets/108130/3837185/9cdf6e08-1de6-11e4-93fa-a4a99b919e8c.png)\r\n', '13', null, null, 'juampynr', '2014-08-07T03:55:12Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5558', '37', '852', 'fix($compile): relax the restriction that directives can not add sibling...', '...s\r\n\r\nRelax the restriction that directives can not add siblings', '1', null, null, 'mhevery', '2012-04-03T21:24:30Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5559', '37', '8521', 'fix(ngShow): Make ng-show consistent with ng-if', 'Consistent in terms of propagation. The expected behavior is that both\r\nare evaluated from the outside in.\r\n\r\nBackground: http://stackoverflow.com/questions/25159464/how-to-make-angular-directives-evaluate-from-outside-in\r\n\r\nAll tests are passing.\r\n\r\nI think this is pretty self-contained, but if you want me to, I can also expand on the concrete scenario where this unexpected behavior caused a bug in our application.', '2', null, null, 'Wizek', '2014-08-07T09:53:05Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5560', '37', '8524', 'Multiple requires in a directive', 'Documentation on how to handle the case when a directive requires multiple controllers.', '3', null, null, 'Schlogen', '2014-08-07T13:20:09Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5561', '37', '8525', 'fix(forEach): match behaviour of Array.prototype.forEach (ignore missing properties)', 'Array.prototype.forEach will not invoke the callback function if the properety\r\nis not present in the object. Because of this, we have the illusion of not\r\niterating over non-added properties in a sparse array.\r\n\r\nFrom ECMAScript:\r\n\r\n```\r\n9. Repeat while k < len\r\n a. Let Pk be ToString(k).\r\n b. Let kPresent be HasProperty(O, Pk).\r\n c. ReturnIfAbrupt(kPresent).\r\n d. If kPresent is true, then\r\n i. Let kValue be Get(O, Pk)\r\n ... (steps for invoking the function and aborting if it throws)\r\n```\r\n\r\nCloses #8510 Closes #8522', '14', null, null, 'caitp', '2014-08-07T14:20:02Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5562', '37', '8534', 'Update index.ngdoc', '', '6', null, null, 'pdebaets', '2014-08-08T00:39:38Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5563', '37', '8535', 'Add images attribute to controllersSpec.js', 'As per request by @petebacondarwin in reference to #8468.', '0', null, null, 'derrickmar', '2014-08-08T04:32:10Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5564', '37', '854', 'Fix ng href', '', '2', null, null, 'vojtajina', '2012-04-04T01:20:47Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5565', '37', '8540', 'fix($animate): ensure guarded animations consider AJAX requests upon bootstrap', 'Prior to this fix when an Angular application is bootstrapped it would only\r\nplace an animation guard to prevent animations from running when the application\r\nstarts for the first two digest cycles. However, if any controllers or directives,\r\nthat are executed upon boostrap, trigger any remote code to be downloaded (via $http)\r\nthen the guard does not put that into consideration. This fix now properly addresses\r\nthat circumstance and removes the guard once all outbound HTTP requests are complete\r\nwhen an Angular application is bootstrapped.\r\n\r\nCloses #8275\r\nCloses #5262', '12', null, null, 'matsko', '2014-08-08T17:20:14Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5566', '37', '8541', 'chore(travis): specify chrome m34 in protractor configuration', null, '1', null, null, 'caitp', '2014-08-08T20:38:11Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5567', '37', '8542', 'Revert removal of deregisterNotifier', '', '0', null, null, 'jeffbcross', '2014-08-08T21:54:38Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5568', '37', '8544', 'fix(select): Clarify documentation and add exception for ngOptions', 'ngOptions introduced `track by` in c32a859bdb93699cc080f9affed4bcff63005a64.\r\nUsing `track by` puts constraints on the value you can use in the interpolation expression in ngOptions.\r\nThis patch both documents this and adds an exception if you use ngOptions in an unsupported way.\r\n\r\nCloses angular/angular.js#6564', '4', null, null, 'janv', '2014-08-09T06:32:09Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5569', '37', '8546', 'use ng-hide for showing the \"no results found\" text', 'I think it\'s better to use ng-hide instead of ng-if to show the \"no results found\" text.\r\n\r\nWhat do you think?', '3', null, null, 'yannickoo', '2014-08-09T13:36:06Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5570', '37', '8548', 'Unit testing link broken and on other', 'I only changed the unit testing link because I wasn\'t sure about the Testing services link. It is also broken, but the only relevant link I found was this: https://docs.angularjs.org/guide/services#unit-testing', '1', null, null, 'edhedges', '2014-08-09T14:33:56Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5571', '37', '855', 'fix(form): preperly clean up when invalid widget is removed', 'Removing invalid widget sometimes resulted in improper cleanup of the form state.', '0', null, null, 'mhevery', '2012-04-04T05:05:57Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5572', '37', '8550', 'fix(): allow spaces around dots for identifiers', 'Fixes #4613', '10', null, null, 'pkozlowski-opensource', '2014-08-09T20:57:12Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5573', '37', '8554', 'fix($compile): make \'=\'-bindings NaN-aware', 'Update parent and child scopes correctly when a \'=\'-binding changes from a NaN\nvalue.\n\nCloses #8553', '2', null, null, 'caitp', '2014-08-10T07:01:03Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5574', '37', '8555', 'fix($compile): make \'=\'-bindings NaN-aware', 'Update parent and child scopes correctly when a \'=\'-binding changes from a NaN\nvalue.\n\nTBR by angular-core', '1', null, null, 'caitp', '2014-08-10T07:21:36Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5575', '37', '8557', 'Make `$httpBackend` style consistent', '', '3', null, null, 'theLearningChan', '2014-08-10T10:16:12Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5576', '37', '8558', 'docs(scope) $eval and $evalSync expressions are not optional', '', '1', null, null, 'basarat', '2014-08-10T11:03:51Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5577', '37', '8559', 'fix($parse): properly handle dots at the end of identifiers', 'Fixes #4613\r\nFixes #4912', '7', null, null, 'pkozlowski-opensource', '2014-08-10T11:09:06Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5578', '37', '8560', 'docs($q): Document optional parameters for $q.when', 'This documents undocumented methods present in the `$q.when` API.', '6', null, null, 'wesleycho', '2014-08-10T14:27:30Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5579', '37', '8563', 'docs(docs.css): better code for commas in TOC on mobile', 'It\'s still not perfect, but now it looks like this:\r\n![image](https://cloud.githubusercontent.com/assets/94334/3873813/ff4686ae-2137-11e4-8766-db9317085fc3.png)\r\n', '3', null, null, 'thorn0', '2014-08-11T09:15:14Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5580', '37', '8568', 'fix(form): ensure concurrent animations use setClass', 'When addClass and removeClass are called in parallel it may\r\ncause follow-up animations to get blocked. This fix ensures\r\nthat the validity state CSS classes are applied at the same\r\ntime via $animate.setClass.\r\n\r\nCloses #8166', '3', null, null, 'matsko', '2014-08-11T17:55:02Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5581', '37', '857', 'fix(booleanAttrs): convert to boolean', 'jQuery\'s attr() does not handle 0 as false, when it comes to boolean attrs.\r\n\r\nAnother solution might be to not set attr() for boolean attrs at all...', '0', null, null, 'vojtajina', '2012-04-04T18:45:45Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5582', '37', '8572', 'length validator fix for input[tel] et al.', 'Input values that contain all numbers (such as zip codes, phone numbers, etc) will always be invalid unless the value is converted to a string first. \r\n\r\ne.g. 1234.length is always undefined, and \'1234\'.length equals 4, which is what should be checked against minlength and maxlength.', '4', null, null, 'neilfarted', '2014-08-11T22:13:54Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5583', '37', '8575', 'Update step_10.ngdoc', 'the data is evaluated phones', '3', null, null, 'wuxutao', '2014-08-12T06:42:26Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5584', '37', '8577', 'Update rootScope.js', 'I proposed this change to avoid this error : http://jsfiddle.net/kEyqz/1/ (to look debug console)\r\n\r\nI have also this bug with a redirect just after event catched by my scope and i broadcasted event with rootScope.', '3', null, null, 'ChristopheBoucaut', '2014-08-12T11:59:18Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5585', '37', '8579', 'Introduce callback \"after-animation\" to ngInclude', 'The after-animation-callback can be used to hook into the rendering of the ngInclude-directive. This is useful in case the client wants to restore a scrolling-position after the view has been rendered.\r\n\r\nThis can be used as a generalization of the anchorscroll, which can only scroll to a defined anchor in the document. \r\n\r\nThe usecase which led to the development of this pull-request contained the need to scroll to a specific numer of pixels, which could only be realized by hooking into the after-animation event and exposing it to the client.', '11', null, null, 'tobias74', '2014-08-12T15:19:21Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5586', '37', '8580', 'chore(doc-gen): move e2e tests into docs folder', 'These tests didn\'t really fit in the test folder as the docs app is mostly\r\na separate entity from the AngularJS codebase.', '2', null, null, 'petebacondarwin', '2014-08-12T16:51:01Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5587', '37', '8581', 'docs(CHANGELOG.md): add changelog for v1.3.0-beta.18 and v1.2.22', null, '0', null, null, 'caitp', '2014-08-12T16:57:47Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5588', '37', '8582', 'Fix: version number', 'fix: version number\r\n\r\nFix version number in CHANGELOG.md\r\n1.2.2 to 1.2.22', '3', null, null, 'micellius', '2014-08-12T18:06:38Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5589', '37', '8584', 'Allowing angular-touch to work with jQuery.', 'Angular includes a small subset of jQuery out of the box called jqLite. Normally, angular wraps all the elements it passes to its directives in jqLite. When jQuery is loaded ahead of angular, angular instead wraps its elements in the full implementation of jQuery. Additionally, angular wraps its events in jQuery. These jQuery events work throughout most of angular. Angular-touch currently was not working with those jQuery-wrapped events. Touches were registering inconsistently and rarely when using the ngClick directive. This commit should fix that. I took it from another person I found on github. I\'m not sure why his changes were never merged into the main angular.js repo, but I\'ve verified that it works and I decided to submit a pull request for it. There is a bug/issue thread I found relating to this. It is linked below.\r\nhttps://github.com/angular/angular.js/issues/4001\r\n', '9', null, null, 'mcmar', '2014-08-12T18:21:32Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5590', '37', '8587', 'perf(benchpress): add benchpress node module and port over large table t...', '...est', '2', null, null, 'jeffbcross', '2014-08-13T00:48:29Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5591', '37', '8589', 'chore(Angular): drop support for Opera < 15', 'Not sure if it\'s worth doing it. ;)', '1', null, null, 'mzgol', '2014-08-13T09:56:57Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5592', '37', '8594', 'Fix the link to protractor\'s getting started doc', 'The current link is broken as the protractor commit https://github.com/angular/protractor/commit/fcd973b8f8b0164bd44c4438905bf3e54b2815bc#diff-f3b56000093113bd3bfb6c9c05e7e945 that splits the overview doc into multiple files.', '0', null, null, 'NicolaeNMV', '2014-08-13T13:21:04Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5593', '37', '8595', 'docs(guide/e2e-testing): fix the link to protractor\'s getting started', 'The current link is broken as the protractor commit angular/protractor@fcd973b#diff-f3b56000093113bd3bfb6c9c05e7e945 that splits the overview doc into multiple files.', '3', null, null, 'NicolaeNMV', '2014-08-13T13:32:49Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5594', '37', '8596', 'Add .noConflict() functionality', '- add .noConflict() to the public api', '15', null, null, 'hekike', '2014-08-13T14:39:29Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5595', '37', '8599', 'test: see if dgeni is totally borked in master right now', 'Dgeni is failing mysteriously in a few CLs right now, just checking...', '0', null, null, 'caitp', '2014-08-13T17:52:43Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5596', '37', '86', 'Issue 33', 'HTML sanitization in 3.5KB', '1', null, null, 'mhevery', '2010-10-26T04:48:38Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5597', '37', '8601', 'DUPE of 8358 (1 commit added)', 'Pull requesting for Travis with new commit + rebase', '1', null, null, 'jeffbcross', '2014-08-13T18:33:07Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5598', '37', '8603', 'feat(ngMock): enable delaying of individual mock XHR responses', 'Mock $httpBackend responses are issued immediately.\r\nResponses can be delayed, through a decorator, but this applied to all responses.\r\nThis enables delaying individual responses at the definition.', '4', null, null, 'marneborn', '2014-08-13T19:42:36Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5599', '37', '8604', 'Update route.js', 'Just using a \'controller\' property alone does not work, a templateUrl (even an empty string) must be set as a property as well.\n\n<!-- Reviewable:start -->\n[<img src=\"https://reviewable.io/review_button.png\" height=40 alt=\"Review on Reviewable\"/>](https://reviewable.io/reviews/angular/angular.js/8604)\n<!-- Reviewable:end -->\n', '5', null, null, 'wheatking', '2014-08-13T19:45:33Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5600', '37', '8606', 'Fixes Argentina\'s currency.', 'Currency symbol is \'$\'. The symbol is placed before the number.\r\n\r\nCloses #8583', '7', null, null, 'BartoGabriel', '2014-08-13T21:29:25Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5601', '37', '8607', 'fix(ngHref): remove attribute when empty value instead of ignoring', 'Closes #2755', '2', null, null, 'jeffbcross', '2014-08-13T22:00:40Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5602', '37', '8615', 'fix(ngSanitize): ensure &nbsp; is converted to non-breaking space in IE8', 'IE8 does not convert &nbsp; to a non-breaking space when set using innerHTML,\nand instead converts it to a single U+0020 space character, which causes\nwhitespace to collapse in most HTML elements.\n\nThis CL explicitly converts &nbsp; with U+00A0 in order to prevent this.\n\nCloses #8602', '6', null, null, 'caitp', '2014-08-14T15:38:35Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5603', '37', '8618', 'chore(mocks): remove helper fn angular.mocks.clearData', 'we don\'t need this any more because Karma reloads the iframe after each test run\r\n\r\nRelated to #8532', '0', null, null, 'IgorMinar', '2014-08-15T03:27:45Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5604', '37', '8619', 'perf($compile): move $$isolateBinding creation to directive factory instead of on each link', 'Currently isolated scope info is parsed during the directive linking and a new $$isolateBindings is generated for every link. If the parsing fails an iscp error is thrown on every link of the directive.\r\n\r\nThis moves the parsing into the directive factory, creates a single shared $$isolateBindings, and will only throw the iscp error once if the parsing fails instead of once per link.\r\n\r\nI\'m not sure if batarang still uses $$isolateBindings (I can\'t find any reference to it)? Or if batarang depends on the $$isolateBindings format? Currently this PR changes the $$isolateBindings format, and also only puts $$isolateBindings on isolated scopes instead of every Scope instance.', '12', null, null, 'jbedard', '2014-08-15T05:52:55Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5605', '37', '8622', 'Fixed documentation for controller `^` search', 'Added \'current element\' to \'its parents\'.', '4', null, null, 'Izhaki', '2014-08-15T11:36:17Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5606', '37', '8623', 'docs(orderBy): clarify expression usage in a predicate', 'Closes #8592', '3', null, null, 'pkozlowski-opensource', '2014-08-15T12:31:14Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5607', '37', '8624', 'Remove repetition of \'machine\' in Tutorial', 'Removed repetition of \'machine\' and \'local machine\'. I think this change makes the sentence more concise', '1', null, null, 'tomkadwill', '2014-08-15T12:43:35Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5608', '37', '8625', 'docs(directive): introducing directives more beginner friendly', 'First explain what directives are, then say about custom directives', '1', null, null, 'cironunes', '2014-08-15T17:09:20Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5609', '37', '8626', 'Fix Money simbol for Argentina', 'es-ar is Argentina translation. Argentina has pesos with \'$\' currency symbol.', '6', null, null, 'pablopda', '2014-08-15T17:54:54Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5610', '37', '8627', 'refactor(perf): migration event delegation benchmark to benchpress', '', '4', null, null, 'tbosch', '2014-08-15T18:25:27Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5611', '37', '8628', 'Added namespace tracking to $compile', 'This is in relation to #8494\r\n\r\n### Things to note:\r\n\r\n1. This is a work in progress.\r\n2. This needs cleaned up badly.\r\n3. The commits need flattened.\r\n4. etc.\r\n\r\n### Basic Idea\r\n\r\nAdded namespace tracking to the compile process.\r\n\r\nWhen a namespace change is detected, it updates a namespace context object that contains methods to wrap and clone elements appropriately. There is some ugliness where the namespace context had to be ferried around via some monkey-patches to get them into the appropriate closures.', '5', null, null, 'blesh', '2014-08-15T18:33:14Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5612', '37', '8629', 'feat(input): allow to define the timezone when parsing and formatting dates', 'Allow to define the timezone for parsing dates in `input[date]`, `input[time]`, … as well as in the `dateFilter`.\r\n\r\nCloses #8447.', '11', null, null, 'tbosch', '2014-08-15T19:17:07Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5613', '37', '863', 'fix(docs): change all directive references to use the normalized names', '', '1', null, null, 'IgorMinar', '2012-04-06T23:35:43Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5614', '37', '8632', 'Transform ajax response to json only if no responseType specified or if this responseType is specifically json', 'I realize that even if I send a request with a responseType=\"text\", angular would transform response into an object if it looks like json.\r\n\r\nI think angular should do that only the responseType is absent or if it is === \"json\"\r\n\r\nThat\'s what this pull request is doing', '11', null, null, 'standup75', '2014-08-15T22:15:04Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5615', '37', '8634', 'feat(ngIndeterminate): indeterminate boolean attr', 'This PR adds a new `ngIndeterminate` directive that allows the user to set the `indeterminate` boolean attribute on checkboxes.', '11', null, null, 'ksheedlo', '2014-08-15T23:42:56Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5616', '37', '8635', 'style($rootScope): add semicolon for jshint', '', '3', null, null, 'ksheedlo', '2014-08-15T23:58:10Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5617', '37', '8636', 'Update step_03.ngdoc', 'error in code - will not run', '4', null, null, 'gratco', '2014-08-16T00:08:03Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5618', '37', '8637', 'Concurrent class-based animations, Promises API for Animations & Fixes to Staggering Animations', '## Grouped Class-Based Animations \r\n\r\nNow something like this works fine:\r\n```js\r\n//feel free to call addClass, removeClass and set Class\r\n//as much as you want within your directive code.\r\n$animate.addClass(element, \'one\');\r\n$animate.addClass(element, \'two three\');\r\n$animate.removeClass(element, \'three\');\r\n$animate.setClass(element, \'five\', \'one four\');\r\n\r\n//one animation is run that combines everything together\r\n$rootScope.$digest(); \r\n\r\n//Now the following animations are run at the same time\r\n// -> addClass : \'two five\'\r\n// -> removeClass : \'four\'\r\n```\r\n\r\n\r\n## Promise Callbacks for Animations\r\nThe `doneCallback` function parameter is no more. Use a promise instead.\r\n```js\r\n//before\r\n$animate.addClass(element, \'blue\', doneCallback);\r\n\r\n//after\r\n$animate.addClass(element, \'blue\').then(doneCallback);\r\n```\r\n\r\n## $timeout-based Stagger Animations\r\nThis fix uses $timeout behind the scenes instead of `animation-delay` animation `transition-delay`. It also adds another CSS class called `ng-EVENT-pending`. This new setup allows for 3rd-party CSS keyframe animations to work with Angular-defined stagger styles nicely.\r\n\r\nhttps://s3.amazonaws.com/angularjs-dev/class-based-fixes/animate.html\r\n\r\n## Closes\r\nCloses #7228\r\nCloses #7547\r\nCloses #8297\r\nCloses #8547 ', '1', null, null, 'matsko', '2014-08-16T02:22:26Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5619', '37', '8638', 'docs($rootScope): document scope properties', '', '2', null, null, 'shahata', '2014-08-16T09:16:27Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5620', '37', '8639', 'fix(docs): change properties to use description instead of returns', '', '1', null, null, 'shahata', '2014-08-16T09:25:54Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5621', '37', '8641', 'WIP: even-more-perf-rebased', 'ignore this pr, it\'s here just for CI testing', '0', null, null, 'IgorMinar', '2014-08-16T21:23:41Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5622', '37', '8643', 'docs(compile): change restrict\'s defaults to EA', 'as now the directives restrict defaults are EA (11f5aeeee952a395edaf54e3277674f211a82fc7) let\'s update the docs', '1', null, null, 'cironunes', '2014-08-17T03:54:12Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5623', '37', '8648', 'perf(jqLite): only take str.split() path when needed', 'bda673f8e785f299407c8c45887f37448a0f0192 changed code to only use\n`str.split()` when necessary, but the result was that `str.split()` would\nalways be taken unless \' \' was the first character in the string, negating the\neffectiveness of the perf fix.\n\n/cc @IgorMinar --- re https://github.com/angular/angular.js/commit/bda673f8e785f299407c8c45887f37448a0f0192#commitcomment-7417474\n\nLets check this in fast, since it\'s such a tiny change', '2', null, null, 'caitp', '2014-08-17T20:44:32Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5624', '37', '865', 'ngBindHtml fix', '', '1', null, null, 'IgorMinar', '2012-04-08T09:51:31Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5625', '37', '8652', 'Interpolate performance', 'Set of small performance improvements', '4', null, null, 'lgalfaso', '2014-08-18T11:10:22Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5626', '37', '8654', 'Fix salt wikipedia link that has parens in the URL', '', '4', null, null, 'jeffsheets', '2014-08-18T16:21:25Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5627', '37', '8656', 'test(benchmark): add jQuery no-op script to large table benchmark', '', '2', null, null, 'jeffbcross', '2014-08-18T17:56:28Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5628', '37', '8660', 'docs($location): add note about breaking anchor links', 'As explained in #4608, $location injection can cause issues by inserting a / after a hash in the url, if html5mode is not enabled. Possible fix is in #8508.', '3', null, null, 'RichardLitt', '2014-08-18T21:04:21Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5629', '37', '8666', 'ngDisabled doc: clarify \"don\'t do this\" example', 'It\'s not clear until you read the whole thing that it\'s an explanation of what *not* to do and why, so if you scan the page from the top, you may use this bad solution.', '5', null, null, 'henrik', '2014-08-19T09:23:37Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5630', '37', '8668', 'docs(ngBind): irrelevant text removed from ngBindHtmls example', 'The ngBindHtmls example had a copied line from ngBindTemplates thats irrelevant here.', '1', null, null, 'bfontaine', '2014-08-19T13:07:06Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5631', '37', '867', '$browser cleanup', '\r\n', '0', null, null, 'IgorMinar', '2012-04-09T21:30:32Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5632', '37', '8673', 'docs: update module.ngdoc Hello World example', 'Helpful for people new to Angular to see the ng-app declaration in context with the expression example. This will help illustrate the \"Important thing to notice\" point which follows: \"The reference to myApp module in <html ng-app=\"myApp\">. This is what bootstraps the app using your module.\"', '13', null, null, 'danbergman', '2014-08-19T15:27:13Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5633', '37', '8677', 'chore(protractor): enable testing ng-app-included examples', '/cc @petebacondarwin / @juliemr please review :>\n\nBlocks #8673', '0', null, null, 'caitp', '2014-08-19T20:13:10Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5634', '37', '8678', 'Fixed a few awkward sentences.', '', '1', null, null, 'mekane', '2014-08-19T20:34:38Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5635', '37', '8679', 'fix($sanitize): sanitize javascript urls with comments', 'Closes #8274', '1', null, null, 'btford', '2014-08-19T20:45:22Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5636', '37', '868', 'outdated controller documentation?', '...t/xhrud/njfxP/1/ vs fixed: http://jsfiddle.net/xhrud/MLErG/1/)\r\n\r\nI think this fixes some outdated docs in the controller section. I put up two jsfiddles showing what does not work and what does work, and then updated the documentation.\r\n\r\nChris', '3', null, null, 'xrd', '2012-04-10T16:31:48Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5637', '37', '8681', 'fix($location): don\'t call `indexOf()` of undefined `href` attribute', 'Closes #7721', '1', null, null, 'caitp', '2014-08-19T22:51:41Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5638', '37', '8682', 'fix(linky): handle quotes around email addresses', 'Closes #8520', '2', null, null, 'btford', '2014-08-19T23:08:11Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5639', '37', '8684', 'fix($location): rewrite relative paths correctly path===\'/\' in legacy html5Mode', 'Currently, legacy browsers get to use a clever scheme for resolving relative\nURIs in html5Mode, and resolve the URI relative to $location.path().\n\nCurrently, $location.path() can be \'/\' under certain circumstances, which\nmeans that when we split $location.path() on \'/\' and later join by \'/\' after\nadding another path component, we end up with \'//pathComponent\'. $$rewrite\nfails to deal with this correctly, and effectively the $location is never\nchanged from the root path.\n\nThis CL corrects this by ensuring that the duplicate \'/\' situation does not\noccur when resolving relative URIs.', '1', null, null, 'caitp', '2014-08-20T01:21:24Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5640', '37', '8686', 'Correct syntax for form element', '', '5', null, null, 'Gillespie59', '2014-08-20T07:31:54Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5641', '37', '8687', 'Fix for #8234', 'This is crappy synchronisation bug that can run you absolutely crazy trying to devise what has gone wrong with your `ngMinLength`.', '15', null, null, 'alexeykudinkin', '2014-08-20T07:48:11Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5642', '37', '8689', 'docs($compile): remove a duplicate word', '', '0', null, null, 'thorn0', '2014-08-20T11:16:40Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5643', '37', '8690', 'docs($compile): fix documentation for ?^ controller search', 'docs($compile): fix documentation for ?^ controller search\r\n\r\nFixed typo: \'parents parents\' to \'parents\'', '1', null, null, 'Izhaki', '2014-08-20T13:29:09Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5644', '37', '8691', 'feat($parse): add support for \'\\b\' and \'\\xXX\'', '* Add suport for `\'\\b\'` and `\'\\xXX\'`\r\n* Throw when octal literals are found', '1', null, null, 'lgalfaso', '2014-08-20T14:24:13Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5645', '37', '8694', 'Update angular-mocks.js', '', '5', null, null, 'mishoo78', '2014-08-20T16:27:57Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5646', '37', '8695', 'test(jQuery): test not firing $destroy on jQuery.cleanData with jQuery UI', 'So far it wasn\'t tested that Angular\'s logic for skipping it triggering\r\nthe $destroy event on jQuery.cleanData in the replaceWith internal function\r\nworks correctly when Angular is not the last one to patch the cleanData method\r\n(e.g. if jQuery UI does the patching later). This commits adds the relevant\r\ntest.\r\n\r\nRef #8486\r\n\r\ncc @IgorMinar', '8', null, null, 'mzgol', '2014-08-20T18:26:30Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5647', '37', '8697', 'Test showing that all tests still pass when the skipDestroyOnNextJQueryCleanData flag is removed completely (it used to fail then)', 'cc @IgorMinar\r\n\r\nThis is not a real PR, it\'s just made to have the tests run to illustrate my point at https://github.com/angular/angular.js/pull/8695#issuecomment-52823441\r\n\r\nTest showing that all tests still pass when the skipDestroyOnNextJQueryCleanData flag is removed completely (it used to fail then).', '2', null, null, 'mzgol', '2014-08-20T18:56:31Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5648', '37', '87', 'Issue 33', 'sanitization in 3.5Kb', '1', null, null, 'mhevery', '2010-10-26T04:55:55Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5649', '37', '870', 'chore(*): remove dead code and fix code style issues', '', '1', null, null, 'IgorMinar', '2012-04-10T21:32:29Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5650', '37', '8700', 'fix(minErr): encode btstrpd error input to strip angle brackets', 'The $sanitize service was returning an empty string to the error page\r\nbecause the input was usually a single html tag (sometimes it could be\r\n`document`). This fix replaces angle brackets with html entities.\r\n\r\nCloses #8683', '2', null, null, 'jeffbcross', '2014-08-20T23:27:54Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5651', '37', '8701', 'chore(shrinkwrap): add angular-benchpress to shrinkwrap', '', '2', null, null, 'jeffbcross', '2014-08-21T00:25:02Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5652', '37', '8702', 'fix(copy): clear array destinations correctly for non-array sources', 'Previously, we failed to modify the `length` property of an array destination when\ndealing with non-array sources. This CL ensures that the length is correctly reset\nto 0 before copying properties from the source object.\n\nWhile it\'s not a super-important feature, it\'s literally a single line of code and\nnot very difficult to understand\n\nCloses #8610', '3', null, null, 'caitp', '2014-08-21T01:24:23Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5653', '37', '8705', 'fix(numberFilter): format large numbers correctly', 'format large number to correct form instead of NAN.00 currently.\r\nin previous code when first time we add the exponent with fractionSize\r\n(number.toString()+\'e\'+fractionsize)\r\n and then convert it to an integer using ,\r\n+(number.toString()+\'e\'+fractionsize)\r\nwhen the number is very large and number will be represented by using exponent. for example 12345868059685210000 will be represented by 1.234586805968521e+21. as getting string in exponent is not handles, we get the number as NAN.\r\nHandle when the number is being represented in exponent form, by adjusting exponent of number with fraction size:\r\n\r\nCloses #8674', '33', null, null, 'samuelharden', '2014-08-21T11:54:04Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5654', '37', '8708', 'refactor($q): make $q Promises A+ v1.1 compilant', 'The Promises A+ 1.1 spec introduces new constraints that would cause $q to fail,\r\nparticularly specs 2.3.1 and 2.3.3.\r\n\r\nNewly satisfied requirements:\r\n\r\n * \"then\" functions that return the same fulfilled/rejected promise \r\n will fail with a TypeError\r\n * Support for edge cases where \"then\" is a value other than function\r\n\r\nFull 1.1 spec: https://github.com/promises-aplus/promises-spec/tree/1.1.0\r\n\r\nThis commit also modifies the adapter to use \"resolve\" method instead of \"fulfill\"\r\n\r\n(PR replaces #5976)', '8', null, null, 'jeffbcross', '2014-08-21T17:22:33Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5655', '37', '8709', 'chore($q): convert thrown TypeError to $minErr', '', '16', null, null, 'jeffbcross', '2014-08-21T18:32:26Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5656', '37', '871', 'fix(input.radio): make it work inside repeater', 'Closes #869', '0', null, null, 'vojtajina', '2012-04-10T23:10:23Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5657', '37', '8711', 'typo fix', 'Minor typo fix', '1', null, null, 'cflynn07', '2014-08-21T19:20:59Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5658', '37', '8712', 'Update step_07.ngdoc', 'Going through the tutorial, I was a little confused when the bower.json example had the name set to angular-seed. It appears that this is something that was corrected in the angular-phonecat project, but the tutorial documentation hasn\'t been updated to match.\r\n\r\nChanged the example JSON to be the latest bower.json for angular-phonecat step-7.', '4', null, null, 'rush340', '2014-08-21T20:54:16Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5659', '37', '8715', 'fix(Angular): Infinite $digest Loop occur when using deep $watch on an o...', '...bject that contains an \"Invalid Date\"\r\n\r\nAdd better check for invalid dates in method equals.\r\n\r\nfixes #8650', '3', null, null, 'SekibOmazic', '2014-08-21T23:43:38Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5660', '37', '8716', 'fix($compile): use the correct namespace for transcluded svg elements', 'Via transclusion, svg elements can occur outside an `<svg>` container in an\r\nAngular template but are put into an `<svg>` container through compilation\r\nand linking.\r\n\r\nE.g.\r\nGiven that `svg-container` is a transcluding directive with\r\nthe followingg template:\r\n```\r\n<svg ng-transclude></svg>\r\n```\r\n\r\nThe following markup creates a `<circle>` inside of an `<svg>` element\r\nduring runtime:\r\n```\r\n<svg-container>\r\n <circle></circle>\r\n</svg-container>\r\n```\r\n\r\nHowever, this produces non working `<circle>` elements, as svg elements\r\nneeds to be created inside of an `<svg>` element.\r\n\r\nThis change detects for most cases the correct namespace of transcluded content\r\nand recreates that content in the correct `<svg>` container\r\nwhen needed during compilation. For special cases it adds an addition argument\r\nto `$transclude` that allows to specify the future parent node of elements\r\nthat will be cloned and attached using the `cloneAttachFn`.\r\n\r\nRelated to #8494\r\n', '4', null, null, 'tbosch', '2014-08-21T23:57:22Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5661', '37', '8717', 'fix(ngModel): allow non-assignable binding when getterSetter is used', 'Closes #8704', '2', null, null, 'shahata', '2014-08-22T01:22:07Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5662', '37', '8718', 'refactor(Angular): make NaN check in date equality cleaner', '', '10', null, null, 'shahata', '2014-08-22T01:42:11Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5663', '37', '872', 'feat($http): expose the defaults config as $http.defaults', 'Often it is impossible to set the http defaults during the config phase,\r\nbecause the config info is not available at this time.\r\n\r\nA good example is authentication - often the app needs to bootstrap,\r\nallow user to enter credentials and only then it gains access to\r\nsession token which then should be sent to the server with every request.\r\nWithout having the ability to set the defaults at runtime, the developer\r\neither has to resort to hacks, or has to set the session token header\r\nwith every request made by the app.', '1', null, null, 'IgorMinar', '2012-04-11T06:24:51Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5664', '37', '8720', 'docs(guide/module): update tag in description', 'the reference to \'myApp\' module changed in the example from an HTML tag to a DIV. Updating description to reflect the new DIV tag.', '2', null, null, 'danbergman', '2014-08-22T03:06:10Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5665', '37', '8725', 'fix(input): use lowercase method to account for undefined type', 'This was causing some internal breakages. I verify that this fixes the problem, but I haven\'t yet pinned down exactly how this case/path occurred.', '2', null, null, 'jeffbcross', '2014-08-22T07:37:16Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5666', '37', '8727', 'docs(ngResource): detail way to skip default json serialization/deserialization', 'docs(ngResource): detail way to skip default json serialization/deserialization\r\n\r\nin reference to this pull request, an update in the documentation is the best way to go about it: https://github.com/angular/angular.js/pull/8632', '11', null, null, 'standup75', '2014-08-22T13:20:49Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5667', '37', '8728', 'docs(navigation): side navigation footer overlap problem fix', '![screen shot 2014-08-22 at 18 09 10](https://cloud.githubusercontent.com/assets/330566/4012491/4d1c1432-2a0e-11e4-9411-d20ad3b87cb5.png)\r\n', '5', null, null, 'sercaneraslan', '2014-08-22T13:28:52Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5668', '37', '8729', 'fix(ngRepeat): allow aliasAs identifiers which contain but do not match reserved words', 'Currently if a reserved word occurs anywhere within the aliasAs identifier, we\nthrow. This CL fixes this behaviour by allowing these identifiers, since they\nare technically perfectly valid.', '0', null, null, 'caitp', '2014-08-22T13:29:02Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5669', '37', '873', 'chore(ngSanitize): extract $sanitize, ngBindHtml, ngBindHtmlUnsafe, link...', '...yFilter into a module\r\n\r\nCreate build for other modules as well (ngResource, ngCookies):\r\n- wrap into a function\r\n- add license\r\n- add version\r\n\r\nBreaks $sanitize service requires loading ngSanitize module\r\nBreaks ngBindHtml, ngBindHtmlUnsafe directives require loading ngSanitize module\r\nBreaks linky filter requires loading ngSanitize module', '0', null, null, 'vojtajina', '2012-04-11T18:21:54Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5670', '37', '8731', 'Add a warning about the usage of ng-src', 'The example is confusing and lead to incorrect usage of ng-src. In development, you may get a DirectoryListing when fetching a resource without the `hash`, but in production if DirectoryListing is disabled, you get a 404.\r\nBy adding the warning, the user will be aware of the implication of ng-src.', '4', null, null, 'jsgoupil', '2014-08-22T16:05:57Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5671', '37', '8732', 'Update form.js', 'Fix documentation for $setSubmitted and document $submitted property /cc @mprobst ', '3', null, null, 'zahragh', '2014-08-22T18:52:34Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5672', '37', '8734', 'fix($browser): colon in url causes infinite digest in FF', 'Bug found when an angular app is running in an iframe + has a colon in the query string in Firefox. This stops angular from working until the page is refreshed, errors are: \r\n\r\n```\r\nError: [$rootScope:infdig] 10 $digest() iterations reached. Aborting!\r\nWatchers fired in the last 5 iterations: [[\"fn: $locationWatch; newVal: 7; oldVal: 6\"],[\"fn: $locationWatch; newVal: 8; oldVal: 7\"],[\"fn: $locationWatch; newVal: 9; oldVal: 8\"],[\"fn: $locationWatch; newVal: 10; oldVal: 9\"],[\"fn: $locationWatch; newVal: 11; oldVal: 10\"]]\r\n```\r\n(fixed with the addition to line 178)\r\nand \r\n\r\n```\r\nException { message: \"\", result: 2147500037, name: \"NS_ERROR_FAILURE\"}\r\n```\r\n(fixed with the addition to line 125).\r\n\r\nWhat is happening is that Firefox\'s location.href encodes colons (after string position seven) to %3A. This doesn\'t match with other encoding and the app gets stuck. For example, we were passing in an absolute url through the query and getting issues; it also happened with the port on localhost. Very similar to: [#920](https://github.com/angular/angular.js/issues/920). \r\nTo reproduce, just run a small app locally in Firefox (I was able to recreate with angular phonecat) in an iframe. \r\n\r\n```\r\n<html> \r\n <body>\r\n <iframe src=\"http://localhost:8000/app/index.html#/?url=https:www.google.com>\r\n </body>\r\n</html>\r\n```', '11', null, null, 'mackenco', '2014-08-22T20:04:37Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5673', '37', '8735', 'chore(shallowCopy): ensure primitives return the src argument', 'var x = 1,\r\n y = 2;\r\n\r\ny = shallowCopy(x, y);\r\nconsole.log(y);\r\n\r\nPrior to this fix, y would return 2 rather than 1.', '3', null, null, 'FuzzySockets', '2014-08-22T20:40:53Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5674', '37', '8736', 'feat(*): coalesce $apply calls which occur close together WIP', 'This is a work-in-progress, implementing what has been discussed with @kseamon and @IgorMinar\n\nThere are some open questions about this still, this first commit is a bit more feature-packed\nthan the original implementation, and maybe some of that stuff should be trimmed down or changed\na bit.\n\nAdding support for $http now.', '14', null, null, 'caitp', '2014-08-22T20:41:44Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5675', '37', '8738', 'Implement $q.allSettled', 'Implement ```$q.allSettled()```. This function is nearly identical to ```$q.all()```, except that it doesn\'t reject on the first rejected promise and it rejects with the set of results instead of the result of the first rejection.\r\nhttps://github.com/kriskowal/q#combination\r\n\r\nFixes #8737.\r\n\r\nTODO: Assuming this feature is accepted this PR also needs tests and docs.\r\nNote: This code pattern could potentially be generalized to minimize duplicated code between ```$q.all()``` and ```$q.allSettled()```.', '5', null, null, 'deckar01', '2014-08-22T23:02:35Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5676', '37', '874', 'Fixed typo. Changed \'liking function\' to \'linking function\'', '', '2', null, null, 'simpulton', '2012-04-12T04:12:46Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5677', '37', '8741', 'perf($compile): only iterate over elements with link functions', 'I\'ve been thinking about this a while and @IgorMinar added a TODO for it in 3e0a2e1f.\r\n\r\nIn a quick test I found this lowered the link time 5-10% for a table row with only ~2/15 cells requiring linking. For DOM trees with a higher percentage of annotated nodes this shouldn\'t have any noticeable effect. However I think having 50%+ non-annotated nodes is very common (a newline/whitespace text node per element...).', '11', null, null, 'jbedard', '2014-08-23T04:28:15Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5678', '37', '8743', 'Preserve all $$ properties when call shallowClearAndCopy', 'ngRepeat directive need this property to keep DOM element.\r\nOtherwise when resource updates, the associated element will be removed and a new same element will be created. ', '7', null, null, 'ipoly', '2014-08-23T13:27:50Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5679', '37', '8744', 'fix($interpolate): use the first end symbol that forms a valid expression', 'When an interpolation string has multiple end symbol choices, pick the\r\noccurrence that forms a valid expression\r\n\r\nCloses #8642', '11', null, null, 'lgalfaso', '2014-08-23T14:26:57Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5680', '37', '8745', 'fix(numberFilter): format numbers that round to zero as nonnegative', 'Previously when a negative number was rounded to 0 by the number filter\r\nit would be formatted as a negative number. This means something like\r\n`{{ -0.01 | number: 1 }}` would output `-0.0`. Now it will output `0.0`\r\ninstead.\r\n\r\nCloses #8489', '1', null, null, 'smilli', '2014-08-23T15:11:45Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5681', '37', '8746', 'introduce after-animation-callback into ng-include-directive', 'This pull-request introduces a new callback to the ng-include-directive.\r\n\r\nThe existing callback in this directive triggers the $autoScroll-function which scrolls to a specific anchor in the document. In my use-case I had to scroll a specific amout of pixels, after animation completes. I could only achive that by introducing the new callback \"afterAnimation\", which is executed right after the $autoScroll inside the directive.\r\n\r\nMaybe this is useful to other developers, hence I packed this into a pull-request :-)\r\n\r\nThank you :-)', '3', null, null, 'tobias74', '2014-08-23T15:23:00Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5682', '37', '8747', 'refactor(ngRepeat): improve errors for duplicate items', '-Log the value that had the duplicate key, as well as the key\r\nThe error that is thrown when items have duplicate track by keys can be\r\nconfusing because only the duplicate key is logged. If the user didn\'t\r\nprovide that key themselves, they may not know what it is or what item\r\nit corresponds to.', '3', null, null, 'smilli', '2014-08-23T18:12:38Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5683', '37', '8749', 'Update di.ngdoc', 'fixed typo, behinds > behind', '1', null, null, 'smithl', '2014-08-23T20:11:38Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5684', '37', '8750', 'docs(filter): clarify what filter matches against', '', '6', null, null, 'patelvin', '2014-08-23T21:21:43Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5685', '37', '8753', 'feat(ngSwipe) : add touch time', 'Swipe event is emitted when I move a text cursor on iPhone.\r\nI need how to decide whether swipe event is moving a text cursor or not.\r\nI use touch time for it.', '0', null, null, 'takeshi', '2014-08-24T15:45:41Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5686', '37', '8755', 'chore(loadModules): remove unused invoke queue variable', '', '1', null, null, 'FuzzySockets', '2014-08-24T16:14:44Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5687', '37', '8756', 'fix($http): propagate status -1 for aborted requests', 'Fixes #4491', '2', null, null, 'pkozlowski-opensource', '2014-08-24T18:14:47Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5688', '37', '8757', 'docs(ngRepeat): update step_02.ngdoc with challenge ', 'I tried making a 5x5 table using two ng-repeaters. This showed me that it is the element with the ng-repeat attribute on it that gets repeated, and not only the contents of it. Next time I won\'t be adding the repeater to the table tag :)\r\nAnyway, this is why I propose to add a little challenge to the readers regarding ng-repeat.', '9', null, null, 'nicolaiskogheim', '2014-08-24T18:58:21Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5689', '37', '8767', 'feat(testability): add $testability service', 'The $testability service is a collection of methods for use when debugging\r\nor by automated testing tools. It is available globally through the function\r\n`angular.getTestability`.\r\nFor reference, see the Angular.Dart version at\r\nhttps://github.com/angular/angular.dart/pull/1191', '29', null, null, 'juliemr', '2014-08-25T23:04:33Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5690', '37', '8769', 'Update directive.ngdoc', 'Change regarding default restrict option', '1', null, null, 'akhlesh', '2014-08-26T02:44:08Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5691', '37', '8770', 'make it easier to search for \'how to escape...\'', 'Adds an example of escaping to the code section of the document. I wrote `|format:\"MMM dd, yyyy at h:mma\"` -- I didn\'t find why it didn\'t work in the docs, but on a blog post because I was looking for \"how to escape\"', '4', null, null, 'dennishall1', '2014-08-26T02:58:20Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5692', '37', '8771', 'refactor($injector): remove unused strictDi argument', 'Unless I\'m missing something, createInternalInjector only accepts two arguments.', '1', null, null, 'FuzzySockets', '2014-08-26T05:04:01Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5693', '37', '8772', 'Added dollar sign to setSubmitted() in documentation', 'Dollar sign was missing for setSubmitted()', '1', null, null, 'grsmvg', '2014-08-26T07:45:43Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5694', '37', '8773', '$location.search(search, [paramValue]) documentation now reflects that paramValue can be a Number', 'I\'ve amended the documentation to reflect that paramValue can also accept a ```Number``` as the value to set in the same manner it currently accepts a ```string```. I\'m aware of it being used like this at present (without issue that I\'m aware of) and so this PR just makes it a recognised usage of the API.\r\n\r\n', '7', null, null, 'johnnyreilly', '2014-08-26T09:24:08Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5695', '37', '8775', 'Added details of executing command at right place', 'Added details of executing command at right place', '3', null, null, 'ajayparsana', '2014-08-26T10:09:49Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5696', '37', '8776', 'Update expression.ngdoc', 'Please, update the section on one-time bindings by another example showing how the feature can be used with filter (chains). I was very surprised - positively - when I discovered that feature today and wished I could have read something about it before, which would have saved me some time.', '6', null, null, 'twwwt', '2014-08-26T12:23:18Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5697', '37', '8779', 'docs($q): fixed spelling, removed extra characters', '', '1', null, null, 'danbergman', '2014-08-26T19:32:23Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5698', '37', '878', '\"makes make\" -> \"makes\"', '', '1', null, null, 'johnlindquist', '2012-04-12T22:23:42Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5699', '37', '8780', 'docs($filter): Date filter am/pm case', 'Use uppercase for AM/PM in date filter\r\n\r\nfixes #8763', '1', null, null, 'SekibOmazic', '2014-08-26T20:00:27Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5700', '37', '8781', 'Hashkey mem', '', '2', null, null, 'IgorMinar', '2014-08-26T20:41:12Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5701', '37', '8783', 'chore(tests): use jquery again in e2e tests', 'jQuery was not included in e2e tests, but we did not notice it\r\nas Angular fell back to jqlite…', '1', null, null, 'tbosch', '2014-08-26T20:47:51Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5702', '37', '8784', 'docs($q): correct @ngdoc annotations for methods of $q', 'Closes #8782', '0', null, null, 'caitp', '2014-08-26T20:55:55Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5703', '37', '8785', '[nomerge ]fix($browser): detect changes to the browser url that happened in sync', 'Just for Travis to run the tests...\r\n\r\nCloses #6976.', '0', null, null, 'tbosch', '2014-08-26T22:25:14Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5704', '37', '8786', 'Return $scope', 'I tried doing this on my own app and kept getting blank areas where directives/expressions would be. I ended up adding a return $scope and this solved this issue, so I\'m adding this to the doc', '2', null, null, 'ryanwooten6', '2014-08-26T22:26:08Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5705', '37', '8787', 'Added local to SanitizationWhitelist', 'HTML5 apps on BlackBerry 10 devices use \"local\" as protocol for local files.', '5', null, null, 'jorgecasar', '2014-08-26T22:52:04Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5706', '37', '8788', 'Browserurlchange', 'Pushing for Travis...you know the drill\r\n\r\nDUPE of #8785', '3', null, null, 'jeffbcross', '2014-08-27T00:25:40Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5707', '37', '8793', 'fix(ngRoute): change interpolation to support globbed routes', 'Update regex so interpolation of an eager path segment does not\r\nleave behind a *.\r\n\r\nIncludes new test cases that fail with previous regex.', '0', null, null, 'millar', '2014-08-27T11:48:01Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5708', '37', '8794', 'docs(shallowCopy): minor grammatical fix', '', '0', null, null, 'FuzzySockets', '2014-08-27T12:33:37Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5709', '37', '8799', 'docs(compile): Fixed typoed `transcluded`', '', '1', null, null, 'zzmp', '2014-08-27T21:07:27Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5710', '37', '88', 'Timezone independent Date-like type', '* TzDate\r\n* angular.String.toDate fix\r\n* date filter fix', '2', null, null, 'IgorMinar', '2010-10-26T05:40:45Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5711', '37', '8800', 'fix($browser): detect changes to the browser url that happened in sync', 'Closes #6976.', '1', null, null, 'tbosch', '2014-08-27T21:07:58Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5712', '37', '8801', 'chore(compare-master-to-stable): make checks for bugfixes better', 'The current version alerts you if a docs fix has something like \"Fixes typo in\nfoo\", which is not how bugfixes are worded, which makes it harder to find real fixes.', '2', null, null, 'caitp', '2014-08-27T21:24:30Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5713', '37', '8802', 'Alow disabling debug info such as ng-scope, ng-binding classes', 'This is based on Pete\'s PR.', '1', null, null, 'vojtajina', '2014-08-27T22:14:29Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5714', '37', '8803', 'fix(ngEventDirs): execute `blur` and `focus` expression using `scope.$ev...', '...alAsync`\r\n\r\nBREAKING CHANGE:\r\nThe `blur` and `focus` event fire synchronously, also during DOM operations\r\nthat add/remove elements. This lead to errors as the Angular model was not\r\nin a consistent state.\r\n\r\nThis change executes the expression of those events now asynchronously.\r\n\r\nRelated to #5945\r\nFixes #4979', '4', null, null, 'tbosch', '2014-08-27T22:31:48Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5715', '37', '8804', 'fix(docs): fix ng-model-options example', '', '3', null, null, 'timkindberg', '2014-08-28T03:37:17Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5716', '37', '8805', 'Implement a first approach of orderBy filter benchmarks by using benchpress', 'Hi @jeffbcross , please take a look this pull request and I\'m curious to understand if the way I implementing \r\nthe benchmarks for `orderBy` is correct.\r\n\r\nIn this commit I try to see the different benchmark between different expression param.\r\nhttps://docs.angularjs.org/api/ng/filter/orderBy \r\n\r\nAbout the tool [benchpress](https://github.com/angular/benchpress), I don\'t really understand the part\r\n`Select number of samples to collect and average:` what really does, because if I change the number does not\r\nlooks something happen.\r\n\r\nThe tool is not hard to set, and for my personal experience the hardest part was figure out what is the best way to test my directive and capture the best realistic benchmark.\r\n\r\nIn the end I really like that this tool could be an official way cross of all AngularJS directives/filters to test the performance release by release.', '6', null, null, 'Zizzamia', '2014-08-28T03:39:12Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5717', '37', '8807', 'Sudo requires for mac os', 'I had to remove everything and reinstall to figure this out, so I think it worth to notice here', '2', null, null, 'yperevoznikov', '2014-08-28T09:42:01Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5718', '37', '8809', 'docs(jsdoc): remove `@kind function` for providers', 'As @petebacondarwin wrote in #7425, `@kind function` \"is only relevant where we want to be able to tell the difference between a service that is an object and a service that is also callable\". Also its presence leads to generation of strange \'Usage\' sections in the docs for providers.\r\n\r\n![image](https://cloud.githubusercontent.com/assets/94334/4076121/5272fd12-2eb7-11e4-897b-9b8f11adb738.png)', '18', null, null, 'thorn0', '2014-08-28T13:32:37Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5719', '37', '881', 'Remove document.getAttribute hack', '', '1', null, null, 'mhevery', '2012-04-13T22:38:51Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5720', '37', '8815', 'docs(interpolate): Fix linking syntax.', '- Change $interpolateProvider#method to $interpolateProvider.method in the apparent link', '1', null, null, 'zzmp', '2014-08-28T18:40:54Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5721', '37', '8816', 'fix($compile): use the correct namespace for transcluded svg elements', 'This fixes the case when a directive that uses `templateUrl`\r\nis used inside of a transcluding directive like `ng-repeat`.\r\n\r\nFixes #8808', '3', null, null, 'tbosch', '2014-08-28T18:48:22Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5722', '37', '8817', 'docs(README): fix \'Contribution guidelines\' link', 'The current link leads to a page \'Building and Testing AngularJS\'. This same link is also included in the \'Building AngularJS\' section of the README where it\'s more relevant.', '1', null, null, 'thorn0', '2014-08-28T18:57:57Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5723', '37', '8818', 'Update ngIf.js', '', '1', null, null, 'amoskane', '2014-08-28T19:45:09Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5724', '37', '8820', 'refactor(docs) use $window and add description for code directive', '- This refactors to use <code>$window</code>, the Angular way instead of using `window` Object. \r\n- Also adds documentation to the `code` directive. \r\n\r\nP.S. also signed Contributor License Agreement (CLA). ', '3', null, null, 'sathify', '2014-08-28T20:32:22Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5725', '37', '8821', 'fix($location): remove an unused parameter of $location.url', 'This parameter does nothing and its description in the docs is meaningless.', '1', null, null, 'thorn0', '2014-08-28T20:47:25Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5726', '37', '8823', '$q.all now returns all promise results when rejecting', 'Just throwing this idea out, since this seems like useful behavior, and is in fact what I expected when first hearing about `$q.all`.\r\n\r\nIdeally, when one of the promises is rejected, it\'s fine that the aggregate promise is rejected, but the results of other promises (resolved or rejected) would still be useful.\r\n\r\nFor instance, when grouping multiple `$http` promises together, it\'s useful to know when one has failed, but the caller **needs** know when all requests have completed at least, and the success/failure status of each.\r\n\r\nHappy to discuss.', '6', null, null, 'rmndk', '2014-08-29T00:13:36Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5727', '37', '8824', 'fix(ngBindHtml): throw error if interpolation is used in expression', 'This is a followup to #8262', '3', null, null, 'rodyhaddad', '2014-08-29T00:32:55Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5728', '37', '8825', 'perf(select): Execute render after $digest cycle', 'This is an optimization to defer execution of the render function in the\r\nselect directive after the $digest cycle completes inside the\r\n$watchCollection expressions. This does a check to see if the render\r\nfunction is already registered in the $$postDigestQueue before it passes\r\nit into $$postDigest, guaranteeing that the DOM manipulation happens\r\nonly in one execution after the model settles.', '3', null, null, 'wesleycho', '2014-08-29T03:46:55Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5729', '37', '8826', 'chore(docs) use $document and consistent css property spacing', 'This PR addresses two things:\r\n- Fixes a spacing issue in line [130](https://github.com/sathify/angular.js/blob/d603be48702e5c791ee68ae83cecdf5a7cadabc9/docs/app/src/search.js#L130) & uses `$document[0]` in line [136](https://github.com/sathify/angular.js/blob/d603be48702e5c791ee68ae83cecdf5a7cadabc9/docs/app/src/search.js#L136) to be consistent with line [134](https://github.com/sathify/angular.js/blob/d603be48702e5c791ee68ae83cecdf5a7cadabc9/docs/app/src/search.js#L134). Both diff in [this file](https://github.com/sathify/angular.js/compare/angular:master...sathify:fix-styles-typo?expand=1#diff-7cf20216c891e60c1e004397cf1dafa4R129).\r\n- Adds a space after \':\' in CSS property declarations where they don\'t exist for consistency and readability.\r\n\r\nPlease note: none of the CSS property has been altered in the PR so it does not change any style or look of the docs site. Simply makes it a little more consistent in property declarations. The docs CSS however is messy and could use a larger refactor. I\'m not sure about the priority and if there are any plans but I\'m more than willing to help refactor/organize/rewrite it. ', '6', null, null, 'sathify', '2014-08-29T04:58:18Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5730', '37', '8827', 'feat: add notify callback to $q.all', 'adding a missing notify callback to $q.all.', '3', null, null, 'krinchai', '2014-08-29T05:11:18Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5731', '37', '8828', 'feat(cookies): Expose setting of expiration for $cookies', 'This makes a modification on $browser in order\r\nto optionally expose setting the expiration date on a cookie, as well as\r\nthe necessary modification on $cookies in order to support a public\r\nfacing api.', '2', null, null, 'wesleycho', '2014-08-29T05:24:20Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5732', '37', '883', 'fix(scenario): make browser().location() working if ng-app on other than...', 'Make browser().location().* methods to work even if ng-app defined on other element than html.\r\n\r\n+ pass $injector into action', '0', null, null, 'vojtajina', '2012-04-14T18:05:36Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5733', '37', '8830', 'feat(dateFilter): Add option to display date as am/pm', 'This adds a new option in order to choose whether to display a date as\r\nAM/PM or am/pm.\r\n\r\nNote: This contains a breaking change. `a` now will display am/pm,\r\nwhereas the old behavior is specified by `A` for AM/PM.\r\n\r\nThis is in support of #8763 .', '5', null, null, 'wesleycho', '2014-08-29T06:08:43Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5734', '37', '8831', 'Rename index.ngdoc to index.doc', '', '2', null, null, 'deddytremonti', '2014-08-29T07:13:04Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5735', '37', '8832', 'Added log enablers/disablers for all logger types on $logProvider', 'This is a pretty simple update. It extends the log provider to allow toggling for each log output type, instead of just for `$log.debug`.', '9', null, null, 'datarhyne', '2014-08-29T08:35:45Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5736', '37', '8833', 'ngSwitch attemps to remove DOM elements twice due to async iteration', 'Basically, I just added a check so that there isn\'t an attempted splice of the previousElement if it has already been removed by an earlier watch iteration between the time that the callback was defined and actually executed', '13', null, null, 'datarhyne', '2014-08-29T08:57:56Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5737', '37', '8834', 'hf', 'hgnf', '2', null, null, 'ghost', '2014-08-29T12:04:21Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5738', '37', '8837', 'chore(IE8): remove all IE8 specific code', 'Remove all code that was IE8 specific', '9', null, null, 'lgalfaso', '2014-08-29T15:04:48Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5739', '37', '8838', 'Mentioned what a blur event is in docs for ngBlur', 'I know this is obvious to anyone who has done much work with the DOM and javascript, but thought it was funny that no mention was made as to what a \'blur\' is. The meaning wouldn\'t be obvious to a newbie.', '4', null, null, 'zymsys', '2014-08-29T15:35:20Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5740', '37', '8839', 'feat($compile): inject directive name to directive controller', 'Most often this might be useful for sharing controller code between directives, in particular for accessing the value of the directive\'s \'main\' attribute: `$attrs[$name]`\r\n\r\nFor example, see [this SO question](http://stackoverflow.com/q/19230264/76173). ', '5', null, null, 'thorn0', '2014-08-29T17:04:50Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5741', '37', '884', 'fix(docs): fix a link to e2e dsl', 'hi! Just a small typo fix in the link to the dsl.', '1', null, null, 'pkozlowski-opensource', '2012-04-16T21:30:42Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5742', '37', '8840', 'Remove duplicate $digest()', 'Seems like the same event was added twice on accident. Perhaps something else was meant in place of the second $digest() but as it stands it is confusing.', '10', null, null, 'gitMbar', '2014-08-29T17:50:32Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5743', '37', '8841', 'fix($resource): provide HTTP status to the success', 'provide status code to the success callback\r\n\r\nfixes #8341', '1', null, null, 'SekibOmazic', '2014-08-29T17:55:53Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5744', '37', '8842', 'Number currency undefined fix', '', '2', null, null, 'IgorMinar', '2014-08-29T18:00:24Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5745', '37', '8843', 'fix(ngSwitch): avoid removing DOM nodes twice within watch operation', 'Closes #8662', '3', null, null, 'matsko', '2014-08-29T18:06:01Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5746', '37', '8845', 'Fix ngRepeat to allow keys starting with $', 'Dear angular team,\r\n\r\nThe issue that this PR is addressing is very similar to https://github.com/angular/angular.js/issues/1463. ngRepeat Directive does not show object/map keys that begin with $. Plunker link http://plnkr.co/edit/0bzuZbzrVX9xLP7e6oHL?p=preview.\r\n\r\nI have followed the same idea that was used in PR https://github.com/angular/angular.js/pull/6253.\r\n\r\nThanks for all the great work.\r\n\r\n', '5', null, null, 'harikrishnan83', '2014-08-29T18:12:26Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5747', '37', '8846', 'fix($animate): wait two until two digests are over until enabling animations', 'Even when no remote templates are to be downloaded, wait two digests until\r\nenabling animations since all structural digests perform a post digest before\r\nrunning animations.\r\n\r\nCloses #8844\r\n\r\n\r\nBroken Example (no remote templates -> `snapshot`):\r\nhttp://plnkr.co/edit/LREaTTieMJj4lOPJTjI0?p=preview\r\n\r\nWorking example (no remote templates -> `this fix`):\r\nhttp://plnkr.co/edit/CuigpbMIB4ZkdmhWJ1bO?p=preview\r\n\r\nWorking example (remote templates -> `snapshot`)\r\nhttp://plnkr.co/edit/QLD5TVtWnHGvCLnFcCYw?p=preview\r\n\r\nWorking example (remote templates -> `this fix`)\r\nhttp://plnkr.co/edit/YtjFzsb7bR2AwfXD9lF2?p=preview', '3', null, null, 'matsko', '2014-08-29T18:25:07Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5748', '37', '8847', 'refactor(indexOf) use Array.prototype.indexOf exclusively', 'This saves around 30 bytes in the minified build for the main file.', '18', null, null, 'realityking', '2014-08-29T19:47:54Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5749', '37', '8849', 'fix(ngEventDirs): check `scope.$$phase` only on `$rootScope`', 'Checking `scope.$$phase` is dangerous since it does not work on isolated scopes. It exists only on `$rootScope`, and isolated scopes do not inherit it.', '4', null, null, 'shahata', '2014-08-29T20:37:23Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5750', '37', '8850', 'perf(ngModelOptions): do not trigger digest during debounce', 'BREAKING CHANGE:\r\nThis change means that anyone watching `$viewValue` will no longer see the update immediately for debounced updates\r\n\r\nCloses #8814', '6', null, null, 'shahata', '2014-08-29T21:05:39Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5751', '37', '8851', 'fix($location): always resolve relative links in html5mode to `<base>` url', 'BREAKING CHANGE (since 1.2.0 and 1.3.0-beta.1):\r\n\r\nAngular now requires a `<base>` tag when html5 mode of `$location` is enabled. Reasoning:\r\nUsing html5 mode without a `<base href=\"...\">` tag makes relative links for images, links, ...\r\nrelative to the current url if the browser supports\r\nthe history API. However, if the browser does not support the history API Angular falls back to using the `#`,\r\nand then all links would be broken.\r\n\r\n\r\nBREAKING CHANGE (since 1.2.17 and 1.3.0-beta.10):\r\n\r\nIn html5 mode without a `<base>` tag on older browser that don\'t support the history API\r\nrelative paths were adding up. E.g. clicking on `<a href=\"page1\">` and then on `<a href=\"page2\">`\r\nwould produce `$location.path()===\'/page1/page2\'. The code that introduced this behavior was removed\r\nand Angular now also requires a `<base>` tag to be present when using html5 mode.\r\n\r\nCloses #8172\r\n', '5', null, null, 'tbosch', '2014-08-29T21:37:37Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5752', '37', '8852', 'chore(css) separate selectors and declarations by new lines', 'This PR follows the Google [CSS guidelines](https://google-styleguide.googlecode.com/svn/trunk/htmlcssguide.xml) rule to start a [new line for each selector and declaration](https://google-styleguide.googlecode.com/svn/trunk/htmlcssguide.xml?showone=Selector_and_Declaration_Separation#Selector_and_Declaration_Separation). Separated selectors and declarations by new lines for readability and consistency in the two CSS files. ', '0', null, null, 'sathify', '2014-08-29T21:45:14Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5753', '37', '8855', 'fix(docs): only check for SEVERE logs in tests', '', '0', null, null, 'tbosch', '2014-08-30T00:52:30Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5754', '37', '8856', 'refactor(ngModel): get rid of revalidate', '', '2', null, null, 'shahata', '2014-08-30T01:09:07Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5755', '37', '8857', 'chore(travis): move docse2e tests into the unit tests vm', 'we spend more time making getting the build ready than running the docs e2e tests.\r\n\r\nby piggy-backing on unit tests we\'ll finish the build faster', '0', null, null, 'IgorMinar', '2014-08-30T04:55:35Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5756', '37', '8858', 'chore(ngSwitch): removed the change attr from ngSwitch and updated spec', 'https://github.com/angular/angular.js/issues/8822', '3', null, null, 'datarhyne', '2014-08-30T05:03:45Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5757', '37', '8859', 'perf(jQuery): only trigger $destroy if a handler exists', 'This is the exact same performance improvement that jQuery UI recently did: https://github.com/jquery/jquery-ui/commit/f7429edfe96d322cdec850f7207efba8125767a6', '3', null, null, 'jbedard', '2014-08-30T06:18:14Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5758', '37', '8861', 'fix(ngModel): make async validators play nicely with $parsers', 'when an async validator resolves, we decrease the `pendingCount` only if the `$viewValue` hasn\'t changed in the mean time. before this commit the view value after resolve was compared with the model value before resolve instead of the view value before resolve. this caused it never to resolve when those two are different (when `$parsers` are defined)', '1', null, null, 'shahata', '2014-08-30T09:17:59Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5759', '37', '8862', 'Update multidir.ngdoc', 'I had bug in my code and this error was shown. My error was that one of my directives has bi direction binding on the attribute and the attribute was name of another of my directives. ', '3', null, null, 'klimentLambevski', '2014-08-30T10:32:21Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5760', '37', '8863', 'fix(ngForm): don\'t clear validity of whole form when removing control', 'calling `$$clearControlValidity` on the parent of a nested form caused the parent form to look like there are no more errors on the nested form even if it still had some inputs with errors. there is no need to call this method recursively since `$setValidity` will propagate the new validity state well enough.', '1', null, null, 'shahata', '2014-08-30T11:32:25Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5761', '37', '8864', 'docs(changelog): fix inline formatting', '', '1', null, null, 'fixe', '2014-08-30T14:22:14Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5762', '37', '8867', 'docs (providers): remove grammar and punctuation mistakes', '', '4', null, null, 'nimamehanian', '2014-08-31T00:52:31Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5763', '37', '8875', 'feat($regexFilter): filter elements by using a regular expression.', 'Added a new filter to search by using a regular expression, either by its own or in an object\'s property.', '3', null, null, 'esarbanis', '2014-09-01T15:17:58Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5764', '37', '8878', 'refactor(angularInit): remove unnecessary forEach', 'It seems like we only ever call this with document, so this removed forEach will never do anything.', '1', null, null, 'mdeady', '2014-09-01T16:31:40Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5765', '37', '8879', 'fix(ngModel): support milliseconds in time and datetime', 'Closes #8874', '10', null, null, 'shahata', '2014-09-01T19:26:43Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5766', '37', '888', 'Broken link: \"angular.module.ng.$sanitize\" -> \"angular.module.ngSanitize...', '....$sanitize\"', '1', null, null, 'johnlindquist', '2012-04-18T01:42:47Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5767', '37', '8880', 'V1.2.x', '', '1', null, null, 'chinmay289', '2014-09-01T21:06:56Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5768', '37', '8882', 'docs(CHANGELOG.md): add breaking change from 5f3f25a1', '5f3f25a1 included a breaking change which was not documented, which is that\nthe return value of directive constructors is ignored. The reason they are\nignored is to ensure that the correct object is bound to when binding\nproperties to the controller. It may be possible to come up with a better\nsolution which informs the developer that what they are doing is wrong, rather\nthan just breaking instead.\n\nCloses #8876', '0', null, null, 'caitp', '2014-09-01T21:57:23Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5769', '37', '8885', 'refactor(ngRepeat): specify explicit `false` for cloneNode deepClone parameter', 'This should provide a slight compat improvement for old versions of Opera, which did not treat the `false` as the default value.\r\n\r\nThere is no test for this fix as Opera 11 is not a browser which runs on the CI servers.\r\n\r\nCloses #8883', '0', null, null, 'caitp', '2014-09-02T06:35:33Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5770', '37', '8889', 'fix($location): set `baseHref` in mock browser to `/`', 'Set the default value for the base tag in the mock browser to `/`,\r\nas we now always require a base tag to be present for html5 mode.\r\n\r\nFixes #8866.', '3', null, null, 'tbosch', '2014-09-02T16:10:50Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5771', '37', '889', 'Select null/unknown option support without ngOption', '', '0', null, null, 'IgorMinar', '2012-04-18T07:51:42Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5772', '37', '8891', 'Phasecheck', 'check `scope.$$phase` only on `$rootScope`\r\n\r\nSee #8849', '0', null, null, 'tbosch', '2014-09-02T17:16:36Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5773', '37', '8892', 'fix(input): $asyncValidators should allow $parsers', 'After resolving the async validators, it should execute all parsers\r\non the viewValue before comparing it to the currentValue.\r\n\r\nCurrently, input[type=number] is not recognizing the end of the async validation because \r\nthe comparison `currentValue === value` is comparing a number in `currentValue` against a string in `value`\r\nhttps://github.com/angular/angular.js/blob/master/src/ng/directive/input.js#L1734', '10', null, null, 'gonzaloruizdevilla', '2014-09-02T19:44:03Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5774', '37', '8893', 'fix(ngAnimate): support removing classes from SVG elements when using jQuery', 'Without this CL, ngShowHide will not work without the use of monkeypatched\nfixes for jQuery such as https://github.com/kbwood/svg \'s jquery-svgdom.js\nscript.\n\n/CC @matsko / @IgorMinar --- as noted above, people can make this work by including third party\nscripts, but I thought since this is technically a regression I would write a patch anyways and\nsee what people think.\n\nSo, the main thing is that this is not reusing the existing jqLiteHasClass method, because jqLite\nis not exported unless jQuery is not found. We could fix this to support code reuse, if we want\nto fix this at all.\n\nThere is one other use of `.hasClass()` in ngAnimate that I can see, so it\'s likely that another\nSVG scenario is broken in jQuery by default, but I haven\'t investigated to see what that other\nscenario is.\n\nBalls in your court, do you think we should fix it or just defer the work to third party code\nlike jquery-svgdom\n\nCloses #8872', '1', null, null, 'caitp', '2014-09-02T22:08:36Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5775', '37', '8894', 'map and forEach: avoid using .call when there is no context', 'The most common use case is calling forEach and map without context.\r\nIn this case, if the iterator function is called directly instead of using iterator.call, there will be a performance gain.\r\n\r\nhttp://jsperf.com/foreach-angularjs\r\n\r\nThe drawback is a small performance cut when there is a context for the iterator.', '2', null, null, 'gonzaloruizdevilla', '2014-09-02T23:05:01Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5776', '37', '8896', 'chore(shrinkwrap): update shrinkwrap to latest benchpress', '', '3', null, null, 'jeffbcross', '2014-09-03T04:55:27Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5777', '37', '8898', 'perf(extend): remove use of forEach to remove calls/closures/passing arguments', 'I found this made `$parse` almost 50% faster when not cached, I assume other cases will also benefit. This also removes the \"bad value context for arguments value\" warning in the chrome profiler.', '2', null, null, 'jbedard', '2014-09-03T06:48:19Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5778', '37', '890', 'fix(script): Incorrectly reading script text on ie (follow-up)', 'The solution proposed by Misko (#0ec13428d7ba1cff67cde43bc90277481cab82ba) break the code for Chrome. The JQuery docs says: \"To get the value of a script element, use the .html() method.\" (http://api.jquery.com/text/)', '4', null, null, 'tleruitte', '2012-04-18T15:03:35Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5779', '37', '8901', '$parse performance/style', 'c074181 might be the only one worth merging to allow the Parser/Lexer objects to be GCed.\r\n\r\nf4ea3c9 addresses a TODO although I didn\'t notice any major improvements (even though the removed wrapper method is often ~10% when profiling...). Unfortunately the wrapper method is still needed for the expressions returned from `$parse`, but use of `getterFn`s within other expressions don\'t have the wrapper. This also required a minor error message change.\r\n\r\nf4ea3c9 could be expanded in other ways though. Maybe allowing `$parse`ed methods to return something such as a `$$watchFn` property that can be watched instead of the full expression being watched. The simple case would be returning the raw `getterFn` instead of the wrapper for simple `foo.bar` expressions. A more complicated case would be expressions such as `myVar % 2 === 0` returning only the `myVar` `getterFn` to be watched (and then a special watch delegate to see if the full expression actually changed, which makes it more complicated...). Or only watching the input+args to filters etc. Not sure how common or useful those would be though...\r\n\r\nThe rest are mostly style/simplifying but I thought I\'d leave them in there.', '3', null, null, 'jbedard', '2014-09-03T08:19:27Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5780', '37', '8904', 'docs(ngSwitch): fix priority', 'Fixes priority of ngSwitch due to the change of #8244\r\n\r\nFixes #8244', '2', null, null, 'thammin', '2014-09-03T11:43:48Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5781', '37', '8906', 'docs(ngModelController): Fix $asyncValidators example', 'Since `$asyncValidators` require rejection in order to invalidate, the example needs to return `$q.reject` instead of `false` from the user lookup resolution.\r\n\r\nAlso, fix small typo in docs.', '1', null, null, 'twhitbeck', '2014-09-03T16:06:41Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5782', '37', '8908', 'docs($location): clarify guide regarding link handling', '', '6', null, null, 'tbosch', '2014-09-03T16:28:16Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5783', '37', '8909', 'docs(CHANGELOG.md): add breaking change for a9fcb0d0 (v1.2.13)', null, '1', null, null, 'caitp', '2014-09-03T16:29:19Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5784', '37', '891', 'Added PATCH support to resource.js and angular-mock.js', 'Adding PATCH support resolves issue https://github.com/angular/angular.js/issues/887\r\n\r\nCould use some input on writing tests to verify functionality. ', '2', null, null, 'simpulton', '2012-04-20T08:36:35Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5785', '37', '8911', 'fix(ngModelOptions): do not trigger digest during debounce', 'PR for merging #8850', '4', null, null, 'tbosch', '2014-09-03T17:46:32Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5786', '37', '8912', 'fix(ngModel): do not reset bound date objects', 'Closes #6666', '14', null, null, 'btford', '2014-09-03T18:56:07Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5787', '37', '8913', 'min/max validator fixes to number and date inputs', 'Closes #2404\r\nCloses #6755', '2', null, null, 'matsko', '2014-09-03T19:20:27Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5788', '37', '8915', 'Update step_03.ngdoc', 'in the last sample, the query variable is unkonw if we don\'t redeclare it.', '1', null, null, 'BenoitCharret', '2014-09-03T21:22:18Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5789', '37', '8922', 'Update index.ngdoc', '', '3', null, null, 'amjadHossain', '2014-09-04T08:01:19Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5790', '37', '8923', 'docs(navigation): side navigation footer overlap problem fix', 'Browser : Firefox 32 (MacOS)\r\nURL: https://docs.angularjs.org/api/\r\nProblem Root: Firefox not applying padding-bottom rule if position rules used.\r\nScreenshot: \r\n![screen shot 2014-09-04 at 11 02 26](https://cloud.githubusercontent.com/assets/330566/4146339/e3dca238-3409-11e4-87c5-ccbdba4ec24e.png)\r\n', '2', null, null, 'sercaneraslan', '2014-09-04T08:03:06Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5791', '37', '8924', 'fix($location): path to work with full url', 'Changed the way $location.path is handled. Now path function will check if the path contain the base url (protocol://host) is this is there in the path. Mostly user has passed the full url instead of path.\r\nWe process it differently, by calling the parse method of the respective location object. Since parse method takes care if the url is HTML5 mode , HTML5 hashbang mode or non HTML5 urls and parses them respectively.\r\n\r\nCurrently i have made directly used the parse function which updates the whole location object. We can also ass a parsePath method to each of LocationHashbangInHtml5Url,LocationHashbangUrl, LocationHtml5Url classes which will copy implementation from parse method and get the path out of newUrl but won\'t update the location object. If this implementation have some issue i can work on making this change.\r\n\r\nCloses #8617', '10', null, null, 'samuelharden', '2014-09-04T09:57:20Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5792', '37', '8925', 'fix($compile): render nested transclusion at the root of a template', 'Closes #8914', '3', null, null, 'petebacondarwin', '2014-09-04T09:59:18Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5793', '37', '8926', 'feat(limitTo): Add support for numbers in limitTo', 'It would be nice if limitTo supports numbers. The expected behavior would change input to string and just run limitTo on that value. This becomes useful often when you have long decimal numbers, etc...', '20', null, null, 'hjast', '2014-09-04T11:55:55Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5794', '37', '8927', 'Refactoring of PR #8833', '', '0', null, null, 'petebacondarwin', '2014-09-04T12:01:00Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5795', '37', '8932', '[[TRAVIS POKE]] fix($location): allow numeric location setter arguments', 'Dupe of #7161, with some amendments', '0', null, null, 'jeffbcross', '2014-09-04T16:56:47Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5796', '37', '8933', 'fix($compile): render nested transclusion at the root of a template', 'Closes #8914\r\nCloses #8925', '6', null, null, 'petebacondarwin', '2014-09-04T17:23:26Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5797', '37', '8936', '[[TRAVIS POKE]] fix($location): allow numeric location setter arguments', 'Fixes #7054', '4', null, null, 'jeffbcross', '2014-09-04T17:49:41Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5798', '37', '8937', 'fix(select): use $viewValue instead of $modelValue', 'Closes #8929', '22', null, null, 'shahata', '2014-09-04T20:09:49Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5799', '37', '8939', 'refactor(indexOf) Remove a now unused copy of the indexOf', 'Missed that one in #8847', '0', null, null, 'realityking', '2014-09-04T21:28:17Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5800', '37', '894', 'Reskin', '', '0', null, null, 'mhevery', '2012-04-20T20:30:10Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5801', '37', '8940', 'fix($location): don\'t call toString on null values', '', '1', null, null, 'jeffbcross', '2014-09-05T00:18:35Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5802', '37', '8941', 'refactor(ngModelController,formController):', 'refactor(ngModelController,formController): centralize and simplify l…\r\n…ogic\r\n\r\nThe previous logic for async validation in \r\n`ngModelController` and `formController` was not maintainable:\r\n- control logic is in multiple parts, e.g. `ctrl.$setValidity`\r\n waits for end of promises and continuous the control flow\r\n for async validation\r\n- logic for updating the flags `ctrl.$error`, `ctrl.$pending`, `ctrl.$valid`\r\n is super complicated, especially in `formController`\r\n\r\nThis refactoring makes the following changes:\r\n- simplify async validation: centralize control logic\r\n into one method in `ngModelController`:\r\n * remove counters `invalidCount` and `pendingCount`\r\n * use a flag `currentValidationRunId` to separate\r\n async validator runs from each other\r\n * use `$q.all` to determine when all async validators are done\r\n- centralize way how `ctrl.$modelValue` and `ctrl.$invalidModelValue` \r\n is updated\r\n- simplify `ngModelController/formCtrl.$setValidity` and merge\r\n `$$setPending/$$clearControlValidity/$$clearValidity/$$clearPending`\r\n into one method, that is used by `ngModelController` AND\r\n `formController`\r\n * remove diff calculation, always calculate the correct state anew,\r\n only cache the css classes that have been set to not\r\n trigger too many css animations.\r\n * remove fields from `ctrl.$error` that are valid and add `ctrl.$success`:\r\n allows to correctly separate states for valid, invalid, skipped and pending,\r\n especially transitively across parent forms.\r\n- fix bug in `ngModelController`:\r\n * only read out `input.validity.badInput`, but not\r\n `input.validity.typeMismatch`,\r\n to determine parser error: We still want our `email` \r\n validator to run event when the model is validated.\r\n- fix bugs in tests that were found as the logic is now consistent between\r\n `ngModelController` and `formController`', '37', null, null, 'tbosch', '2014-09-05T00:51:15Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5803', '37', '8942', 'WIP: Filter cache', 'use a cache to avoid recomputing filters during dirty-checking.\r\n\r\nin the modified large-table benchmark delivers 3x speed improvement for number filter (apply duration), but makes the uppercase filter 20% slower\r\n\r\nTODO:\r\n- more benchmarking\r\n- special case dates since they are not primitives but can be cheaply compared via `getTime()`\r\n- decide on whether to make the cache an opt-in or an opt-out', '20', null, null, 'IgorMinar', '2014-09-05T01:13:50Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5804', '37', '8944', 'Allow ordering for Array inheritors', 'Hello,\r\n\r\nyesterday I faced an issue with angular.\r\nWe use Coffeescript and its classes very widely in our rails project. We have a BaseCollection class, which was inherited from Array. It works cool, but there\'s one negative effect: I was unable to order this object with ng-repeat and orderBy.\r\n\r\nI started digging and revealed, that angular rejects any objects, but Arrays itself. The problem was that Array.isArray does not define Array inheritors as arrays, while when I inherite from class I must follow the Liskov substitution principle and not to break Array functionality (and we do in our project).\r\n\r\nHere\'s [a short demonstration](http://jsfiddle.net/2ja03bfn/7) of the issue. Issue can be reproduced in 1.2.x, but in 1.1.x everything works fine.\r\n\r\nI suggest to allow array-like objects to be sorted. I\'ve also added a test to cover this and checked the green-red-green process with `grunt test:jqlite`. Please take a look at my fix or fix that issue by yourself in more diligent way.', '4', null, null, 'tsevan', '2014-09-05T08:36:30Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5805', '37', '8952', 'Update step_03.ngdoc', 'Hello,\r\n\r\nwhen I run protactor, I got this error message:\r\n```\r\nFailures:\r\n1) PhoneCat App Phone list view should display the current filter value in the title bar\r\nMessage: ReferenceError: query is not defined\r\nStacktrace: ReferenceError: query is not defined\r\n```\r\n\r\nIt\'s because query is not retrieved from model. So I added it.\r\n\r\nHope this helps', '6', null, null, 'fmagnan', '2014-09-05T16:28:33Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5806', '37', '8953', 'pass the return value back to the caller', 'This would allow injection in unit tests to be written like this:\r\nvar $q = inject(function($q){return arguments[0]})\r\ninstead of needing to write a closure over $q and aliasing $q to _$q_ in the inject() call', '5', null, null, 'dblackdblack', '2014-09-05T16:32:14Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5807', '37', '8954', 'chore(tests): update Protractor to v1.2.0', '', '2', null, null, 'juliemr', '2014-09-05T17:24:59Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5808', '37', '8955', 'refactor($http): simplify buildUrl function', 'Small refactor to the $http\'s `buildUrl` function:\r\n* avoid double `isObject` check\r\n* shaves off few bytes by replacing if statement with a ternary operator ', '5', null, null, 'pkozlowski-opensource', '2014-09-05T17:53:31Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5809', '37', '8956', 'Fix orderby', '', '0', null, null, 'petebacondarwin', '2014-09-05T18:47:18Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5810', '37', '8957', 'test(orderBy): remove IE8 incompatible test code', '', '0', null, null, 'petebacondarwin', '2014-09-05T18:47:56Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5811', '37', '8958', 'fix($animate): abort class-based animations if the element is removed during digest', 'Prior to this fix, if the element is removed before the digest kicks off then it leads\r\nto an error when a class based animation is run. This fix ensures that the animation will\r\nnot run at all if the element does not have a parent element.\r\n\r\nCloses #8796', '15', null, null, 'matsko', '2014-09-05T19:55:03Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5812', '37', '8959', 'feat(ngController): add optional locals attribute for injection locals', 'This enables templates to provide or override injected services when instantiating a controller,\r\nsimilar to the $controller service.\r\n\r\nIt is also similar to the ngView route.resolve option and makes the reuse of view controllers in\r\ntemplates more viable.', '15', null, null, 'dbinit', '2014-09-05T20:16:09Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5813', '37', '8962', 'fix(i18n): fix typo at i18n generation code', 'Fix typo at i18n generation code. This would remove the property `macFrac` that has no meaning from all the generated locales\r\n\r\nTo complete the patch, there is a need to generate the i18n locales once again, but adding this to this PR would make it really hard to spot the single change', '5', null, null, 'lgalfaso', '2014-09-05T22:56:21Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5814', '37', '8963', 'Fixed docs indentation in rootScope.js', '', '8', null, null, 'Zizzamia', '2014-09-05T22:57:38Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5815', '37', '8964', 'fix(linky): handle the double quote character in email addresses', 'Handle the double quote character as part of the domain in email addresses\r\n\r\nCloses #8945', '10', null, null, 'lgalfaso', '2014-09-05T23:43:23Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5816', '37', '8965', 'style(ngLocale): change es-us lcoale currency format', 'Fixed the angular-locale_es-us currency. Before `$1.234,56` After `$1,234.56`\r\nhttp://publib.boulder.ibm.com/infocenter/forms/v3r5m0/index.jsp?topic=/com.ibm.form.designer.locales.doc/i_xfdl_r_formats_es_US.html\r\n\r\ncloses #8931', '4', null, null, 'dfalgout', '2014-09-06T03:36:10Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5817', '37', '8968', 'Dgeni 0.4', '', '0', null, null, 'petebacondarwin', '2014-09-06T20:53:52Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5818', '37', '8969', 'refactor(ngModelController): removed redundant this.$validators initialisation', 'Same initialisation already exists two lines above the one removed', '7', null, null, 'harrastia', '2014-09-06T21:10:28Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5819', '37', '8970', 'A couple of fixes to docs', '', '1', null, null, 'petebacondarwin', '2014-09-07T11:44:54Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5820', '37', '8972', 'Fixed input element example in Tutorial Step 9 Experiments', '', '4', null, null, 'celiao', '2014-09-07T19:28:59Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5821', '37', '8974', 'feat($animate): allow $animate to pass custom styles into animations', '$animate now supports an optional parameter which provides CSS styling\r\nwhich will be provided into the CSS-based animations as well as any\r\ncustom animation functions. Once the animation is complete then the\r\nstyles will be applied directly to the element. If no animation is\r\ndetected or the `ngAnimate` module is not active then the styles\r\nwill be applied immediately.\r\n\r\nBREAKING CHANGE: staggering animations that use transitions will now\r\nalways block the transition from starting (via `transition: 0s none`)\r\nup until the stagger step kicks in. The former behaviour was that the\r\nblock was removed as soon as the pending class was added. This fix\r\nallows for styles to be applied in the pending class without causing\r\nan animation to trigger prematurely.\r\n\r\n\r\n---- DEMO -----\r\nhttps://s3.amazonaws.com/angularjs-dev/ng-animate-piggyback/index.html', '5', null, null, 'matsko', '2014-09-08T04:34:36Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5822', '37', '8975', 'fix XSS vulnerability in ng-srcset', 'There is a security issue with `ng-srcset`.\r\n\r\n**URIs aren\'t sanitized**.\r\n\r\nThe behiavor is correct for `ng-src` but not for `ng-srcset`.\r\n\r\nThe probleme is with `src/ng/compile.js` that ignore `srcset`.\r\n\r\nHere is the fix.\r\n\r\nLaurent Trillaud', '12', null, null, 'ltrillaud', '2014-09-08T09:13:09Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5823', '37', '8979', 'fix(input): make checkbox ngTrueValue work with required', 'Fixes #5164 \r\n\r\nThe viewValue in a checkbox is always set to false (by default). Comparing to the trueValue is therefore incorrect.', '3', null, null, 'Narretz', '2014-09-08T17:27:39Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5824', '37', '8981', 'fix(ngInclude): correctly add non-html namespaced template content', 'It is now possible for ngInclude to correctly load SVG content in non-blink\nbrowsers, which do not sort out the namespace when parsing HTML.\n\n/CC @tbosch / @IgorMinar\n\nCloses #7538', '27', null, null, 'caitp', '2014-09-08T18:44:00Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5825', '37', '8984', 'fix($parse): disallow passing Function to Array.sort', 'Fix the following exploit:\r\n\r\n```js\r\nhasOwnProperty.constructor.prototype.toString = toString.call;\r\n[\"a\", \"alert(1)\"].sort(hasOwnProperty.constructor);\r\n```\r\n\r\nThe exploit:\r\n• Array.sort takes a comparison function and passes it 2 parameters to compare.\r\n The result of the comparison is then converted to a string.\r\n• The Function object conveniently accepts two string arguments so we can use this\r\n to construct a function. However, this doesn\'t do much unless we can execute it.\r\n• We set the toString function on Function.prototype to Function.prototype.call.\r\n This causes the function that we constructed to be executed when sort calls\r\n .toString() on the result of the comparison.\r\n\r\nThe fix is in two parts.\r\n• Disallow passing unsafe objects to function calls as parameters.\r\n• Do not traverse the Function object when setting a path.', '2', null, null, 'chirayuk', '2014-09-09T02:36:29Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5826', '37', '8987', 'feat(input): support multiple attribute for email', 'Closes #8986', '19', null, null, 'shahata', '2014-09-09T08:48:44Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5827', '37', '8988', 'chore(npm-shrinkwrap): fix karma dependencies', 'Updating to karma 0.12.13 (in commit 408508ad2972d7f5cf131be37c87d206cf10a5b7)\r\ncaused `iit` and `ddescribe` to crash and disconnect the browser stopping the\r\ntest run.\r\n\r\nIt appears that the problem is with one of the dependencies of karma rather\r\nthan karma itself. At least one of the karma dependencies updated in line\r\nwith karma\'s dependencies\' semver specifications but subtly changed their\r\nbehaviour to break karma. Possibly this is related to chokidar, glob,\r\nminimatch or fsevents.', '3', null, null, 'petebacondarwin', '2014-09-09T09:03:11Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5828', '37', '8989', 'Update limitTo.js', 'There is no such thing as type integer', '0', null, null, 'jimmywarting', '2014-09-09T09:20:01Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5829', '37', '8993', 'feat(ngTransclude): Add support for use current scope', 'Added support for use current scope.\r\nIf do not to want create new scope at ngTransclude directive, This code can use current scope in ngTransclude\r\n```\r\n<div ng-transclude=\"false\"></div>\r\n```\r\n', '0', null, null, 'balmychan', '2014-09-09T13:47:56Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5830', '37', '8994', 'Repeater leave fix', '', '0', null, null, 'IgorMinar', '2014-09-09T14:09:55Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5831', '37', '8995', 'feat(ngTransclude): Add support for use current scope.', 'Added support for use current scope.\r\nIf do not to want create new scope at ngTransclude directive, This code can use current scope in ngTransclude\r\n```\r\n<div ng-transclude=\"false\"></div>\r\n```\r\n', '4', null, null, 'balmychan', '2014-09-09T14:14:42Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5832', '37', '8996', 'Update step_03.ngdoc', 'Corrected slight grammar issue.', '2', null, null, 'zahid', '2014-09-09T15:35:25Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5833', '37', '8997', 'fix(ngInclude): correctly add svg-namespaced template content [[squashed]]', 'It is now possible for ngInclude to correctly load SVG content in non-blink\nbrowsers, which do not sort out the namespace when parsing HTML.\n\nCloses #7538\nCloses #8981', '4', null, null, 'caitp', '2014-09-09T15:52:16Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5834', '37', '8999', 'ngModel refactor', 'Further refactor and fixes to `ngModelController`.', '4', null, null, 'tbosch', '2014-09-09T19:06:29Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5835', '37', '9', 'Src and href directives', 'Add ng:src and ng:href. ng:src is useful when creating img tags to avoid bogus requests to the server. ng:href is useful when a spider fetches your page and it tries to follow links.', '1', null, null, 'alkis', '2010-09-15T23:34:56Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5836', '37', '900', 'documentation correction', '', '4', null, null, 'dcsg', '2012-04-24T09:39:49Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5837', '37', '9000', 'PRESUBMIT: Pr 8901', 'just testing on ci', '0', null, null, 'IgorMinar', '2014-09-09T19:20:35Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5838', '37', '9002', 'fix(input): remove $$invalidModelValue and always set $modelValue to the...', '... parser result\r\n\r\nBREAKING CHANGE:\r\n\r\n$modelValue is now always set to the result of $parsers, even if\r\nvalidation fails. Setting it to undefined was a remnant of the old parsers-for-validation behavior. The new behavior is more consistent: if you modify the validity state of the control, the $modelValue itself is not changed.\r\n\r\nIf you relied on $modelValue becoming undefined when invalid, e.g. in\r\na $watch, you must now use the $valid property of ngModelController.', '3', null, null, 'Narretz', '2014-09-09T20:07:16Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5839', '37', '9003', 'feat(ngModel): allowinvalid', '', '0', null, null, 'tbosch', '2014-09-09T20:16:43Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5840', '37', '9006', 'WIP - only watch the inputs of parsed expressions', 'This is a newer version of https://github.com/jbedard/angular.js/commit/844d04cb584b77f822b907549fedc5b52d527660 which was discussed as an alternative to https://github.com/angular/angular.js/pull/8942.\r\n\r\nThe first commit should be good either way and makes `a | noop` about 20% faster in the benchmakrs by avoiding 2 unnecessary wrapper functions (binaryFn and valueFn). I can put this in a separate PR if wanted, but the main change depends on it.\r\n\r\nThe main change:\r\n* expression inputs are watched instead of the full expression - for example `a + -a * b -b + 5` will watch `a` and `b`\r\n* when expression inputs change the full expression get evaluated, otherwise the previous result is assumed to still be valid\r\n* inputs are currently: variables/properties, field access (`foo().field`), object index (`obj[sub-exp]`) and function calls (and ; separated statements, at least for now)\r\n* this means all other expressions are not watched\r\n* I added (and have not tested) a `externalInput` flag that filters can set if they have some external state, then those filters will be considered inputs\r\n\r\nIn the expression watching benchmarks (which do not have the issues listed below):\r\n* operators are about 2x faster\r\n* filters are about 3x faster\r\n* object/array literals are about 5x faster\r\n* directly watching input expressions should be unchanged\r\n\r\nIssues:\r\n* This only works for primitives today. If any inputs return a non-primitive it is assumed to have changed and executes the full statement. This will hurt performance for expressions with non-primitives inputs.\r\n* All inputs get executed per digest, if any change and the full expression gets executed then those child input expressions will get re-executed. For basic property inputs I think this is fine (although could be an area of improvement) - but for anything with side effects this will be an issue. The issue is not so much the double-calling but the fact that branching expressions should not always call their child expressions. The best example I can think of would be something such as: `$rootScope.$watch(\'isLoggedIn || loggedOutAction()\')`. In this case, with the current implementation, `isLoggedIn` and `loggedOutAction()` would be considered inputs and executed in the watcher.\r\n\r\nI might try other solutions to fix the two issues - maybe something simpler that only supports filters/literals for now which will get the best performance gains with the easiest workaround for those 2 issues.', '15', null, null, 'jbedard', '2014-09-10T05:45:16Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5841', '37', '9007', 'Extend copies own enumerable properties only', 'Extend makes a shallow copy.', '0', null, null, 'SekibOmazic', '2014-09-10T08:25:03Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5842', '37', '9010', 'fix(ngResource): make badcfg error message more helpful', 'The error message should help identify the problem. To do so, more details\nneed to be provided.\n\nCloses #9005', '3', null, null, 'caitp', '2014-09-10T11:23:29Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5843', '37', '9011', 'Update forms.ngdoc', '* Clarified the use of Array.unshift (for less savvy Javascript users)\r\n* Corrected grammar in sentence that follows.', '1', null, null, 'heyjustin', '2014-09-10T12:50:56Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5844', '37', '9012', 'docs(forms.ngdoc): correct grammar', 'Correct grammar in forms.ngdoc developer documentation', '1', null, null, 'heyjustin', '2014-09-10T13:37:42Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5845', '37', '9013', 'i18n - Extended Number Format Symbol Rules', '* Added ```numberformatsymbolsext.js``` to Closure Slurper script\r\n* Regenerated locales\r\n\r\nThis should correct the configurations for many locales.\r\n\r\nFixes currency symbol issue in #8931.', '13', null, null, 'mgallag', '2014-09-10T15:41:30Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5846', '37', '9016', 'fix(ngModel): dont clear the model when an external validator failed', 'Calling `ctrl.$setValidity()` with a an error key that \r\ndoes not belong to a validator in `ctrl.$validator` should\r\nnot result in setting the model to `undefined` on the next\r\ninput change. This bug was introduced in 1.3.0-beta.12.\r\n\r\nCloses #8357\r\nFixes #8080', '20', null, null, 'tbosch', '2014-09-10T17:26:04Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5847', '37', '9017', 'fix(input): always pass in the model value to `ctrl.$isEmpty`', 'Fixes #5164', '4', null, null, 'tbosch', '2014-09-10T18:01:46Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5848', '37', '9018', '[[DUPE FOR TRAVIS]]: perf($compile): move $$isolateBinding creation to directive factory inst...', '...ead of on each link\r\n\r\n[[@jeffbcross]] I rebased against latest master', '0', null, null, 'jeffbcross', '2014-09-10T18:03:37Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5849', '37', '9021', 'Update providers.ngdoc Conclusion', '#9020 \r\nThe conclusion table incorrectly states that services can not create functions. \r\nNew table row added to separate \"can create functions\" and \"can create primitives\".\r\n', '4', null, null, 'SirTophamHatt', '2014-09-10T20:42:04Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5850', '37', '9023', 'Improved check if the getter/setter method was called as a getter or setter.', 'If I have understood the example correct the angular.isDefined(newName) is used to determine if the method was called as a getter or setter. However sometimes the the argument might be called with undefined (for example when the user empties an input field with type date). Maybe an improvement would be to check this with arguments > 0 so that the example can be modified and used in all situations? http://stackoverflow.com/questions/25775852/angular-getter-setter-with-an-argument-that-can-be-undefined', '0', null, null, 'simonbengtsson', '2014-09-10T22:15:31Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5851', '37', '9024', 'test(injector): allow service names with a single underscore', 'Just to prove that #9015 is ok.', '9', null, null, 'cironunes', '2014-09-10T22:43:19Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5852', '37', '9026', 'Update step_11.ngdoc', 'Updated misspelled word \'issuing\' to \'using\'', '3', null, null, 'chandramuralis', '2014-09-11T04:08:06Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5853', '37', '9027', 'feat($location): add support for History API state handling', 'This is a continuation of #3325, re-created per my e-mail thread with @IgorMinar.\r\n\r\nEDIT: new commit message:\r\n\r\nAdds $location state method allowing to get/set a History API state via\r\npushState & replaceState methods.\r\n\r\nNote that:\r\n- Angular treats states undefined and null as the same; trying to change\r\none to the other without touching the URL won\'t do anything. This is necessary\r\nto prevent infinite digest loops when setting the URL to itself in IE<10 in\r\nthe HTML5 hash fallback mode.\r\n- The state() method is not compatible with browsers not supporting\r\nthe HTML5 History API, e.g. IE 9 or Android < 4.0.', '44', null, null, 'mzgol', '2014-09-11T04:31:25Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5854', '37', '9029', 'Added \"local\" to SanitizationWhitelis for BlackBerry 10 apps', '# Description\r\nBlackBerry 10 browser use `local` as shortcut to application resources.\r\n\r\n# Steps to reproduce\r\nPacked a HTML5 app with Cordova for BlackBerry 10. And you will see that all application resources use `local:///``\r\n. \r\n\r\n## Apache Cordova resolved the issue\r\n[[BlackBerry10] resolveLocalFileURI should work with local:/// paths](https://issues.apache.org/jira/browse/CB-5810) on January 2014.\r\nOn the BB10 platform, local:/// is a shortcut to application resources\r\nThe file plugin should respect these URIs\r\n\r\n# Related issues\r\n[\"local\" protocol should be included in imgSrcSanitizationWhitelist](https://github.com/driftyco/ionic/issues/1066) on [IonicFramework](http://ionicframework.com)', '2', null, null, 'jorgecasar', '2014-09-11T10:27:07Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5855', '37', '9030', 'fix(http): preserve config object when resolving from cache', 'Closes #9004', '31', null, null, 'shahata', '2014-09-11T12:03:47Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5856', '37', '9032', 'refactor(ngEventDirs): remove a useless call', 'The event names are already lower-case.', '2', null, null, 'thorn0', '2014-09-11T13:33:38Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5857', '37', '9034', 'docs(CHANGELOG.md): fix work-around for removed, undocumented `change` a...', '...ttribute of ngSwitch\r\n\r\nFix the JavaScript errors in the work-around proposed in 0f806d9 in order to emulate the behaviour\r\nof the removed `change` attribute of ngSwitch.', '0', null, null, 'gkalpak', '2014-09-11T19:35:33Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5858', '37', '9036', '(doc) q docs warn about using in ie/android.', 'Addresses #8902 ', '5', null, null, 'mbildner', '2014-09-11T22:52:31Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5859', '37', '9037', 'fix(formController): do not let removed control effect form', 'This PR fixes some issues with manually removing and adding controls from forms:\r\n1) Validity changes in removed control do not effect form validity\r\n2) Validity of existing control is taken into account when adding control to form\r\n\r\nCloses #9035 ', '12', null, null, 'shahata', '2014-09-12T01:34:44Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5860', '37', '9045', 'docs(versions): remove the trailing slash in URLs when switch versions', 'Because https://docs.angularjs.org/api/ can handler the trailing slash, but https://code.angularjs.org/1.2.24/docs/api/ can not.\r\n\r\nFix #9043', '1', null, null, 'bolasblack', '2014-09-12T08:43:09Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5861', '37', '9046', '(doc) sending data with $http --example', 'A friend of mine @willianjedai realized that there is no specification on how to send data over an post request with http method .. \r\nso I made this simple improvement and I hope it help somebody ! =]', '4', null, null, 'guisouza', '2014-09-12T08:51:36Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5862', '37', '9047', '(doc) ng-repeat animation explanation', 'it took a while for me to realize that ng-animate was deprecated and to understand how the animation on this page example works .. so i write a better explanation for this.', '9', null, null, 'guisouza', '2014-09-12T09:59:33Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5863', '37', '9050', 'feat(formController): add $setUntouched to propagate untouched state', '', '12', null, null, 'shahata', '2014-09-12T12:19:04Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5864', '37', '9051', 'fix($parse): add `.assign()` function to settable expressions in CSP mode', 'Due to changes to CSP-mode detection and the CSP api in general, the test suite was not able to\r\nreport regressions related to CSP.\r\n\r\nThis CL corrects the regression introduced where assignable expressions would not have an `assign` member function in CSP mode.\r\n\r\nCloses #9048', '31', null, null, 'caitp', '2014-09-12T12:26:53Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5865', '37', '9057', 'Add version to package.json', 'Npm install fails because the 1.2.x branch does not have a version field in the package.json anymore.', '1', null, null, 'tanx', '2014-09-12T15:53:41Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5866', '37', '9058', 'fix($location): allow 0 in path() and hash()', 'This handles a corner case with numeric 0 after adb5c6d6cc76b928436743707727ab0974d6810b was merged.', '4', null, null, 'pkozlowski-opensource', '2014-09-12T18:17:57Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5867', '37', '9060', 'test($parse): ensure CSP code paths are used when testing', '(Port from commit 1 in #9048)\n\nPreviously, the test suite was not actually taking CSP-mode paths when we were\nexpecting it to.', '1', null, null, 'caitp', '2014-09-12T19:09:28Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5868', '37', '9061', 'fix(select): update labels', 'Closes #9025', '13', null, null, 'btford', '2014-09-12T19:10:02Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5869', '37', '9066', 'Update step_00.ngdoc', 'Add info what the user should do if he doesn\'t see the message. This happens if the user starts the server and goes to localhost:8000 before reading for get checkout -f step-0', '4', null, null, 'tborisova', '2014-09-13T19:44:42Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5870', '37', '9067', 'refactor(map) Use Array.prototype.map instead of our own function', 'On most browsers this comes with a nice performance improvement http://jsperf.com/angular-map-vs-native/4 The biggest being IE 11 where it is 8x faster. In Chrome 37 there\'s a small regression. Firefox 31 shows a bigger regression, however these results couldn\'t be repeated with Firefox 32.', '6', null, null, 'realityking', '2014-09-13T19:47:18Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5871', '37', '9069', 'docs(ngResource): Fix error in one of the code examples', 'Closes #8948', '5', null, null, 'gkalpak', '2014-09-13T20:47:01Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5872', '37', '907', 'Correcting typos in documentation and tutorial texts', 'Hey Vojta,\r\n\r\nas promised the corrections.\r\n\r\nRegards,\r\nMurat\r\n', '3', null, null, 'mknecht', '2012-04-25T17:39:08Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5873', '37', '9070', 'docs(ngController): Fix priority value mentioned in the docs', 'The `@priority 500` part was missing from the ngDoc comment, thus the docs mentioned a priority of 0\r\n(instead of the correct 500).', '1', null, null, 'gkalpak', '2014-09-13T21:12:56Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5874', '37', '9071', 'perf($rootScope) - removing queues from isolated scope instances', 'd219a57: If I understand the use of `scope[\'this\']` correctly it can be replaced with a `$parse` keyword and avoid being set per scope instance. [EDIT: moved to https://github.com/angular/angular.js/pull/9105]\r\n\r\n5b426f6: For scopes that don\'t use listeners (most?) this avoids creating the two JSON objects similar to $$watchers. [EDIT: removed from PR for now]\r\n\r\n~~https://github.com/angular/angular.js/commit/abdebc81ef4e2f177afb8baffcdae56b42999470~~ 284782b: This seemed a little confusing before (imo) having the 3 queue objects on every root/isolated scope while only having one instance (per root). The way they were accessed was also a little random - sometimes it was `this.$$queue`, sometimes `$rootScope.$$queue`. The `$$applyAsyncQueue` was also created per root/isolated scope, only ever accessed on the `$rootScope`, but still had a unique instance per scope which was never used (unlike the other 2 queues which referenced the `$rootScope` queue instance). The ngBindSpec change was actually a buggy test throwing due to lack of a context.\r\n\r\nAll three of these just reduce the number of variables/objects initialized per scope which is pretty minor, but scopes are created quite often...\r\n\r\nIf anyone depends on `scope[\'this\']` outside of parsed expressions or depends on the moved $$ variables then all 3 changes could be considered breaking changes.', '16', null, null, 'jbedard', '2014-09-13T21:21:29Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5875', '37', '9072', 'Added ngBindOnce benchmarks on the largetable-bp', 'Hi @IgorMinar and @jeffbcross \r\nI wrote a basic benchmark to check the difference speed between the classic ngBind with the new ngBindOnce.\r\n\r\non my Google Chrome (Version 37.0.2062.120) I got this result after 10 loops:\r\n1) ngBind\r\n```shell\r\ndestroy : mean: 319.08ms ± 4% (stddev 12.44) (min 301.03 / max 336.42)\r\ncreate : mean: 2362.93ms ± 14% (stddev 336.86) (min 2029.95 / max 3132.09)\r\n$apply : mean: 55.68ms ± 19% (stddev 10.57) (min 42.35 / max 68.67)\r\n```\r\n\r\n1) ngBindOnce\r\n```shell\r\ndestroy : mean: 312.34ms ± 3% (stddev 10.58) (min 299.78 / max 331.11)\r\ncreate : mean: 2441.22ms ± 24% (stddev 583.30) (min 2127.00 / max 4044.66)\r\n$apply : mean: 66.66ms ± 73% (stddev 48.45) (min 39.48 / max 200.60)\r\n```\r\n\r\nI stat writing this benchmark because after a first refactoring on [#ngtasty](https://github.com/Zizzamia/ng-tasty) I notice by using [Batarang](https://chrome.google.com/webstore/detail/angularjs-batarang/ighdmehidhipcmcojjgiloacoafjmpfk?hl=en) that the same binding with the new `bindOnce` was slightly slower during the first time binding.\r\n\r\nIn the end on Batarang and [Benchpress](https://github.com/angular/benchpress) looks that ngBindOnce is aroung 3% slower than the classic ngBind.\r\n\r\nI hope my code can be useful.\r\nThank you :)', '8', null, null, 'Zizzamia', '2014-09-13T22:54:50Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5876', '37', '9074', 'Update step_05.ngdoc with JSONLint validation hint', 'Added suggestion to use JSONLint to validate the JSON file and identify errors. It is simpler to address JSON errors independently of other errors at compile-time.\r\n\r\nMotivation was based on personal experience following an applied version of Step 5 of the AngularJS Tutorial using Ionic and incorrectly placing a semi-colon at the end of the JSON file, such that both of the following approaches resulted in errors and data was not displayed in the browser: \r\n```\r\n$scope.sentences = data; \r\n```\r\n```\r\n$scope.sentences = angular.fromJson(data); \r\n```\r\nSolution to the problem (i.e. using JSONLint that identified the incorrectly used semi-colon in the JSON file) was found thanks to a response to my StackOverflow post [Here](http://stackoverflow.com/questions/25829315/deserialise-json-string-to-object-with-angularjs-using-generate-ionic)', '10', null, null, 'ltfschoen', '2014-09-14T04:50:18Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5877', '37', '9075', 'Testing', 'Testing', '3', null, null, 'deveshkrsingh', '2014-09-14T07:37:22Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5878', '37', '9077', 'fix($compile): update \'@\'-bindings in controller when bindToController is true', '\'@\'-bindings were previously updating the scope when they ought to have been \nupdating the controller (requested via `bindToController: true` +\ncontrollerAs).\n\nIt\'s a one-line fix + test case.\n\nCloses #9052', '1', null, null, 'caitp', '2014-09-14T14:06:08Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5879', '37', '9079', 'refactor($scope): prevent multiple calls to listener on `$destroy`', 'Prevent isolated scopes from having listeners that get called multiple times when on `$destroy`', '14', null, null, 'lgalfaso', '2014-09-14T16:51:05Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5880', '37', '9081', 'docs(ngShowHide): improve consistency in ngShowHide documentation', 'add backticks around directive names to improve documentation consistency', '7', null, null, 'maip', '2014-09-14T20:01:05Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5881', '37', '9082', 'Expression caching', 'improved version of #9006 (which was an improved version of #8942)', '23', null, null, 'IgorMinar', '2014-09-14T22:36:24Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5882', '37', '9087', 'update angular.extend() documentation', 'How to preserve original objects similar to jQuery.extend().', '2', null, null, 'ddoronin', '2014-09-15T09:04:24Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5883', '37', '9089', 'Update directive.ngdoc with Minor Grammar Fix', 'Minor grammar fix for better readability', '2', null, null, 'ltfschoen', '2014-09-15T11:46:28Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5884', '37', '9092', 'Update filters.js', 'valueFn error Fixed', '13', null, null, 'ahmerafzal', '2014-09-15T13:28:42Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5885', '37', '9093', 'PR8963', '', '1', null, null, 'petebacondarwin', '2014-09-15T13:57:55Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5886', '37', '9096', 'docs(ngModelOptions): mention that it\'s inherited', 'It was discussed in #7212.', '0', null, null, 'thorn0', '2014-09-15T18:25:52Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5887', '37', '9099', 'Clarify that `$event` is a jQuery Event Object', 'I couldn\'t find documentation on this, but it looks like the `$event`, e.g., inside an ngClick directive, is an instance of a jQuery Event object. Is this correct? If so, then I think this is important information to share in the documentation. Otherwise people who are relatively new to this framework will have no idea how to use the objects that are passed around without finding crafty ways to run test code and inspect objects.', '1', null, null, 'mrcoles', '2014-09-15T19:39:51Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5888', '37', '9100', '1.2 update', '', '0', null, null, 'petebacondarwin', '2014-09-15T20:41:39Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5889', '37', '9101', '1.2 update', '', '0', null, null, 'petebacondarwin', '2014-09-15T20:43:03Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5890', '37', '9102', 'docs($event): clarify $event is jQuery.Event', 'The docs should state that an `$event` object is an instance of a jQuery.Event object. Whenever objects are passed around in a framework it\'s really helpful for the docs to state whats inside the objects and how to expect them to be populated/work. I had to mess around in my console and with code to figure out what the `$event` object was.', '0', null, null, 'mrcoles', '2014-09-15T21:37:18Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5891', '37', '9105', 'refactor($parse): change \'this\' to a $parse keyword instead of scope field', 'BREAKING CHANGE:\r\n- $scope[\'this\'] no longer exits on the $scope object\r\n- $parse-ed expressions no longer allow chaining \'this\' such as this[\'this\'] or $parent[\'this\'] or this.this.this.this\r\n- \'this\' in $parse-ed expressions can no longer be overridden, if a variable named \'this\' is put on the scope it must be accessed using this[\'this\']\r\n\r\nI think this is a cleaner way of implementing \'this\' which is more like other keywords such as `null` or `false`. But it is also a breaking change for anyone that did weird things such as `this.this.this.this` (and less weird: `$scope[\'this\'] = ...`).', '7', null, null, 'jbedard', '2014-09-16T03:49:22Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5892', '37', '9107', 'Update faq.ngdoc', 'prototypally', '5', null, null, 'mattphoto', '2014-09-16T07:42:24Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5893', '37', '9112', 'Missing lang value. It was from begin of tutorial', '', '4', null, null, 'bocharsky-bw', '2014-09-16T12:23:13Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5894', '37', '9114', 'docs: Update noscp.ngdoc to use properly formatted json', 'Fix the \"correct\" example to have the proper syntax for creating the locals object and provide a more explicit explanation as to how the scope object should be provided.', '1', null, null, 'callado4', '2014-09-16T12:59:19Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5895', '37', '9117', '[[WIP SVG DIRECTIVES]] auto directives to work around browser inconsistency with FuncIRI attributes & <base>', 'Opening for pre-review and Travis\r\n\r\nFixes #8834 ', '13', null, null, 'jeffbcross', '2014-09-16T17:27:31Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5896', '37', '9119', 'Update filter.ngdoc', 'Fixed typo', '4', null, null, 'atav32', '2014-09-16T19:47:18Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5897', '37', '9123', 'Update step_12.ngdoc with Minor Grammar Fix', 'Motivation for the suggestion is to improve readability.', '2', null, null, 'ltfschoen', '2014-09-17T01:07:44Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5898', '37', '9124', 'Added \"geo\" to SanitizationWhitelist', '# Description\r\nAn Uniform Resource Identifier (URI) for geographic locations using the \'geo\' scheme name. A \'geo\' URI identifies a physical location in a two- or three-dimensional coordinate reference system in a compact, simple, human-readable, and protocol-independent way.[1]\r\n\r\nThe `geo` URI, like its siblings `mailto`and `tel`, works opening the link in the correct application. In this case, Android ([Maps intents](http://developer.android.com/guide/components/intents-common.html#Maps) and BlackBerry 10 (tested on my device) devices support this feature and open the link in the native map app.\r\n\r\n# Steps to reproduce\r\nCreate a link with a geo position like: `<a href=\"geo:37.422,-122.084058\">Google offices</a>`.\r\n\r\n# Extra information\r\n- [geo URI on Wikipedia](https://en.wikipedia.org/wiki/Geo_URI)\r\n- Included test for `geo` uri\r\n- Extra ball: Included test for `tel` uri', '10', null, null, 'jorgecasar', '2014-09-17T01:46:25Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5899', '37', '9126', 'fix($location): links should respect absolute paths and base href when in html5mode', 'Fixes absolute links on legacy browsers when html5Mode is enabled.\r\n\r\nClicking on a link out of the base\'s href shouldn\'t trigger rewriting the URL. This behavior was changed since https://github.com/angular/angular.js/commit/24f7999bc16e347208aa18c418da85489286674b .\r\n\r\nThis resolves the issue I found on https://github.com/angular/angular.js/commit/24f7999bc16e347208aa18c418da85489286674b#commitcomment-7815179 which has created different behavior when it comes to absolute links on legacy browsers.\r\n\r\nMost of this is whitespace changes.\r\nI\'ve added these cases to consider:\r\n1. Properly rewrite links starting with `/base/` when the base tag is present with a value of `/base/`.\r\n2. Don\'t rewrite links that have a href beginning with `/` not in within the base (i.e. `/outer_base/link`)\r\n3. Don\'t rewrite links at all if no base tag is present and href begins with `/`\r\n4. Rewrite absolute links with hashbang followed by `/` properly (.i.e. `#!/base/thing`).\r\n\r\nThis change is meant to resolve those cases that were not tested since 1.2.17 and have mismatching test cases. It\'s not to add any new features.', '14', null, null, 'chrisirhc', '2014-09-17T09:44:48Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5900', '37', '9129', 'TRANSCLUDE MEMORY LEAK: fix($compile): attach handler to a real element', 'Fixes #9095', '2', null, null, 'petebacondarwin', '2014-09-17T13:45:40Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5901', '37', '9130', 'enabled multiple routes for one controller', 'enabled multiple routes for one controller.\r\n\r\nsolve my own issue :\r\nhttps://github.com/angular/angular.js/issues/9041\r\n\r\nMultiple routes can be used:\r\n\r\nfor abbreviation.\r\n\r\n>.when([\'/user/login, \'/login\'\'],\r\n\r\nfor same meaning.\r\n\r\n>.when([\'/user/search, \'/user/find\', \'/user/query\'],\r\n\r\nfor redirection\r\n>.when([\'/user/search, \'/user/find\', \'/user/query\'],', '14', null, null, 'calidion', '2014-09-17T14:13:14Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5902', '37', '9135', 'Bootstrap example does not work without specifying ng-controller', 'I have modified the documentation to include a <div> with a ng-controller attribute. Found that the code from the documentation fails to work without a ng-controller.', '5', null, null, 'jeffavis', '2014-09-17T17:47:17Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5903', '37', '9136', 'chore(ngCsp): add e2e tests', 'Also changes `connect:devserver` and `connect:testserver` to conditionally serve files with csp headers when the path contains `.csp` somewhere.\r\n\r\nDepends on https://github.com/angular/dgeni-packages/pull/70 to be merged and updated dgeni-packages to be included in angular.js', '7', null, null, 'tbosch', '2014-09-17T17:47:30Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5904', '37', '9137', 'feat(compile): add human readable alternative to \'@=&?\'', 'support using `interpolate:<name>`, `bind:<name>`, `eval:<name>` and `bind:optional:<name>` instead of `@<name>`, `=<name>`, `&<name>` and `=?<name>`\r\n\r\nCloses #9125', '14', null, null, 'shahata', '2014-09-17T19:57:37Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5905', '37', '914', 'Scope event changes', 'Things to consider:\r\n\r\n- e.stopPropagation() during $broadcast stops propagation *only for given branch* (it does depth-first traverse).\r\n- e.stopPropagation() if not allowed throws exception ( noop ?)\r\n- do we really want options object rather than just third boolean attribute (allowToStopPropagation)\r\n- by default stopPropagation is allowed', '0', null, null, 'vojtajina', '2012-04-27T17:18:48Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5906', '37', '9142', 'Clarify behavior when providing undefined or null value to angular.forEach', 'Doc update to satisfy #9062', '7', null, null, 'Trendy', '2014-09-18T03:55:43Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5907', '37', '9144', 'Fixes typo in docs', 'Changes: \"of type number\" <- \"of time number\"', '2', null, null, 'nofatclips', '2014-09-18T07:38:28Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5908', '37', '9150', 'refactor(ngMessages): remove unused $scope', '', '2', null, null, 'SebastianM', '2014-09-18T18:32:55Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5909', '37', '9153', 'docs($location): break up long sentence for readability', 'Old: \r\n![screen shot 2014-09-18 at 11 52 58 am](https://cloud.githubusercontent.com/assets/6385848/4325602/d93fd47c-3f66-11e4-970f-482305e2ba81.png)\r\n\r\nNew: \r\n![screen shot 2014-09-18 at 11 53 42 am](https://cloud.githubusercontent.com/assets/6385848/4325612/f13bb316-3f66-11e4-9f54-2d58f04ff230.png)\r\n', '2', null, null, 'gregfedirko', '2014-09-18T19:08:58Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5910', '37', '9154', 'docs(tutorial): update to tutorial step_12 doc', '- proper case \"jQuery\" vs \"JQuery\"\r\n- wrap ng-view in markdown code `ng-view`', '1', null, null, 'Christopher-Rains', '2014-09-18T19:26:03Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5911', '37', '9157', 'feat(ngAria): add an ngAria module to make a11y easier', 'I made some significant refactors to #8342, notably:\r\n\r\n* DRYing up the implementation\r\n* unDRYing up the specs so that the assertions/failures are more specific\r\n* Naming watch functions to make debugging easier', '31', null, null, 'btford', '2014-09-18T21:49:11Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5912', '37', '9158', 'docs(guide): add angular-localization module to internationalization section', '', '1', null, null, 'doshprompt', '2014-09-18T21:57:25Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5913', '37', '916', 'CSP support', '', '0', null, null, 'IgorMinar', '2012-04-28T05:06:05Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5914', '37', '9160', 'fix($locale): make all filters $locale aware (even after $locale has changed)', 'Closes https://github.com/angular/angular.js/issues/9159 .\r\nI do not expect for this to pass without unit tests - I will add those as soon as the problem is confirmed as relevant.', '11', null, null, 'dragosrususv', '2014-09-18T22:23:13Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5915', '37', '9161', 'WIP: docs(guide/accessibility): explain ngAria', 'Work-in-progress.\r\n\r\nping @marcysutton', '9', null, null, 'btford', '2014-09-19T00:12:32Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5916', '37', '9163', 'improve readability', 'The first paragraph of README.md was a huge, hard to read block of words with no indentation. By simply breaking it into two paragraphs at a natural position, and also changing the 35 word long sentence into two sentences (with no change to the words), readability has been increased and it is more user friendly.\r\nNo source code has been changed.', '4', null, null, 'jamesanthonyferguson', '2014-09-19T04:10:55Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5917', '37', '9164', 'docs(guide): added adapt-strap module to UI Widgets section', '', '5', null, null, 'kashjs', '2014-09-19T04:18:04Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5918', '37', '9165', 'In the readme, I changed a semi-colon to a comma on line 10.', 'As semi-colons most commonly used to separate two independent clauses, I feel that a comma would better convey your meaning - that Angular helps with server side communication, taming asynchronous callbacks, and makes client-side navigation and deeplinking with hashbang urls a piece of cake. No source code was changed. I feel this commit marginally improves the readability of your readme file!', '2', null, null, 'shanswami', '2014-09-19T04:21:10Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5919', '37', '9166', 'Added comma to increase readability', 'I added a comma to the sentence: \"Passing these files to the --externs parameter of a compiler pass, allows using type annotations for AngularJS objects.\" This increases readability and corrects a slight grammatical error in the sentence. None of the source code was altered.', '1', null, null, 'spencer48', '2014-09-19T04:22:28Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5920', '37', '9167', 'docs: update Triaging.md formatting', '\r\nFix line spacing on the Triaging.md to make it consistent. See below for image of some of the line spacing issues fixed:\r\n\r\n![screen shot 2014-09-18 at 9 50 07 pm](https://cloud.githubusercontent.com/assets/7344640/4330910/a11812be-3fb9-11e4-96f2-012ba8d3f881.png)\r\n', '4', null, null, 'willchen90', '2014-09-19T05:00:19Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5921', '37', '9168', 'Added comma to increase readability', 'I added a comma to the sentence: \"Passing these files to the --externs parameter of a compiler pass, allows using type annotations for AngularJS objects.\" This increases readability and corrects a slight grammatical error in the sentence. None of the source code was altered.', '2', null, null, 'spencer48', '2014-09-19T06:07:02Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5922', '37', '9175', '$timeout no longer causes a digest', 'Since https://github.com/angular/angular.js/commit/19b6b3433ae9f8523cbc72ae97dbcf0c06960148 $timeout no longer causes a digest - because of this the examples in this page no longer work. I\'ve updated them using the suggested workaround.', '7', null, null, 'benjamingr', '2014-09-19T11:36:15Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5923', '37', '9180', 'Remove $http.patch reference', 'There is no $http.patch method. Removed references.', '7', null, null, 'alexandremello', '2014-09-19T18:44:36Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5924', '37', '9181', 'docs(tutorial): update to tutorial step_02 doc', '- wrap ./test/unit/controllerSpec.js in markdown code `./test/unit/controllerSpec.js`\r\n- wrap ng-repeat in markdown code `ng-repeat`', '1', null, null, 'Christopher-Rains', '2014-09-19T19:56:31Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5925', '37', '9183', 'refactor(ngAria): bind to ngModel', '', '1', null, null, 'btford', '2014-09-19T20:51:41Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5926', '37', '9186', 'chore($http): disable flaky JSONP test', 'See #9185', '4', null, null, 'jeffbcross', '2014-09-19T23:43:40Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5927', '37', '9187', 'Update aria.js', 'small text change, hopefully improving it', '2', null, null, 'maartenst', '2014-09-20T04:56:27Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5928', '37', '9188', 'docs($timeout): Clarify $timeout#cancel param type', '', '4', null, null, 'yozo1984', '2014-09-20T06:28:31Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5929', '37', '919', 'fix($parse): support method calls on primitive types', '', '0', null, null, 'vojtajina', '2012-04-29T13:06:53Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5930', '37', '9193', 'fix(input): fix false initial \'number\' validation error in input[number]...', '... with observed attributes\r\n\r\nWhen no value has been set for an input[number] it\'s viewValue is undefined. This lead to false\r\nparse validation errors, when `ctrl.$validate()` was fired before interacting with the element. A\r\ntypical situation of this happening is when other directives on the same element `$observe()`\r\nattribute values. (Such directives are ngRequired, min, max etc.)\r\nMore specifically, the parser for native HTML5 validation returns undefined when the input is\r\ninvalid and returns the value unchanged when the input is valid. Thus, when the value itself is\r\nundefined, the NgModelController is tricked into believing there is a native validation error.\r\n\r\nCloses #9106', '15', null, null, 'gkalpak', '2014-09-20T18:46:08Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5931', '37', '9200', 'docs(route): remove irrelevant note, issue #9196', 'See issue #9196 ', '1', null, null, 'a8m', '2014-09-21T11:57:27Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5932', '37', '9202', 'fix($compile): Detect when a directive `compile` removes `tElement`', 'Delect when a directive `compile` function removes `tElement` and keep on with the compilation from the following node\r\n\r\nCloses #9198', '24', null, null, 'lgalfaso', '2014-09-21T16:52:35Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5933', '37', '9204', 'chore(docs): docs app initialization performance', '## Stage 1 - delay search index build for one second\r\nFollowing in the best traditions of agile development. Here is a minimal improvement in the user experience when they appear at the docs website. The page now renders immediately but then locks the page after 1 sec while it builds the index. This is a slight UX improvement. The next stage is to move this processing to a WebWorker to prevent it blocking the main thread.\r\n\r\nRelated to #9203 \r\n', '5', null, null, 'petebacondarwin', '2014-09-21T20:38:21Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5934', '37', '9205', 'Remove invalid caveat description', 'The text said a directive wouldn\'t work out of the box as an element, but the note inmediatelly bellow says that by default the directives restrict to elements or attributes, which is the actual behavior.', '2', null, null, 'krusty', '2014-09-22T00:51:13Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5935', '37', '9206', 'Fix broken link', '', '1', null, null, 'bocharsky-bw', '2014-09-22T11:52:12Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5936', '37', '9209', 'addressed issue https://github.com/angular/angular.js/issues/9208', 'i\'ve implemented the fix and added a unit tests in order to verify that the old implementation was failing in validating frong email in the following format: evilaliv3@withoutdot.', '2', null, null, 'evilaliv3', '2014-09-22T14:58:28Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5937', '37', '9210', 'fix($injector): throw when factory $get method does not return a value', 'BREAKING CHANGE:\n\nPreviously, not returning a value would fail silently, and an application\ntrying to inject the value owuld inject an undefined value, quite possibly\nleading to a TypeError. Now, the application will fail entirely, and a reason\nwill be given.\n\nCloses #4575', '5', null, null, 'caitp', '2014-09-22T16:22:08Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5938', '37', '9214', 'test(attrs): remove invalid test from e2e suite', 'This test is incorrectly acting as documentation that the anchor tag directive\nwill preventDefault on clicks on elements with a name. This has not been the\ncase ever since f3de5b6eac90baf649506072162f36dbc6d2f028\n\nCloses #6554', '4', null, null, 'caitp', '2014-09-22T16:57:00Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5939', '37', '9215', 'fix($compile): remove comment nodes from templates before asserting single root node', 'The compiler will no longer throw if a directive template contains comment\nnodes in addition to a single root node.\n\nThe comment nodes will be removed before processing.\n\nCloses #9212', '14', null, null, 'caitp', '2014-09-22T17:15:47Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5940', '37', '9216', 'fix($compile): do not initialize optional \'&\' binding if attribute not specified', 'Also, do not set up an expression in scope if the \'&\' binding is optional.\n\nBREAKING CHANGE:\n\nPreviously, \'&\' expressions would always set up a function in the isolate\nscope. Now, if the binding is marked as optional and the attribute is not\nspecified, no function will be added to the isolate scope.\n\nFinally, if the \'&\' expression is not optional, and the attribute is not\nspecified, then rather than the function being essentially a NOOP, it will\ninstead throw an error indicating to the programmer that a required attribute\nwas not specified.\n\nCloses #6404', '20', null, null, 'caitp', '2014-09-22T17:58:12Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5941', '37', '9217', 'feat($location): add ability to opt-out of <base/> tag in html5Mode', 'This feature allows disabling Angular\'s requirement of using a <base/> tag\r\nwhen using location in html5Mode, for applications that do not require\r\nusing $location in html5Mode in IE9. To accomplish this, a getter/setter method \r\nwas added to $locationProvider called baseOptOut, which accepts a single boolean \r\nparameter. The method is semantically similar to html5Mode() (returns this if\r\ncalled with bool param, otherwise returns current value).', '13', null, null, 'jeffbcross', '2014-09-22T19:18:37Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5942', '37', '9219', 'Fixing isObject', 'Fixing isObject to return true only if the constructor is an Object.', '5', null, null, 'renatoluna', '2014-09-22T19:51:52Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5943', '37', '9221', 'perf(map): use Array.prototype.map if available', 'This is a slightly more conservative take on #9067.', '5', null, null, 'btford', '2014-09-22T20:01:24Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5944', '37', '9225', 'fix($browser): do not decode cookies that do not appear encoded', 'Closes #9211', '1', null, null, 'shahata', '2014-09-23T07:40:30Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5945', '37', '9226', 'docs(ngRepeat): fix wrong paragraph order', 'These paragraphes are related to `track by`, not to `as alias`.', '4', null, null, 'artch', '2014-09-23T08:33:10Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5946', '37', '9229', 'refactor($parse): Create idents lazily', 'Create the ident functions lazily as these are not used for filters not object literal properties\r\nThe generated functions that are not used can cause issues with some browsers\r\n\r\nCloses #9131\r\n\r\nNote: This may have cause some performance improvements', '7', null, null, 'lgalfaso', '2014-09-23T11:52:52Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5947', '37', '9233', 'feat(filterFilter): introduce new \":expression\" syntax in pattern object', 'It is sometimes convenient to use an angular expression as a property key to be matched against the comparator value. This adds new syntax which can be used like this:\r\n```javascript\r\n{\":getData().name\": \"M\"}\r\n```\r\n```javascript\r\n{\":foo()\": true}\r\n```\r\n```javascript\r\n{\":progress.current+progress.total\": 100}\r\n```\r\n\r\n The parsed expression function persists within the iterator closure so that performance should be fine.', '0', null, null, 'artch', '2014-09-23T18:41:02Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5948', '37', '9237', 'fix($browser): handle async href on url change in <=IE9', 'Fixes #9235 \r\n\r\nAffects 1.2.25 and 1.3.x.', '4', null, null, 'chrisirhc', '2014-09-24T01:06:40Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5949', '37', '9239', 'Fix Grammar in CONTRIBUTING.md', 'The previous capitalisation of nouns in the unordered list on lines 69-76 was inconsistent between lines. Simple grammar fix to improve the stylistic look and improve readability. No wording was changed. No source code was changed.', '1', null, null, 'adzample', '2014-09-24T02:55:54Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5950', '37', '9240', 'fix($compile): Handle the removal of an interpolated attribute', 'Handle the removal of an interpolated attribute before the attribute interpolating directive is linked\r\n\r\nCloses #9236', '0', null, null, 'lgalfaso', '2014-09-24T06:10:28Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5951', '37', '9243', 'Update resource.js', '', '5', null, null, 'gersakbogdan', '2014-09-24T10:04:16Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5952', '37', '9251', 'docs($resource)', 'clarify the meaning of `@` in `paramDefaults` for non-GET operations', '2', null, null, 'gersakbogdan', '2014-09-24T14:39:38Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5953', '37', '9252', 'clarify terminal parameter', 'Clarifies that the terminal parameter will also exclude execution of any directives and expressions in the directive\'s own template.', '1', null, null, 'skwakman', '2014-09-24T15:34:00Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5954', '37', '9255', 'refactor(publish): fixes url', 'code.angular.js.org redirects you to the wrong site.', '2', null, null, 'jesselpalmer', '2014-09-24T17:45:41Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5955', '37', '9257', 'docs(tutorial/step_11): Correct the summary to match the step\'s content', '', '4', null, null, 'floydpink', '2014-09-24T20:30:27Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5956', '37', '9258', 'feat($http): add notify callback for loading requests', 'Allows progress notifications for $http requests.\r\n\r\nThis makes use of the readyState 3 of XMLHttpRequest and uses the promises\' notifications API which contains partial data except for IE 9 and below.\r\n\r\nIt\'s intentional that this *doesn\'t* call $apply since this may occur many times in a short span of time.\r\nI\'ll add tests if this proves to be useful to add.', '4', null, null, 'chrisirhc', '2014-09-24T20:48:45Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5957', '37', '9259', 'chore(docs): minify js files', '* Minifies the primary JS app files\r\n* Remove unused code - bootstrap-prettify.js altogether (moving a couple of services into tutorial.js)\r\n* Enables strict-di (which exposed some issues with the docs app and with e2e testing - see protractor config changes)\r\n* tweaked the logo loading', '10', null, null, 'petebacondarwin', '2014-09-24T20:56:00Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5958', '37', '9260', 'fix(ngModel): don\'t parse before validating if viewValue is undefined', 'Prevents unintentionally reporting an undefined view value as a parse error...\n\nCloses #9106', '7', null, null, 'caitp', '2014-09-24T21:21:51Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5959', '37', '9262', 'fix(select): make ctrl.hasOption method consistent', 'this is a WIP\r\n\r\nCloses #8761', '5', null, null, 'btford', '2014-09-24T22:37:39Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5960', '37', '9263', 'fix(ngModel): minimize jank when toggling CSS classes during validation', 'Previously, class toggling would always occur immediately. This causes\nproblems in cases where class changes happen super frequently, and can result\nin flickering in some browsers which do not handle this jank well.\n\n/cc @matsko please help review this! It is very much your area of expertise!\n\nCloses #8234', '14', null, null, 'caitp', '2014-09-25T02:06:17Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5961', '37', '9264', 'fix(inputs): ignoring input events in IE caused by placeholder changes o...', '...r focus/blur on inputs with placeholders\r\n\r\nThis is my attempt at fixing #8242 as well as the extra placeholder issues with focus/blur. I\'m assuming I\'m missing a weird test case that still breaks somewhere, but I still think this is an improvement (it definitely is for my use cases). This PR is for 1.2.x because this was a 1.2 regression.', '5', null, null, 'jbedard', '2014-09-25T03:58:26Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5962', '37', '9265', 'fix(inputs): ignoring input events in IE caused by placeholder changes o...', '...r focus/blur on inputs with placeholders\r\n\r\nThis is my attempt at fixing #8242 as well as the extra placeholder issues with focus/blur. I\'m assuming I\'m missing a weird test case that still breaks somewhere, but I still think this is an improvement (it definitely is for my use cases).', '85', null, null, 'jbedard', '2014-09-25T04:45:55Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5963', '37', '9268', 'Further clarify terminal parameter', 'Clarifies that the terminal parameter will also exclude execution of any directives and expressions in the directive\'s own template.', '1', null, null, 'skwakman', '2014-09-25T08:06:21Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5964', '37', '927', 'fix(select): don\'t interfere with selection if not databound', 'Closes #926', '1', null, null, 'IgorMinar', '2012-05-02T07:33:46Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5965', '37', '9274', 'refactor($q): remove redundant callbacks from when method', 'The `when` method had some extra callbacks parameters which are not documented and not used inside angular', '7', null, null, 'shahata', '2014-09-25T12:48:45Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5966', '37', '9277', 'fix(input): format as string before running minlength/maxlength formatters', 'Previously, minlength/maxlength would not work correctly when dealing with\nnon-string model values.\n\nA better fix for this has already been implemented in 1.3, but unfortunately\nimplementing that fix in 1.2 is a bit harder as it requires a number of\ncommits to be backported in order to solve the problem correctly.\n\nCloses #5936', '7', null, null, 'caitp', '2014-09-25T16:18:24Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5967', '37', '928', 'Fix for Issue #912 ($position in repeat directive can\'t be both first and last at the same time)', 'Fix for issue #912 (https://github.com/angular/angular.js/issues/912) \r\n\r\nImplementation of my suggested fix where three boolean values $first, $middle and $last replaces the $position variable. I also added a test case for single item lists.\r\n', '6', null, null, 'maxmart', '2012-05-02T17:27:38Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5968', '37', '9281', 'TRANSCLUDE MEMORY LEAK: fix($compile): connect transclude scopes to their containing scope to prevent memory leaks', '**This Pull Request fixes memory leaks caused by transcluded scopes not being destroyed when their DOM container is destroyed. See #9095**\r\n\r\nTranscluded scopes are now connected to the scope in which they are created via their `$parent`\r\nproperty. This means that they will be automatically destroyed when their \"containing\" scope is\r\ndestroyed, without having to resort to listening for a `$destroy` event on various DOM elements\r\nor other scopes.\r\n\r\nPreviously, transclude scope not only inherited prototypically from the scope from which they were\r\ntranscluded but they were also still owned by that \"outer\" scope. This meant that there were\r\nscenarios where the \"real\" container scope/element was destroyed but the transclude scope was not,\r\nleading to memory leaks.\r\n\r\nThe original strategy for dealing with this was to attach a `$destroy` event handler to the DOM\r\nelements in the transcluded content, so that if the elements were removed from the DOM then their\r\nassociated transcluded scope would be destroyed.\r\n\r\nThis didn\'t work for transclude contents that didn\'t contain any elements - most importantly in\r\nthe case of the transclude content containing an element transclude directive at its root, since\r\nthe compiler swaps out this element for a comment before a destroy handler could be attached.\r\n\r\nBREAKING CHANGE:\r\n\r\n`$transclude` functions no longer attach `$destroy` event handlers to the transcluded content,\r\nand so the associated transclude scope will not automatically be destroyed if you remove a\r\ntranscluded element from the DOM using direct DOM manipulation such as the jquery `remove()`\r\nmethod.\r\n\r\nIf you want to explicitly remove DOM elements inside your directive that have been compiled, and so\r\npotentially contain child (and transcluded) scopes, then it is your responsibility to get hold of\r\nthe scope and destroy it at the same time.\r\n\r\nThe suggested approach is to create a new child scope of your own around any DOM elements that you\r\nwish to manipulate in this way and destroy those scopes if you remove their contents - any child\r\nscopes will then be destroyed and cleaned up automatically.\r\n\r\nNote that all the built-in directives that manipulate the DOM (ngIf, ngRepeat, ngSwitch, etc)\r\nalready follow this best practice, so if you only use these for manipulating the DOM then you\r\ndo not have to worry about this change.\r\n\r\nCloses #9095', '14', null, null, 'petebacondarwin', '2014-09-25T20:41:10Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5969', '37', '9283', 'fix(ngAnimate): defer DOM operations for changing classes to postDigest', 'When ngAnimate is used, it will defer changes to classes until postDigest.\nPreviously, AngularJS (when ngAnimate is not loaded) would always immediately\nperform these DOM operations.\n\nNow, even when the ngAnimate module is not used, if $rootScope is in the midst\nof a digest, class manipulation is deferred. This helps reduce jank in\nbrowsers such as IE11.\n\n/CC @tbosch --- alternative/more general fix here\n\nCloses #8234\nCloses #9263', '52', null, null, 'caitp', '2014-09-25T23:28:41Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5970', '37', '9285', 'feat(select): add $optionChangeListeners to selectDirective controller', 'Adds `$optionChangeListeners` to the selectDirective controller, this is fully backward compatible and has no impact on performance whatsoever if the dev decides not to use it, and has no impact on existing code.\r\n\r\nThe reasoning behind this feature is that `ng-options` expression is un$parseable from outside the `optionDirective`, and you can\'t have the current set resulting from the `ng-options` expressions without relying on a scope. This forces the dev to create a custom directive to watch for changes on a `filtered` variable from the underlaying scope (like `ng-options=\"item.text for item in (filtered = (items | filter:fn1 | filter:fn2))\"` and it\'s not portable between directives, like `$viewChangeListeners` in `NgModelController`.\r\nThis makes isolated select controllers easier to accomplish and scope agnostic, aka web components style. \r\n\r\nThis also encourages future proof directive code, since it won\'t depend on the DOM or manually crafted enforced scopes, nor needs to watch over collections (that increases $digest overhead). \r\n\r\nPseudo-code:\r\n\r\n```js\r\n.directive(\'selectPlugin\', function(){\r\n return {\r\n restrict: \'A\',\r\n require: \'select\',\r\n link: function(scope, el, attrs, select){\r\n select.$optionChangeListeners.push(function selectListener(items){\r\n if (el.selectPlugin.initialized) {\r\n el.selectPlugin.refresh();\r\n } else {\r\n el.selectPlugin.init();\r\n }\r\n });\r\n }\r\n };\r\n});\r\n``` \r\n\r\n```html\r\n<select select-plugin ng-options=\"item.id as item.name for item in items | filter:filterFn\"></select>\r\n```\r\n\r\nCloses #9222', '6', null, null, 'pocesar', '2014-09-26T05:29:58Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5971', '37', '9287', 'feat($q): finally callback is called with result arguments', 'before this commit, `finally` callback was called with no arguments and couldn\'t know whether the promise was resolved or rejected and why.\r\n\r\nCloses #9246', '36', null, null, 'shahata', '2014-09-26T07:37:27Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5972', '37', '9289', 'docs(select): Clarify documentation for ngOptions', 'ngOptions introduced `track by` in c32a859bdb93699cc080f9affed4bcff63005a64.\r\nUsing `track by` puts constraints on the value you can use in the interpolation\r\nexpression in ngOptions. This patch documents this.\r\n\r\nCloses angular/angular.js#6564\r\n\r\nPart 1 of the split of angular/angular.js#8544 as requested by @btford ', '1', null, null, 'janv', '2014-09-26T07:51:29Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5973', '37', '929', 'Request Interceptor basic implementation (based on the Response Interceptor)', 'The request interceptor allows pre-processing of the request headers and give access to the config object (url, method,..).\r\nThis allows for instance a custom digest authentication (Restful service should be stateless),...\r\n\r\nIt is completely copied from the response interceptor code (except the parameters).', '34', null, null, 'YeFFreY', '2012-05-02T18:08:40Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5974', '37', '9290', 'fix(select): Add exception for unsupported ngOptions use case', 'ngOptions introduced `track by` in c32a859bdb93699cc080f9affed4bcff63005a64.\r\nUsing `track by` puts constraints on the value you can use in the interpolation\r\nexpression in ngOptions. This patch adds an exception\r\nif you use ngOptions in an unsupported way.\r\n\r\nPart 2 of the split of angular/angular.js#8544 as requested by @btford ', '9', null, null, 'janv', '2014-09-26T07:52:03Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5975', '37', '9293', 'Updated index.ngdoc to add a new AngularJS book', 'I wrote a book on AngularJS (AngularJS: Novice to Ninja). Adding it to the list of books in index.ngdoc.', '3', null, null, 'sandeeppanda92', '2014-09-26T07:57:13Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5976', '37', '9297', 'docs: Grammar correction in docs', '\"an $http\" -> \"a $http\"', '12', null, null, 'mvpspl619', '2014-09-26T12:29:28Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5977', '37', '9298', 'perf(jqLite): use index instead of array.shift()', 'it is much faster: http://jsperf.com/array-shift-vs-index\r\n', '1', null, null, 'JensGabe', '2014-09-26T13:36:38Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5978', '37', '9299', 'perf(jqLite): use index instead of array.shift()', 'it is much faster: http://jsperf.com/array-shift-vs-index', '5', null, null, 'JensGabe', '2014-09-26T13:41:26Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5979', '37', '93', 'Issue ie', '', '0', null, null, 'mhevery', '2010-10-27T05:03:47Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5980', '37', '9300', 'refactor($http) Simplify code by removing the createXhr() method', 'This removes a workaround for IE 8 and and error handling for IE6. This is basically a revert of 6c17d02bc4cc02f478775d62e1f9f77da9da82ad.\r\n\r\nSaves 202 bytes on the minified build.', '3', null, null, 'realityking', '2014-09-26T15:01:19Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5981', '37', '9301', 'fix($parse): Disallow referencing a DOM element on arrays', 'Disallow referencing a DOM element on an array element', '12', null, null, 'lgalfaso', '2014-09-26T15:02:07Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5982', '37', '9302', 'Update compiler.ngdoc with minor fixes', 'Minor changes to grammar. Changed sentence \"But the declarative language is also limited, since it does not allow you to teach the browser new syntax.\" to now read \"However the declarative language is also limited, as it does not allow you to teach the browser new\r\nsyntax.\" However is a less informal start to a sentence, and replacing \"since\" correctly references extent/degree rather than comparison of time.', '4', null, null, 'biversen21', '2014-09-26T16:53:29Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5983', '37', '9305', 'refactor($q): removing duplicate tests by using describe loop', '', '7', null, null, 'shahata', '2014-09-26T18:30:49Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5984', '37', '9306', 'fix(directives): fix `this` keyword inside link functions', 'Directive functions `template`, `templateUrl` and `compile` were properly bound to the definition object of the directive, but `link` was not. This made very hard for Coffeescript and Typescript users to have proper \"classes\" defined (using `class` keyword) because link would not retain the context of `this`. \r\n\r\nCloses #8549', '23', null, null, 'pocesar', '2014-09-26T21:04:34Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5985', '37', '9307', 'Update directive.ngdoc', 'ngRoute is not a part of ng core anymore.', '2', null, null, 'VictorQueiroz', '2014-09-26T21:37:12Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5986', '37', '9309', 'chore(e2e): bump protractor to version 1.3.1', '', '4', null, null, 'juliemr', '2014-09-26T22:00:42Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5987', '37', '931', 'Double directive controller instantiation fix', '', '0', null, null, 'IgorMinar', '2012-05-02T23:37:04Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5988', '37', '9310', 'Add range filter', 'This is a very easy way to create loops in the template.\r\n\r\nLet\'s say you want to make a <ul> with 5 <li> elements. It is as simple as this:\r\n\r\n````\r\n<ul>\r\n <li ng-repeat=\"item in range(5)\">Item</li>\r\n</ul>\r\n````\r\n\r\nThis filter is very flexible and allows setting a step, and start number as well. I added some unit tests as well as adding it to the build configurations.', '11', null, null, 'userpixel', '2014-09-26T22:02:10Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5989', '37', '9311', 'Update directive.ngdoc', '', '9', null, null, 'VictorQueiroz', '2014-09-26T22:11:17Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5990', '37', '9312', 'Don\'t put Sauce creds out in the open', 'run small and easy ROT13 on them to at least prevent people\r\nfrom blatantly copying and pasting them :)', '5', null, null, 'santiycr', '2014-09-26T23:50:10Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5991', '37', '9313', 'docs(ngMock.$log): fix typos and link texts', '', '0', null, null, 'gkalpak', '2014-09-27T12:34:41Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5992', '37', '9314', 'fix broken link for A Recipe for Building Modern Web Applications', 'https://cloud.google.com/docs/articles/angularjs-cloud-endpoints-recipe-for-building-modern-web-applications 404\'d', '4', null, null, 'caseyg1204', '2014-09-28T01:15:22Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5993', '37', '9315', 'fix(formController): remove scope reference when form is destroyed', '', '15', null, null, 'shahata', '2014-09-28T08:04:09Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5994', '37', '9316', 'test(ngRequired): add some tests for ngRequired', '', '0', null, null, 'gkalpak', '2014-09-28T10:46:08Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5995', '37', '9317', 'Fixed 9091: ngRoute should load the template after resolve', 'Currently ngRoute will load the template while it is still resolving. https://github.com/angular/angular.js/issues/9091\r\nThis patch will stop that behavior and will resolve before the template gets loaded, so that people could change the template via:\r\n $route.current.template/$route.current.templateUrl, so you could build more powereful Applications with the default router. (loading a template based on the resolved resource)', '5', null, null, 'schmitch', '2014-09-28T12:09:59Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5996', '37', '9318', 'docs($exceptionHandler): add a note about cases when exceptions are not delegated...', '...to the $exceptionHandler\r\n\r\nAdd a note in $exceptionHandler\'s documentation about cases when exceptions are not delegated to the\r\n$exceptionHandler, because they are executed outside of the Angular context. Most notable such\r\ncases being the DOM event listeners registered using jqLite\'s/jQuery\'s on/bind methods.\r\n\r\nCloses #7909', '6', null, null, 'gkalpak', '2014-09-28T15:02:00Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5997', '37', '9319', 'feat ($http): Add custom createXhr factory to config object', 'To be able to construct non-standard or customised XHR objects a factory an optional factory function can be added to the config object. This is required for use of the mozAnon and mozSystem options for FirefoxOS.\r\nSee https://developer.mozilla.org/en-US/docs/DOM/XMLHttpRequest#XMLHttpRequest() for details.\r\n\r\nThis is an alternative solution to the one suggested in PR #7903. Closes #2318', '23', null, null, 'sjurba', '2014-09-28T18:54:49Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5998', '37', '932', 'Compile template', '', '0', null, null, 'IgorMinar', '2012-05-04T08:30:00Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('5999', '37', '9320', 'Improved readability of the second paragraph', '', '4', null, null, 'sterlingw', '2014-09-28T19:16:56Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6000', '37', '9321', 'fix($http): add missing shortcut methods and missing docs', 'There was some inconsistency in version 1.2.25 regarding the definition and documentation of shortcut methods in `ng.$http` and `ngMock[E2E].$httpBackend`. Some methods didn\'t exist (although documented as existing), whereas some methods did exist, but wheren\'t documented.\r\nThis commit fixes the above errors and adds tests to verify the existence of all shortcut methods.\r\n\r\nMore specificcally, the following issues were addressed:\r\n* `ng.$http`: Add the missing `patch()` shortcut method and related docs.\r\n* `ng.$http` spec: Add test to verify the existence and functionality of the `patch()` shortcut method.\r\n* `ngMock[E2E].$httpBackend`: Add docs for the (existing) `whenPATCH()` shortcut method, add the missing `expectHEAD()`/`whenHEAD()` shortcut methods, fix grammatical errors.\r\n* `ngMock[E2E].$httpBackend` spec: Add test to verify the existence of shortcut methods for all HTTP verbs.\r\n\r\nCloses #9180', '5', null, null, 'gkalpak', '2014-09-28T22:13:49Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6001', '37', '9322', 'test(ngMock.$httpBackend): add tests for the existence of `when` shortcut methods', '', '0', null, null, 'gkalpak', '2014-09-28T22:59:37Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6002', '37', '9323', 'test($http): fix typo in $httpSpec', '', '2', null, null, 'gkalpak', '2014-09-28T23:07:40Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6003', '37', '9324', 'docs(Custom directives to access DOM): improve readability', 'When I first read the \"Custom directives to access DOM\" I thought the wording was a little confusing.\r\n\r\nI still dislike the wording \"artifacts that access the DOM are hard to test\" because tools like Protractor makes it pretty easy. Perhaps a better explanation would somehow explain that DOM manipulation outside of directives creates tight coupling that decreases testability, which is obviously undesirable. Is it worth trying to include a sentence like this, or is the current definition sufficient?', '1', null, null, 'gregjhogan', '2014-09-29T01:29:49Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6004', '37', '9326', 'fix($compile): Resolve various potential memory leaks (v1.2.x)', 'This is basically a backport of #9079 to the stable branch.', '4', null, null, 'petebacondarwin', '2014-09-29T16:46:30Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6005', '37', '9327', 'chore(ci): remove repeated tests running from Travis build', 'In b2902446eb41591f5d868846d3c5bad3a888bcba the doce2e tests were moved\r\ninto the \'unit\' test job on Travis, but only half of this change ever made\r\nit into v1.2.x. This change fixes up the other half, so that the doce2e\r\ntests are run only once.', '1', null, null, 'juliemr', '2014-09-29T18:02:53Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6006', '37', '9329', 'refactor($http) Use onload/onerror/onabort instead of onreadystatechange', 'This depends on #9300 and includes the commit form that pull request. This should only be merged once the #9300 has been merged but I\'d like some early feedback.\r\n\r\nBy using the newer unload/onerror/onabort events the code can be made much more readable and a number of browser workarounds can be dropped.\r\n\r\nI confirmed using the iOS simulator that #5426 does not happen with the unload event.\r\n\r\nI suspect that this is also a bit faster, since the browser has to call events less often but that\'s going to be negligible.', '1', null, null, 'realityking', '2014-09-29T19:14:48Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6007', '37', '9330', 'docs(guide): improve Protractor test for bindings', 'Main reason is this test should be using `by.binding` locator instead of manually `span[ng-bind]`.\r\nThis needs Protractor >= 1.3.0 to work.', '4', null, null, 'elgalu', '2014-09-29T20:37:31Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6008', '37', '9331', 'docs(CHANGELOG.md): put `<base>` in codeblock', 'Prevent the tag from being processed (and not rendered). Thanks @davidlehn.', '0', null, null, 'caitp', '2014-09-29T21:16:02Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6009', '37', '9335', 'docs($compile): add missing header', 'Without this header, it looked like this example is part of the section about the attributes object.', '1', null, null, 'thorn0', '2014-09-29T23:55:45Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6010', '37', '9336', 'docs($compile): fix a broken link', '', '3', null, null, 'thorn0', '2014-09-30T00:11:24Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6011', '37', '9337', 'docs(CONTRIBUTING.md): Revert \"Added a not about type\"', 'This reverts commit 86d33c5f9d77f1e8a97b4c423e5497198fbc23cd by @RichardLitt\r\n\r\nAs the \'Improve this docs\' button has been improved a bit itself.\r\nSee angular/dgeni-packages#75', '10', null, null, 'thorn0', '2014-09-30T00:21:31Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6012', '37', '9339', 'docs(guide/HTML Compiler): Change draggable example from span to div', 'The draggable example does not work as expected in Chrome (37.0.2062.124 m). The span disappears when dragged beyond what appears to be a small area. Changing the span to a div (with a width of 100px) resolves this issue.', '0', null, null, 'heyjustin', '2014-09-30T07:12:15Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6013', '37', '9340', 'docs(guide/HTML Compiler): change draggable span to block', 'The draggable example does not work as expected in Chrome (37.0.2062.124 m). The span disappears when dragged beyond what appears to be a small area. Changing the span to a block element (with a width of 65px) resolves this issue.\r\nAn alternative solution would be to change the span to a div.', '1', null, null, 'heyjustin', '2014-09-30T07:34:53Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6014', '37', '9345', 'fix($compile): get $$observe listeners array as own property', 'Prevent accidentally treating a builtin function from Object.prototype as the\nbinding object, and thus preventing the compiler from throwing when using\nattribute binding names which match a property of the Object prototype.\n\nCloses #9343', '1', null, null, 'caitp', '2014-09-30T14:24:40Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6015', '37', '9346', 'fix($compile): get $$observe listeners array as own property', 'Prevent accidentally treating a builtin function from Object.prototype as the\nbinding object, and thus preventing the compiler from throwing when using\nattribute binding names which match a property of the Object prototype.', '3', null, null, 'caitp', '2014-09-30T14:53:45Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6016', '37', '9349', 'style(ng/filter/filter) change quotes and change equality to identity', 'before change quotes where mixed and one if contained equality operator instead of identity', '2', null, null, 'JakubZych', '2014-09-30T17:35:49Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6017', '37', '9350', 'Document controller interdependency limitation', 'Document case where controllers cannot depend on each other', '7', null, null, 'brianfeister', '2014-09-30T17:38:32Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6018', '37', '9351', 'docs($q): Implement the same example for both usages', 'The current documentation has a `return` in the middle of nowhere and somewhat complicates the example with unnecessary code. This implements the same code as in the example for the other way of using $q in order to simplify the differences between them.', '4', null, null, 'Schlogen', '2014-09-30T18:13:56Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6019', '37', '9353', '\'unshift\' argument for provider\'s loader', 'Providers are used in config blocks, but in case when config block invokes before provider, there is no-provider error. This situation may appear when module and config block declared in one file, and provider - in another. Eg.\r\n\r\n_module.js_\r\n```\r\nangular.module(\"App\", [])\r\n\r\n.config([\"fooProvider\", function (fooProvider) {\r\n}]);\r\n```\r\n\r\n_foo-provider.js_\r\n```\r\nfunction fooProvider () {\r\n}\r\n\r\nangular.module(\"App\")\r\n.provider(\"foo\", fooProvider);\r\n```\r\n\r\nCode from _module.js_ always runs first and causes an error.\r\nWhat do you think?', '5', null, null, 'snater', '2014-09-30T21:36:03Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6020', '37', '9354', '[[DUPE of 8975 for Travis]]', '', '0', null, null, 'jeffbcross', '2014-09-30T22:40:18Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6021', '37', '9355', 'refactor(ngView): remove previousElement bookkeeping', 'it\'s unnecessary and inconsistent (because finishing animations reset we see situations\r\nwhere not previousElement is not always removed and more than one leave animation is going on at the same time).\r\n\r\nCloses #7606', '2', null, null, 'IgorMinar', '2014-09-30T23:15:03Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6022', '37', '9356', 'refactor: remove the remaining IE8 code bits from the codebase', '', '5', null, null, 'IgorMinar', '2014-09-30T23:42:22Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6023', '37', '9358', 'fix(input): register builtin parsers/formatters before anyone else', 'Previously, builtin parsers/formatters for e.g. `input[date]`\r\nor `input[number]` were added in the post linking phase to `ngModelController`,\r\nwhich in most cases was after a custom formatter/parser was registered.\r\n\r\nThis commit registers builtin parsers/formatters already\r\nin the pre linking phase. With that builtin \r\nparsers run first, and builtin formatters run last.\r\n\r\nCloses #9218', '4', null, null, 'tbosch', '2014-10-01T00:27:54Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6024', '37', '936', 'fix(ngModel): use keydown/change events on IE9 instead of input', 'On IE9 the input event is not fired when backspace or delete key are pressed or when\r\ncut is performed. This makes listening on the input event unreliable and therefore\r\nit\'s better for us to just use keydown/change events instead.\r\n\r\nCloses #879', '2', null, null, 'IgorMinar', '2012-05-06T16:27:39Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6025', '37', '9362', '\'unshift\' argument for provider\'s loader', 'Providers are used in config blocks, but in case when config block invokes before provider, there is no-provider error. This situation may appear when module and config block declared in one file, and provider - in another. Eg.\r\n\r\n_module.js_\r\n```\r\nangular.module(\"App\", [])\r\n\r\n.config(function (fooProvider) {});\r\n```\r\n\r\n_foo-provider.js_\r\n```\r\nfunction fooProvider () {\r\n return {\r\n $get: function () {}\r\n };\r\n}\r\n\r\nangular.module(\"App\")\r\n.provider(\"foo\", fooProvider);\r\n```\r\n\r\nCode from _module.js_ always runs first and causes an error. There is [fiddle](http://jsfiddle.net/garmashnikolay/9p5cgde4/1/)\r\nWhat do you think?', '0', null, null, 'snater', '2014-10-01T07:30:37Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6026', '37', '9363', 'feat(controller): allow named function syntax when registering controllers', 'This pull-request means to introduce two new syntax for registering controllers:\r\n\r\n```js\r\n$controllerProvider.register(function FooCtrl($scope) {\r\n // ...\r\n});\r\n\r\n$controllerProvider.register([\'$sope\', function FooCtrl($scope) {\r\n // ...\r\n}]);\r\n```\r\n\r\nAs it is shown above, using a named function we can remove the need for the first argument on the controller declaration, which was the controller\'s name.\r\n\r\nThis feature relies first on [Function.name](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/name), which is currently implemented in most major browsers, with the exception of Internet Explorer. Because of that, I have also added a fallback method to get a function\'s name, which was mostly based on @dfkaye\'s [Gist](https://gist.github.com/dfkaye/6384439), although I\'ve pretty much skiped the validation part which I think is unecessary for this case.\r\n\r\n*P.s.: I\'ve made tests for both use-cases and all test (including e2e) seem to be working just fine.*', '22', null, null, 'lucasconstantino', '2014-10-01T08:04:16Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6027', '37', '9364', '\'unshift\' argument for provider\'s loader', 'Providers are used in config blocks, but in case when config block invokes before provider, there is no-provider error. This situation may appear when module and config block declared in one file, and provider - in another. Eg.\r\n\r\n_module.js_\r\n```\r\nangular.module(\"App\", [])\r\n\r\n.config(function (fooProvider) {});\r\n```\r\n\r\n_foo-provider.js_\r\n```\r\nfunction fooProvider () {\r\n return {\r\n $get: function () {}\r\n };\r\n}\r\n\r\nangular.module(\"App\")\r\n.provider(\"foo\", fooProvider);\r\n```\r\n\r\nCode from _module.js_ always runs first and causes an error. There is [fiddle](http://jsfiddle.net/garmashnikolay/9p5cgde4/1/)\r\nWhat do you think?', '3', null, null, 'snater', '2014-10-01T08:11:51Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6028', '37', '9365', 'perf($compile): only use document fragments and copy data when necessary (replaceWith)', 'This does a few things, all within the internal `replaceWith`...\r\n\r\n* only creates the document fragment if needed and clarifies why it\'s there\r\n* only copies data if the node `hasData` to avoid creating empty data to copy (a jqLite version of `hasData` was added)\r\n* uses the static data methods to avoid creating jqLite/jQuery objects\r\n* cleans the data of all replaced elements the same way (this will no longer trigger $destroy on nodes 1+, like node 0, which seems correct to me)\r\n* uses jqLite/jQuery/Array.splice to do the array modifications', '18', null, null, 'jbedard', '2014-10-01T09:20:37Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6029', '37', '9367', 'docs(*): fix dangling links', 'Fix many dangling links', '10', null, null, 'lgalfaso', '2014-10-01T11:57:33Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6030', '37', '9368', 'ANCHOR SCROLL: chore(docs): add directive to pad heading anchors', 'Closes #2070\r\nCloses #9360', '19', null, null, 'petebacondarwin', '2014-10-01T13:27:07Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6031', '37', '9369', 'bind perf', 'Speeds up chrome with ~10% firefox by ~5%', '21', null, null, 'jimmywarting', '2014-10-01T15:19:06Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6032', '37', '9371', 'ANCHOR SCROLL: WIP - feat($anchorScroll): add support for configurable scroll offset', 'Add support for a configurable scroll offset to $anchorScrollProvider.\r\nThe offset is expressed in pixels and can be specified either as a fixed value or as a function that returns the offset it pixels dynamically.\r\n(This is a POC and a WIP: no docs, no tests)\r\n\r\nRelated to #9368\r\n\r\nCloses #2070, #9360', '47', null, null, 'gkalpak', '2014-10-01T16:49:03Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6033', '37', '9372', 'feat($swipe) Add config param to allow choosing X/Y thresholds.', 'Closes #4550\nCloses #5812\n\n- Create config parameter to pass in swipe/scroll (X/Y) thresholds.\n- Allow the new thresholds to be applied to how the function determines when\nto scroll and when to swipe.\n- Fix bug where swiping back and forth within the thresholds would cause a bad\ncancel event.\n- Fix bug where if you went back inside the thresholds, you could potentially\ncancel a swipe in progress.\n- Add tests for all these changes.\n- Clean up the docs and add definition for the parameters used in\n`$swipe.bind`.', '11', null, null, 'caitp', '2014-10-01T17:21:50Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6034', '37', '9374', 'fix(ngView): use animation promises ensure that only one leave animation...', '... occurs at a time\r\n\r\nthe tracking depended on a local flag variable, which was susceptible to corruption due to\r\nrace conditions.\r\n\r\nCloses #9355\r\nCloses #7606', '0', null, null, 'IgorMinar', '2014-10-01T21:59:05Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6035', '37', '9375', 'fix(input): correctly handle invalid model values for `input[date/time/…...', '...]`\r\n\r\nSimilar to `input[number]` Angular will throw if the model value\r\nfor a `input[date]` is not a `Date` object.\r\nFor `Invalid Date`s (dates whos `getTime()` is `NaN`) `input[date]` \r\nwill render an empty string.\r\n\r\nCloses #8949', '8', null, null, 'tbosch', '2014-10-01T22:25:04Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6036', '37', '9376', 'chore(npm): publish artifacts to npm', 'Note that there are still a few pending tasks before this can land, namely getting permissions for all of the package names on npm:\r\n\r\n* ~~[angular](https://www.npmjs.org/package/angular)~~ got it. Thanks @bclinkinbeard!\r\n* ~~[angular-animate](https://www.npmjs.org/package/angular-animate)~~ got it. thanks @pitbeast!\r\n* ~~[angular-cookies](https://www.npmjs.org/package/angular-cookies)~~ got it. Thanks @petermelias!\r\n* ~~[angular-mocks](https://www.npmjs.org/package/angular-mocks)~~ got it. Thanks @zizzamia!\r\n* ~~[angular-route](https://www.npmjs.org/package/angular-route)~~ got it. Thanks @mljsimone!\r\n* ~~[angular-resource](https://www.npmjs.org/package/angular-resource)~~ got it. Thanks @roylines!\r\n* ~~[angular-sanitize](https://www.npmjs.org/package/angular-sanitize)~~ got it. Thanks @akalinovski!\r\n\r\nIf you own one of these packages, you can help by adding user \"angularcore\" to the package\r\n\r\n### unclaimed: \r\n* angular-aria\r\n* angular-i18n\r\n* angular-loader\r\n* angular-scenario\r\n* angular-touch\r\n* angular-messages\r\n\r\n~~I also still need to add `package.json` for each `bower-angular-*` repo (since that\'s how we\'ll be publishing these artifacts).~~ done!\r\n\r\nCloses #2877 \r\n', '19', null, null, 'btford', '2014-10-01T23:25:40Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6037', '37', '9378', 'refactor(publish): fixes url', 'This was originally in #9255, but I accidently closed the pr trying fix the cla error.', '1', null, null, 'jesselpalmer', '2014-10-02T00:58:59Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6038', '37', '9382', 'fix($animate): clear the GCS cache even when no animation is detected', '$animate aims to speed up redundant calls to getComputedStyle to prevent\r\nunessarry reflows in the event that similar elements are being animated\r\nat the same time. A hidden bug was causing the GCS cache not to be reset\r\nif an CSS-based animation was not found. This patch ensures that the\r\nGCS lookup cache is always cleared after one animation reflow has\r\npassed.\r\n\r\nCloses #8813', '4', null, null, 'matsko', '2014-10-02T10:52:04Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6039', '37', '9385', 'Added a more appropriate title to the page above the \'alert\' box. ', 'Added a more appropriate title to the page above the \'alert\' box. \r\n\r\nThis also frees up space for the \'Improve this Doc\' button displayed on this page: https://docs.angularjs.org/guide/compiler ', '3', null, null, 'clinch', '2014-10-02T12:37:40Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6040', '37', '9387', 'docs(error/areq): describe your change...', '', '4', null, null, 'ananthasharma', '2014-10-02T13:38:10Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6041', '37', '9390', 'test($compile): add test for alternative syntax to get controllers from ancestors', 'Because the regex that tests the `require` value will match more than just `^^?`,\r\nit is important to test other common ways to specify a controller requirement\r\nto ensure that a breaking change isn\'t introduced inadvertently. This adds a test\r\nfor `?^^`.\r\n\r\nCloses #9389', '3', null, null, 'kentcdodds', '2014-10-02T15:47:48Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6042', '37', '9392', 'test($compile): add test for optional `require` in directives with `^` operator', 'The directive property `require` allows optional requirement via\r\nthe `?` before or after the `^` operator. Add tests to ensure this\r\nfunctionality is not lost inadvertently.\r\n\r\nCloses #9391', '11', null, null, 'kentcdodds', '2014-10-02T16:30:43Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6043', '37', '9393', 'fix($anchorScroll): don\'t scroll to top when initializing and location h...', '...ash is empty\r\n\r\nCloses #8848', '6', null, null, 'IgorMinar', '2014-10-02T16:42:06Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6044', '37', '9395', 'chore(release): add script to unpublish a release', 'so you can easily redo it', '21', null, null, 'jeffbcross', '2014-10-02T17:49:59Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6045', '37', '9396', 'Pushed for CI: perf(ngBind): set textContent rather than using element.text()', '\"Speeds up chrome with ~10% firefox by ~5%\"\n\nWe don\'t really see this result in benchmarks\n(https://www.dropbox.com/s/76wxqbvduade52s/big_table_benchmark_b1ee5396_vs_d580a954.zip?dl=0) \nHowever, it\'s basically harmless.\n\nSide effects:\n\nUse strict equality check for `undefined` to replace with empty string. Most\ntarget browsers will output `undefined` rather than the empty string if we\ndon\'t do this. Previously, ngBindTemplate did not perform this check. However\nthe change has been made to make behaviour consistent across all target\nbrowsers (chrome does output the empty string).\n\nCloses #9369', '0', null, null, 'caitp', '2014-10-02T18:14:38Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6046', '37', '9398', 'refactor: use document.documentMode to determine msie version', '', '8', null, null, 'IgorMinar', '2014-10-02T19:23:03Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6047', '37', '94', 'Selector label', 'Writing e2e tests for our app, we\'ve noticed it\'s frequently unclear what element a selector is referring to, making the tests and the output hard to follow.\n\nAdding an optional label where selectors are used, we can provide a human-friendly representation of the element in question.\n\nIt would be useful to eventually let the runner try to figure out what the label should be (text of a link, value of a button...), then we would only need to manually set the label in rare occasions, but for now this solution works.', '1', null, null, 'aornelas', '2010-10-27T20:29:12Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6048', '37', '940', 'bug(html5 navigation): broken in Opera', 'http://my.opera.com/community/forums/topic.dml?id=1185462\r\n\r\nCloses# 938', '2', null, null, 'mhevery', '2012-05-07T18:52:31Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6049', '37', '9400', 'docs(ngBindHtml): Added important info to comment', 'Added comment. It doesn\'t say you need to include angular-sanitize.js otherwise ngSanitize will cause an error!', '6', null, null, 'tommyangelo', '2014-10-02T20:09:21Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6050', '37', '9402', 'fix($http): honor application/json response header and parse json primit...', '...ives\r\n\r\nWhen server responds with Content-Type header set to application/json we now properly parse the response as JSON\r\n\r\nCloses #2973', '2', null, null, 'IgorMinar', '2014-10-02T20:47:00Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6051', '37', '9403', 'fix(orderBy): sort by identity if no predicate is given', 'This implementation handles all the various corner cases more consistently.\r\n\r\nCloses #5847\r\nCloses #4579', '3', null, null, 'petebacondarwin', '2014-10-02T21:28:49Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6052', '37', '9406', 'fix($browser): dont use history api when only the hash changes', 'IE10/11 have the following problem: When changing the url hash\r\nvia `history.pushState()` and then reverting the hash via direct\r\nchanges to `location.href` (or via a link) does not fire a \r\n`hashchange` nor `popstate` event.\r\n\r\nThis commit changes the default behavior as follows:\r\nUses `location.href`/`location.replace` if the new url differs from\r\nthe previous url only in the hash fragment or the browser\r\ndoes not support history API.\r\nUse `history.pushState`/ `history.replaceState` otherwise.\r\n\r\nFixes #9143', '6', null, null, 'tbosch', '2014-10-03T00:56:12Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6053', '37', '9407', 'feat(ngRoute): allow cancelling $route updates via $routeChangeEvent', 'Previously, one could perform this feat by listening to both\n$locationChangeStart as well as $routeChangeStart, and being careful to\nupdate the route correctly. Now, it\'s possible to simply preventDefault()\non the\n$beforeRouteChange event in order to prevent location and route from being\nupdated.\n\nWhile this does not cancel $routeChangeStart, it does ensure that the\ncorrect location is restored, and provides the same information as\n$routeChangeStart.\n\nCloses #5855\nCloses #5714\nCloses #5581', '2', null, null, 'caitp', '2014-10-03T01:54:19Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6054', '37', '9409', 'docs(tutorial/3 - Filtering Repeaters): describe your change...', 'I had a little bit of struggle because i didn\'t see it. a simple sentence to overcome this is amply sufficient.', '8', null, null, 'SharpMax', '2014-10-03T09:59:12Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6055', '37', '9410', 'Fixes bug when $location.search() is not returning actual search part of current url.', 'The issue appears when we set $location.search() with some object and after that change this object\'s properties, like that:\r\n```javascript\r\nvar obj = {foo: \'bar\'};\r\n$location.search(obj); // now url is set to \'#?foo=bar\'\r\nobj.foo = \'boo\';\r\nvar currentUrlObj = $location.search();\r\n// current location is still \'#?foo=bar\' \r\n// while currentUrlObj is telling that current url object is {foo: \'boo\'}\r\n// which isn\'t correct\r\n```\r\nThere\'s a little demo onJSBin:\r\nhttp://jsbin.com/rekana/5/edit?js,output\r\nAnd another JSBin with behaviour fixed on consumer\'s side:\r\nhttp://jsbin.com/rekana/1/edit?js,output\r\nI\'m sure it\'s a bad idea to make someone think of that on the consumer\'s side.', '5', null, null, 'bullgare', '2014-10-03T10:28:15Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6056', '37', '9415', 'fix($compile): use the correct namespace for transcluded svg elements', 'This fixes the case when a directive that uses `templateUrl`\r\nis used somewhere in the children \r\nof a transcluding directive like `ng-repeat`.\r\n\r\nFixes #9344\r\nRelated to #8808', '2', null, null, 'tbosch', '2014-10-03T16:47:02Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6057', '37', '9416', 'docs(guide/Introduction): describe your change...', 'Changed the link of Guice to it\'s Github repository.', '4', null, null, 'agamrafaeli', '2014-10-03T18:47:06Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6058', '37', '9417', 'Update ngAria documentation', 'To aid developers using the `ngAria` module, this change includes updated wording and additional implementation details in the developer guide. I anticipate it will evolve as we identify ways to improve the module and add features to it. But this will hopefully help people looking to use it now.\r\n\r\ncc @btford ', '5', null, null, 'marcysutton', '2014-10-03T20:55:39Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6059', '37', '9419', 'fix(select): make ngOptions support selectAs and trackBy together', 'This commit implements a function, \"getSelected()\", that takes the\r\nselectAs expression into account when determining if a particular\r\noption is selected or not. Previously, the selectAs part of the\r\nngOptions comprehension expression was being ignored.\r\n\r\nFixes #6564', '36', null, null, 'jeffbcross', '2014-10-03T22:58:43Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6060', '37', '9420', 'docs(ngCsp): Universal Windows Apps added', 'It is necessary for this directive to be enabled when developing Universal Windows Apps written in JavaScript using Angular', '5', null, null, 'palermo4', '2014-10-03T23:00:49Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6061', '37', '9421', 'fix(select): manage select controller options correctly', 'Closes #9418', '11', null, null, 'shahata', '2014-10-03T23:15:54Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6062', '37', '9422', 'Backport of recent changes to `$location` to v1.2.x', '', '0', null, null, 'tbosch', '2014-10-04T00:16:57Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6063', '37', '9423', 'revert: fix($browser): dont use history api when only the hash changes', 'This reverts commit 0656484d3e709c5162570b0dd6473b0b6140e5b2 due to a\nfailing test in IE9.', '1', null, null, 'caitp', '2014-10-04T02:44:31Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6064', '37', '9424', 'fix($browser): dont use history api when only the hash changes', 'Prevent side effects in IE9', '2', null, null, 'tbosch', '2014-10-04T04:23:18Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6065', '37', '9428', 'Update to introduction.ngdoc verbiage', 'Changed \"you currently have to write\" to \"you would otherwise have to write\".\r\n\r\nSeems to make more sense this way since \"currently\" presupposes that someone new to Angular would be coming from a different paradigm, which they may or may not be.', '2', null, null, 'bijanbwb', '2014-10-04T21:23:08Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6066', '37', '9431', 'refactor($parse): separate tokenizing vs parsing more', 'Fixes `a.b` and `a .b` generating different getterFns (which was mentioned a while back in https://github.com/angular/angular.js/pull/8901#commitcomment-7691290)\r\nFixes #9893 (`{\'\': ...}` being converted to `{\"\'\'\": ...}`)\r\nFixes `{.: ...}` parsing as `{\'.\': ...}` instead of throwing\r\nFixes #9131 (similar to how #9229 fixes it)\r\n\r\nAlso simplifies (imo) a few areas in parse.js. For example...\r\n* tokens no longer have any `fn` (which had 2 meanings before)\r\n* token `text` is always the token text (previously it was the raw value for strings/numbers)\r\n* `.consume()` is used in a few more places instead of `.expect()` and will output a \"Unexpected end of expression\" instead of `.expect()` returning false and failing later\r\n* the tokenizer no longer tries to figure out if a \".identifier\" is a method invocation or not, that\'s now in the parser and much shorter', '20', null, null, 'jbedard', '2014-10-05T01:24:25Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6067', '37', '9435', 'docs(ngIf): updates formatting', 'Added formatting to the `ngIf`s in the Animations section.', '0', null, null, 'jesselpalmer', '2014-10-05T20:29:49Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6068', '37', '9438', 'Update angular-scenario.css', 'trytrytry', '5', null, null, 'Southward', '2014-10-06T08:35:37Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6069', '37', '9439', 'Remove non-existing bug fix from Changelog', 'This didn\'t make it into 1.2.26 because it got reverted (1850f59765e17d11bd95207dcc6939da0a2efd3f).', '2', null, null, 'tiff', '2014-10-06T09:47:00Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6070', '37', '944', 'fix for issue #933:ng-repeat does not work with primitive types', '- add one func in HashQueueMap\r\n- fix ngrepeat issues mentioned in #933\r\n- add tests', '7', null, null, 'zhenbzha', '2012-05-08T21:26:06Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6071', '37', '9445', 'Fixes bug when $location.search() is not returning search part of current url. Inluding tests.', 'The issue appears when we set $location.search() with some object and after that change this object\'s properties, like that:\r\n```javascript\r\nvar obj = {foo: \'bar\'};\r\n$location.search(obj); // now url is set to \'#?foo=bar\'\r\nobj.foo = \'boo\';\r\nvar currentUrlObj = $location.search();\r\n// current location is still \'#?foo=bar\' \r\n// while currentUrlObj is telling that current url object is {foo: \'boo\'}\r\n// which isn\'t correct\r\n```\r\nThere\'s a little demo onJSBin:\r\nhttp://jsbin.com/rekana/5/edit?js,output\r\nAnd another JSBin with behaviour fixed on consumer\'s side:\r\nhttp://jsbin.com/rekana/1/edit?js,output\r\nI\'m sure it\'s a bad idea to make someone think of that on the consumer\'s side.', '8', null, null, 'bullgare', '2014-10-06T14:26:00Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6072', '37', '9446', 'docs(versions): remove gruntUtils import from docs config', 'The dgeni config dependency on `gruntUtils` was removed in [this commit](https://github.com/angular/angular.js/commit/11c5bb7f3de13722a84c5503129097393056061e#diff-8ed4eab9f198d24f876871aa2ce43b5aL9).', '2', null, null, 'timkendrick', '2014-10-06T15:57:21Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6073', '37', '9448', 'docs($injector): $injector isn\'t a function', '', '0', null, null, 'thorn0', '2014-10-06T17:42:32Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6074', '37', '9451', 'docs(misc/FAQ): Grammatical Error Fixes', '', '1', null, null, 'erikrahm', '2014-10-06T20:03:25Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6075', '37', '9452', 'docs($injector): clean up docs for $injector#has', '', '2', null, null, 'thorn0', '2014-10-06T20:48:04Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6076', '37', '9453', 'docs(angular.injector): injectors aren\'t functions', '', '2', null, null, 'thorn0', '2014-10-06T22:15:15Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6077', '37', '9454', 'Httpbackend refactor', '', '1', null, null, 'IgorMinar', '2014-10-06T23:31:58Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6078', '37', '9455', 'fix($browser): Cache `location.href` only during page reload phase', 'Adds caching for url changes after a reload happens\r\n\r\nRemoves unnecessary caching from $browser, as IE-IE9 all allow to change `location.href` synchronously, i.e. after changing it (via property write or `location.replace) it can be read out immediately with the up to date value.\r\nThere was a wrong assumption in the previous version of this code\r\nintroduced by dca23173e25a32cb740245ca7f7b01a84805f43f and d70711481e6311c9cd283d650f07ca0cca72ecc2.\r\n\r\nAdds more tests for #6976\r\nFixes #9235', '2', null, null, 'tbosch', '2014-10-07T01:06:40Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6079', '37', '9456', 'docs($rootScope): code example for $watch function using objectEquality', 'This PR improves the code example section of https://docs.angularjs.org/api/ng/type/$rootScope.Scope#$watch by providing an example of `scope.$watch` with `objectEquality` to illustrate how `scope.$watch` will not work simply as a reference watcher on object properties. \r\n\r\nNote: first time contributor, CLA may be pending.', '3', null, null, 'ajwhite', '2014-10-07T01:45:44Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6080', '37', '9458', 'fix($animate): ensure that class-based animations only consider the most recent DOM operations', 'Prior to this fix $animate would maintain a count of each time a class was\r\nadded and removed within $animate. With this fix, $animate instead only cares\r\nabout the most recent addClass or removeClass operation and will only perform\r\nthat operation (depending on what was last called).\r\n\r\n```\r\n// before\r\naddClass => +1\r\nremoveClass => 0\r\naddClass => +1\r\naddClass => +2\r\nremoveClass => +1\r\n// this will cause an addClass animation\r\n\r\n// now\r\naddClass => add\r\nremoveClass => remove\r\naddClass => add\r\naddClass => add\r\nremoveClass => remove\r\n// this will cause a rmeoveClass animation\r\n```\r\n\r\nCloses #8946', '18', null, null, 'matsko', '2014-10-07T08:31:28Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6081', '37', '9461', 'Anchor scroll offset', '', '8', null, null, 'petebacondarwin', '2014-10-07T12:34:48Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6082', '37', '9466', 'fix(select): respect tracking expression when shallow watching arrays of objects in ngOptions', 'Attempts to resolve #9464 by using the tracking expression when shallow watching the elements of the array passed in to ngOptions.', '2', null, null, 'drjokepu', '2014-10-07T15:48:33Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6083', '37', '9467', 'fix(select): respect tracking expression when shallow watching arrays of...', '... objects in ngOptions\r\n\r\nngOptions does not use the tracking expression when shallow watching array elements passed in to ngOptions. This is a problem if the elements passed in to ngOptions are generated on the fly and while the array elements identical in value, they are different instances; this leads to infinite digest loops. This change attempts to rectify the situation by shallow watching an array of trackFn(values) rather than the array of values themselves.\r\n\r\nCloses #9464', '2', null, null, 'drjokepu', '2014-10-07T16:07:20Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6084', '37', '9468', 'docs($compileProvider): Add a link to the in-depth Directive reference', 'Given that this critical reference is now named $compile, it is difficult to find via search. A link to it from the directiveFactory param description will likely prove helpful.', '2', null, null, 'stonebraker', '2014-10-07T16:46:44Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6085', '37', '9469', 'docs($injector): describe your change...', 'fix syntax error (missing parenthesis) in $injector test example', '1', null, null, 'benharold', '2014-10-07T17:03:49Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6086', '37', '9470', 'Fix/browser 1.2', '', '2', null, null, 'tbosch', '2014-10-07T17:06:32Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6087', '37', '9472', 'refactor($location): remove special case for adding a `#` at end of url', 'Previously, `LocationHashbangInHtml5Url` always added a trailing `#`\r\nto the absolute url that was given to `$browser.url` to prevent page reloads\r\nwhen the hash fragment was empty.\r\n\r\nThis refactoring adds a general mechanism in `$browser` to ignore\r\na trailing `#` during read and add a trailing `#` when the hash fragment\r\nis removed.', '0', null, null, 'tbosch', '2014-10-07T18:21:25Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6088', '37', '9474', 'fix(jqLite): fix add/remove class in IE9', 'IE is not my favorite web browser.\r\n\r\nthis is my take on #5694 ', '13', null, null, 'btford', '2014-10-07T21:15:27Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6089', '37', '9475', 'docs(ngAria): correct wording and add resource', '', '1', null, null, 'cironunes', '2014-10-07T21:34:28Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6090', '37', '9476', 'feat($location): add support for History API state handling', 'Adds $location state method allowing to get/set a History API state via\r\npushState & replaceState methods.\r\n\r\nNote that:\r\n- Angular treats states undefined and null as the same; trying to change\r\none to the other without touching the URL won\'t do anything. This is necessary\r\nto prevent infinite digest loops when setting the URL to itself in IE<10 in\r\nthe HTML5 hash fallback mode.\r\n- The state() method is not compatible with browsers not supporting\r\nthe HTML5 History API, e.g. IE 9 or Android < 4.0.\r\n\r\nCloses #9027', '0', null, null, 'IgorMinar', '2014-10-07T21:54:01Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6091', '37', '9477', 'docs($compile): Added: template is ignored with transclude: \'element\'', '', '4', null, null, 'Izhaki', '2014-10-07T22:34:55Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6092', '37', '9478', 'Remove more bits and pieces of Internet Explorer 8 support', 'Some of these are just comments that were explaining code removed in e843ae7a4cfb746760e1d8c3578d9ec613c3e2ee. The most relevant (functional) change is the one to ngSanitize.\r\n\r\nI\'ve also removed adjusted some comments referring to IE8 and IE9 to only mention IE9.', '7', null, null, 'realityking', '2014-10-07T22:56:13Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6093', '37', '948', 'fix issue #782,#875', ' - $resource should handle multiple params with same name\n - ignore slashes of undefined parameters\n - fix default parameters issue, mentioned in #875 \n\nThanks for your contribution! In order for us to be able to accept it, we ask you to sign our CLA (contributor\'s license agreement).\n\nCLA is important for us to be able to avoid legal troubles down the road.\n\nFor individuals (a simple click-through form):\nhttp://code.google.com/legal/individual-cla-v1.0.html\n\nFor corporations (print, sign and scan+email, fax or mail):\nhttp://code.google.com/legal/corporate-cla-v1.0.html', '2', null, null, 'petrovalex', '2012-05-09T23:45:51Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6094', '37', '9480', 'docs(ngIf): updates out-of-date url', 'The original page has moved, so the url has been updated to point towards the correct location.', '1', null, null, 'jesselpalmer', '2014-10-08T00:30:33Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6095', '37', '9481', 'fix(browserTrigger): declare msie variable', 'The variable `msie` was used in strict mode without declaring it first,\r\ncausing both jshint and the module tests to fail. This change fixes the\r\nproblem.', '8', null, null, 'ksheedlo', '2014-10-08T00:37:25Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6096', '37', '9482', 'refactor($location) Remove unused variables', 'These were left around in 736c8fbbae57a209f4ba570e38cc3bd0745a9569', '3', null, null, 'realityking', '2014-10-08T00:42:44Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6097', '37', '9483', 'chore() Remove more pieces of Opera < 15 support and document it', 'The test for the sniffer was already removed in 8202c4dcea6dca46471eb33c732d436be3c0cc7a', '4', null, null, 'realityking', '2014-10-08T00:51:42Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6098', '37', '9484', 'chore(ngScenario): make jshint happy', 'Someone accidentally removed an important keyword which prevented a variable\nfrom being added to the global object', '0', null, null, 'caitp', '2014-10-08T02:54:37Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6099', '37', '9487', 'feat($location): allow automatic rewriting of links to be disabled', 'Currently, when the location provider is set to html5 mode, all links\r\non the page are hijacked and automatically rewritten. While this may be\r\ndesirable behavior in some cases (such as using ngRoute), not all cases\r\nwhere html5 mode are enabled imply the desire for this behavior.\r\n\r\nOne example would be an application using the\r\n[ui-router](https://github.com/angular-ui/ui-router) library, with some\r\npages that exist outside of angular. Links that are meant to go through\r\nthe router use the `ui-sref` directive, so the rewrite behavior is\r\nunnecessary.\r\n\r\nCloses #5487', '15', null, null, 'IgorMinar', '2014-10-08T04:57:17Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6100', '37', '9488', 'feat($scope): propose and implement $when method', 'I have noticed that following pattern occurs in many of my AngularJS controllers\r\nwhen I need to do initialization based on an asynchronously loaded resource:\r\n```\r\nif ($scope.someCondition == true) {\r\n doSomething();\r\n} else {\r\n var unwatch = $scope.$watch(\'someCondition == true\', function(newValue) {\r\n if (newValue) {\r\n doSomething();\r\n unwatch();\r\n }\r\n });\r\n}\r\n```\r\nI propose adding a $when() method to $scope to simplify handing of such cases:\r\n```\r\n$scope.$when(\'someCondition == true\', doSomething);\r\n```\r\nThis commit provides an initial implementation of the $when() method.', '11', null, null, 'coditect', '2014-10-08T05:09:28Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6101', '37', '9489', 'refactor($parse): remove dead code', 'These operators appear to have never actually been supported. This will have one minor side effect where parsing expressions containing `^` and `&` operators will now throw from the lexer ($parse/lexerr) instead of parser ($parse/syntax).', '4', null, null, 'jbedard', '2014-10-08T07:05:53Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6102', '37', '949', 'Leak', '', '0', null, null, 'mhevery', '2012-05-10T05:42:45Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6103', '37', '9491', 'fix($animate): permit class-based animations for leave operations if ngAnimateChildren is enabled', 'Prior to this fix, $animate.leave placed a disabled animation on the element\r\nwhich prevented ngAnimateChildren from properly working. This patch now\r\naddresses that issue.\r\n\r\nCloses #8092', '0', null, null, 'matsko', '2014-10-08T09:38:53Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6104', '37', '9493', 'Fix issues with ngShow / ngHide animations', 'fix($animate): ensure hidden elements with ngShow/ngHide stay hidden during animations\r\n\r\nPrior to this fix if an element that contained ng-show or ng-hide was in its hidden state\r\nthen any other animation run on the same element would cause the animation to appear despite\r\nthe element itself already being hidden. This patch ensures that NO animations are visible\r\neven if the element is set as hidden.\r\n\r\nCloses #9103\r\n', '2', null, null, 'matsko', '2014-10-08T11:27:16Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6105', '37', '9494', 'added ng-unless directive', 'This adds the ng-unless directive which is a complement of ng-if. \r\n', '11', null, null, 'az7arul', '2014-10-08T11:28:57Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6106', '37', '9496', 'chore($sniffer): Remove remnants of separate documentMode handling', 'Since msie is now set to document.documentMode, it\'s not necessary to keep\r\nthe documentMode in a separate property.', '5', null, null, 'mzgol', '2014-10-08T15:09:27Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6107', '37', '9497', 'chore($sniffer): Remove $sniffer.hashchange', 'The hashchange event is not supported only in ancient browsers like Android<2.2\r\nand IE<8. Angular never really supported IE7 and in 1.3 where support for IE8\r\nis dropped it makes even less sense to check for hashchange support.', '14', null, null, 'mzgol', '2014-10-08T15:38:05Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6108', '37', '9498', 'docs(guide/Expressions): replace some curly quotes with straight quotes', '', '0', null, null, 'gkalpak', '2014-10-08T16:44:27Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6109', '37', '9499', 'fix(select): remove unknown option when value is set to correct one', 'When selected option goes from unknown to the last in list, not by `change` event, unknown option is also removed and correct option is selected.\r\n\r\nCloses #9490', '4', null, null, 'Rangoo94', '2014-10-08T18:00:09Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6110', '37', '95', 'Scenario runner timeout', 'Fix setTimeout bug.', '0', null, null, 'esprehn', '2010-10-27T20:50:42Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6111', '37', '9502', 'feat($route): ability to cancel $routeChangeStart event', 'Calling `preventDefault()` on a `$routeChangeStart` event will\r\nprevent the route change and also call `preventDefault` on the `$locationChangeStart` event, which prevents the location change as well.\r\n\r\nBREAKING CHANGE:\r\n\r\nOrder of events has changed.\r\nPreviously: `$locationChangeStart` -> `$locationChangeSuccess` \r\n -> `$routeChangeStart` -> `$routeChangeSuccess`\r\n\r\nNow: `$locationChangeStart` -> `$routeChangeStart` \r\n -> `$locationChangeSuccess` -> -> `$routeChangeSuccess`\r\n\r\nFixes #5581\r\nCloses #5714', '7', null, null, 'tbosch', '2014-10-08T22:06:27Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6112', '37', '9503', 'docs(select): fix formatting of and placement of selectAs/trackAs explanation', 'The select element was being rendered as an html element, and the whole note was being grouped in the table displaying the comprehension expression information.', '2', null, null, 'jeffbcross', '2014-10-08T22:33:00Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6113', '37', '9504', 'feat($parse): handle Infinity', 'Closes #9492', '7', null, null, 'btford', '2014-10-08T23:02:37Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6114', '37', '9510', 'fix(jqLite): make class API work consistently for IE9', 'IE9 has issues with setAttribute() and getAttribute() when an element uses XML\nnamespaces.\n\nThis should make the behaviour on IE9 consistent with a minimal perf hit, and\nmake it easy to remove support when IE9 is no longer supported.\n\nFixes #5001', '0', null, null, 'caitp', '2014-10-09T10:25:56Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6115', '37', '9512', 'fix($injector): ensure $get method invoked with provider context', '0d3b69a5f27b41745b504c7ffd8d72653bac1f85 broke this by calling $get with an\nundefined context, which in strict mode would be undefined. This fixes this by\nensuring that the provider is used as the context, as it was originally.\n\nCloses #9511', '0', null, null, 'caitp', '2014-10-09T11:51:33Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6116', '37', '9513', 'Wtf instrumentation', '', '5', null, null, 'shufrich', '2014-10-09T12:41:04Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6117', '37', '9517', 'Anchor scroll offset', '', '31', null, null, 'petebacondarwin', '2014-10-09T13:52:51Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6118', '37', '9519', 'docs(migration): Removed link to nonexisting reference', 'Removed a link to a reference that is absent', '0', null, null, 'lgalfaso', '2014-10-09T14:38:01Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6119', '37', '9520', 'Minor fixes in $location', 'Fixes the description of `rewriteLinks` and removes two redundant spaces.\r\n\r\nRelated to #9487.', '1', null, null, 'gkalpak', '2014-10-09T15:06:27Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6120', '37', '9521', 'docs(angular.injector): correct return type', '', '1', null, null, 'thorn0', '2014-10-09T15:28:14Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6121', '37', '9522', 'docs($compile): add templateNamespace to directive example', '', '0', null, null, 'heyjustin', '2014-10-09T16:11:09Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6122', '37', '9525', 'refactor($compile): use createMap() rather than Object.create(null)', 'I didn\'t know we had a helper for this previously, but I guess we do :>', '2', null, null, 'caitp', '2014-10-09T16:46:03Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6123', '37', '9528', 'fix($http): don\'t run transformData on HEAD methods', '7b6c1d0 indadvertantly created this issue by using Content-Type to\r\ndetermine when to run fromJson. Because HEAD methods do not contain\r\na body but are supposed to return the Content-Type header that would\r\nhave been returned if it was a GET this created a bug in HEAD requests.', '7', null, null, 'brocksamson', '2014-10-09T19:06:21Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6124', '37', '9529', 'fix($http): don\'t run transformData on HEAD methods', '7b6c1d0 created this issue by using `Content-Type` to\r\ndetermine when to run `fromJson`. Because `HEAD` methods do not contain\r\na body but are supposed to return the `Content-Type` header that would\r\nhave been returned if it was a `GET` this functionality fails.\r\n\r\nCloses #9528 ', '3', null, null, 'tbosch', '2014-10-09T19:20:48Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6125', '37', '953', 'fix($location): support urls with any protocol', 'The url used for location parsing was quite strict and did not support\ncustom url schemes like \"chrome-extension://\". With this change the only\nrequirement for scheme is that it doesn\'t contain \":\" character.', '0', null, null, 'IgorMinar', '2012-05-12T06:58:16Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6126', '37', '9530', 'Cleanup switch statement, curlies unnecessary', '', '4', null, null, 'oefirouz', '2014-10-09T21:07:42Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6127', '37', '9533', 'fix(select): add basic track by and select as support', 'Instead of throwing an error when using \"track by\" and \"select as\" expressions,\r\nngOptions will assume that the track by expression is valid, and will use it to\r\ncompare values.', '14', null, null, 'jeffbcross', '2014-10-09T23:51:26Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6128', '37', '9534', 'fix(filter): format timezone correctly', 'This fixes timezone formatting in case UTC timezone is used\r\n\r\nCloses #9359', '8', null, null, 'shahata', '2014-10-10T00:19:12Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6129', '37', '954', 'fix($browser/$location): single quote in url causes infinite digest in F...', '...F\n\nThe real issue is in FF, see https://bugzilla.mozilla.org/show_bug.cgi?id=407172.\n\nFF overly encodes stuff which breaks our expectations and then we fail .url() != currentUrl.absUrl()\ncomparison unexpectidly, which leads to infinite digest.\n\nThe workaround is to correct for this inconsistency in $browser and decode any single quotes in urls.\n\nCloses #920', '0', null, null, 'IgorMinar', '2012-05-14T04:54:08Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6130', '37', '9540', 'fix(jqLite): remove native listener when all jqLite listeners were deregistered', '...istered\r\n\r\nThis fixes an iOS issue where some events buble only when native listeners are present (see #9509),\r\nbut more importantly previously we would pass wrong argument into the `removeEventListenerFn` which\r\ncaused native listeners to be never deregistered. Oops!\r\n\r\nCloses #9509', '2', null, null, 'IgorMinar', '2014-10-10T05:01:58Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6131', '37', '9541', 'test($route): fix typo in test description', '\r\nRelated to #9502', '0', null, null, 'gkalpak', '2014-10-10T05:03:02Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6132', '37', '9542', 'chore(CHANGELOG): remove duplicate breaking change for 1.3.0-rc.5', 'The same breaking change is repeated just a few lines above.', '1', null, null, 'gkalpak', '2014-10-10T05:18:16Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6133', '37', '9543', 'docs(angular.extend): describe your change...', 'Merge sentences', '2', null, null, 'ddoronin', '2014-10-10T05:50:02Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6134', '37', '9544', 'docs(guide/Working With CSS): add doc for ng-isolate-scope', '', '0', null, null, 'heyjustin', '2014-10-10T06:01:05Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6135', '37', '9550', 'chore(CHANGELOG): add an extra new line after each item in the \"Breaking Changes\" list', 'This ensures that the next item will appear on a new line and be properly\r\nparsed as new list item (and not as the continuation of the current item),\r\neven if the current item does not end with a newline character.\r\nCurrently, it would result is something like this:\r\n\r\n - **item 1**: due to ...\r\n blah1 blah1 blah1- **item 2**: due to...\r\n blah2 blah2 blah2\r\n\r\ninstead of the intended:\r\n\r\n - **item 1**: due to ...\r\n ...\r\n - **item 2**: due to ...\r\n ...\r\n\r\n--\r\nFor example, this was the case with the 1.3.0-rc.5 [CHANGELOG][1] (see the last `ngAnimate` breaking change).\r\n\r\n[1]: https://github.com/angular/angular.js/blob/v1.3.0-rc.5/CHANGELOG.md#user-content-breaking-changes', '7', null, null, 'gkalpak', '2014-10-10T13:08:28Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6136', '37', '9551', 'docs(tutorial/Tutorial): make it explicit to run npm install from folder with package.json', 'I was following instructions and running \'npm install\' from default location and getting very different error. Later found on \'stackoverflow\' that command must be run from folder that contains package.json\' file. Though it my save some time to novice users', '4', null, null, 'sersor', '2014-10-10T13:35:24Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6137', '37', '9555', 'fix($http): don\'t run transformData on HEAD methods', '7b6c1d0 indadvertantly created this issue by using Content-Type to\r\ndetermine when to run fromJson. Because HEAD methods do not contain\r\na body but are supposed to return the Content-Type header that would\r\nhave been returned if it was a GET this created a bug in HEAD requests.', '4', null, null, 'brocksamson', '2014-10-10T15:50:49Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6138', '37', '9556', 'docs(guide/Working With CSS): add doc for ng-isolate-scope', '', '0', null, null, 'heyjustin', '2014-10-10T16:26:31Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6139', '37', '9557', 'WIP: add E2E test suite unrelated to docs examples', 'This is ongoing, bear with me while I hack on this :<', '20', null, null, 'caitp', '2014-10-10T16:31:47Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6140', '37', '9558', 'docs(guide/Working With CSS): add doc for ng-isolate-scope', '', '1', null, null, 'heyjustin', '2014-10-10T16:53:51Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6141', '37', '956', 'fix($sniffer): report history false on Android < 4', 'Android has history.pushState, but it does not update the location correctly:\nhttp://code.google.com/p/android/issues/detail?id=17471\n\nCloses #904', '0', null, null, 'vojtajina', '2012-05-14T22:11:33Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6142', '37', '9560', 'Err on the side of not sorting rather than sorting', 'When orderBy is passed an array of objects, and no predicate is specified, the orderBy function will reverse the order of the array. This is not ideal. By default, it should err on the side of not sorting rather than sorting when no predicate is given, and neither v1 < v2 nor v1 > v2 is true.', '7', null, null, 'lukasolson', '2014-10-10T17:43:59Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6143', '37', '9562', 'fix($http): allow empty json response', 'When a response contains an `application/json` header and\r\nthe response is empty the response should be left as is.\r\n\r\nFixes #9532', '3', null, null, 'tbosch', '2014-10-10T19:10:39Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6144', '37', '9563', 'docs($httpBackend): add module declaration for best understanding purposes', 'According with the Issue #9537. This module declaration in the test is very important. When I started to test in angular I copy and paste this code to see how it works, and I get this `module undefined error`, and just after read some blog posts I figure out that this line is essential for testing your module. So, for best understanding of begginers this can be very helpful.', '1', null, null, 'lnmunhoz', '2014-10-10T19:40:52Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6145', '37', '9566', 'orderBy should not reverse an array of objects', 'When no predicate is provided, orderBy will reverse an array of objects.\r\nThis isn\'t ideal. It should err on the side of preserving the order.\r\n\r\nIt happens because, for objects, in the compare() function, v1 < v2 is\r\nfalse, so the comparator function returns 1 (effectively moving v2\r\nbefore v1).', '13', null, null, 'lukasolson', '2014-10-10T21:07:53Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6146', '37', '9567', 'V1.2.x', 'input[checkbox] documentation correction', '1', null, null, 'attila226', '2014-10-10T22:23:42Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6147', '37', '9568', 'fix(parse): dirty checking support for objects with null prototype', 'With this changes, objects initially created with Object.create(null) can be bind to the view. This is because if the valueOf function is not available, it will use Object.valueOf.apply instead', '23', null, null, 'HeberLZ', '2014-10-10T23:11:29Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6148', '37', '9569', 'refactor($animate): use $animate.$$setClassImmediately to save code', '', '31', null, null, 'matsko', '2014-10-11T00:44:55Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6149', '37', '957', 'Misko leak', '', '0', null, null, 'vojtajina', '2012-05-15T01:38:36Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6150', '37', '9570', 'docs(guide/HTML Compiler): correct statement', 'incorrect statement into ``` then `innerHTML` ed into\r\nan element.``` under ```Understanding View``` topic \r\nI correct this statement to ``` then `innerHTML` used into\r\nan element.```', '3', null, null, 'ahmed-hamdy90', '2014-10-11T01:05:21Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6151', '37', '9571', 'chore(npm): update npm dependencies', 'chore(npm): update npm dependencies\r\n\r\nSome of previous dependencies versions (e.g. Karma) didn\'t work with\r\nNode 0.11.14, see:\r\nhttps://github.com/karma-runner/karma/pull/1182\r\n\r\nThe only dependencies not updated in this commit are:\r\n\r\n1. grunt-jscs-checker: its\r\nrules have changed a lot so it will require more work to use the newer\r\nversion\r\n2. gulp-jshint: the update breaks docs linting, it requires investigation', '2', null, null, 'mzgol', '2014-10-11T20:11:46Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6152', '37', '9572', 'Use whitespace to improve readability', '', '5', null, null, 'LegalizeAdulthood', '2014-10-11T22:19:52Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6153', '37', '9574', 'fix($parse): stabilize one-time literal expressions correctly', 'Change `oneTimeLiteralWatchDelegate` (introduced in c024f28) so that it implements the stabilization algorithm described in the expression docs, like `oneTimeWatchDelegate` does.\r\n\r\nAt the end of the digest, the delegate must look at the *last* value seen by the expression. Otherwise the expression becomes stable even when the array/object members go back to `undefined` during the digest.', '3', null, null, 'teropa', '2014-10-12T10:37:21Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6154', '37', '9577', 'chore($$raf) Remove support for moz prefixed requestAnimationFrame', 'According to [can I use](http://caniuse.com/#feat=requestanimationframe) this would drop support for the following browsers:\r\n* Firefox 22\r\n* Chrome 23\r\n* Safari 6\r\n* iOS 6.1\r\n\r\nNote, they don\'t have data on Blackberry 10.1 (where it\'s prefixed) and 10.2 (where it\'s unprefixed).\r\n\r\nThis is also the same level of support as provided by [jQuery](https://github.com/jquery/jquery/blob/10399ddcf8a239acc27bdec9231b996b178224d3/src/effects.js#L649).', '9', null, null, 'realityking', '2014-10-12T14:03:48Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6155', '37', '9579', 'fix($compile): do not bind twice transclude functions', 'Do not double bind transclude functions that are passed to the compiler that were already bound\r\n\r\nCloses #9413', '22', null, null, 'lgalfaso', '2014-10-12T18:56:27Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6156', '37', '958', 'fix(jqLite): have same expando format as jQuery', '', '1', null, null, 'mhevery', '2012-05-15T17:03:17Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6157', '37', '9580', 'docs(directive): Adding documentation and example of using a templateUrl function to the directive developer guide.', 'Adding documentation and example of using a templateUrl function to the directive developer guide.\r\n\r\nRelated to angular/angular.js#2895', '6', null, null, 'spaceribs', '2014-10-12T22:37:19Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6158', '37', '9583', 'test($anchorScroll): add e2e tests', 'Related to #9535.', '4', null, null, 'gkalpak', '2014-10-13T09:38:02Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6159', '37', '9585', 'refactor(ngAnimate): remove unused function argument', 'This argument is not used inside the function.', '0', null, null, 'pomerantsev', '2014-10-13T11:03:25Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6160', '37', '9587', 'fix($browser): account for IE deserializing history.state on each read', 'fix($browser): account for IE deserializing history.state on each read\r\n\r\nIE 10-11+ deserialize history.state on every read, causing simple comparisons\r\nagainst history.state always return false. Account for that caching\r\n`history.state` on every hashchange or popstate event.\r\n\r\nAlso:\r\n1. Prevent firing onUrlChange callbacks twice if both popstate and hashchange\r\nevent were fired.\r\n2. Fix the issue of routes sometimes not firing the URL change in all browsers.\r\n\r\nCloses #9587\r\nFixes #9545', '2', null, null, 'mzgol', '2014-10-13T11:31:11Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6161', '37', '9589', 'docs(ngClass): Documents class names with hyphens', 'Added a sentence that shows how to add class names that contains hyphens.', '4', null, null, 'AdrianJMartin', '2014-10-13T12:43:07Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6162', '37', '9590', 'docs($compile): Tiny grammer correction', '', '5', null, null, 'alirezamirian', '2014-10-13T12:47:03Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6163', '37', '9591', 'docs(limitTo): fixed incorrect field type', 'There is no such thing as [type=integer] only number', '0', null, null, 'jimmywarting', '2014-10-13T13:51:41Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6164', '37', '9593', 'test(currencyFilter): fix disambiguous locator warning in e2e tests', 'The e2e tests for the `currencyFilter` issued the following warnings:\r\n> warning: more than one element found for locator by.binding(\"amount | currency:\"USD$\"\")\r\n\r\nThis commit removes the warnings by locating the elements by ID and not by binding.', '1', null, null, 'gkalpak', '2014-10-13T14:33:00Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6165', '37', '9594', 'chore(jqLite): remove leftover attachEvent/detachEvent from tests', '', '0', null, null, 'mzgol', '2014-10-13T14:44:39Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6166', '37', '9596', 'feat($anchorScroll): allow scrolling to a specified element', 'Add an optional argument to `$anchorScroll()` to enable scrolling to an anchor element different than that related to the current value of `$location.hash()`. If the argument is omitted, the value of `$location.hash()` will be used instead.\r\n\r\nCloses #4568', '10', null, null, 'gkalpak', '2014-10-13T16:22:15Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6167', '37', '9597', 'refactor($browser): more test coverage around history.state manipulation', 'Check that pushState is not invoked if $browser.url() and $browser.state()\r\nis passed to $browser.url setter.\r\n\r\nAlso, a minor refactor in $browser.url code and $browser specs.\r\n\r\nRefs #9587', '3', null, null, 'mzgol', '2014-10-13T17:04:59Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6168', '37', '9599', 'docs(ngIf): fixes font color change', 'The single quote causes the color of the font to change in the example, so I changed the text in the example to account for this.', '1', null, null, 'jesselpalmer', '2014-10-13T19:01:05Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6169', '37', '96', 'Rename foreach() to forEach()', 'Issue #85\r\n\r\nThere was a problem with extending angular (see: src/AngularPublic.js:38, test/testabilityPatch.js:82), because extend method uses forEach() internally...\r\nIf iterated object has method forEach (like Array does), it uses this method, so we can\'t extend angular with \'forEach\' property. This was not causing problems, as JS is case sensitive, so foreach != forEach. I solved this by setting forEach property separately without using extend.\r\nAnother solution could be to change extend method to not use forEach, as I hope that for (var k in obj) should be enough...', '3', null, null, 'vojtajina', '2010-10-27T22:53:12Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6170', '37', '9600', 'fix(testability): findBindings should escape binding expressions before ...', '...performing regexp\r\n\r\nMove the function to escape regexps to Angular.js, fix the link, and use it in\r\nthe $$testability service.\r\n\r\nSee #9595', '5', null, null, 'juliemr', '2014-10-13T19:37:57Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6171', '37', '9601', 'docs(tutorial/4 - Two-way Data Binding): describe your change...', 'for version v1.2.26. not sure about 1.3.0', '3', null, null, 'williamliangdev', '2014-10-13T21:31:54Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6172', '37', '9604', 'docs(ngModel): fix anchor text', '', '3', null, null, 'cironunes', '2014-10-14T02:46:55Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6173', '37', '9605', 'fix($compile): do not rebind parent bound transclude functions', 'Do not rebind parent bound transclude functions passed to the\r\nlink function returned from `$compile`. Change parameter\r\norder of ```publicLinkFn``` to allow parent bound transclude\r\nfunctions to be passed (do not make public yet).\r\n\r\nThe current `$compile` public API documentation indicates that\r\na transclude function may be passed as a second parameter, but\r\nit is not clear that this is not the same function that is given\r\nto directive link functions as the `transcludeFn` parameter. This\r\nparameter must be passed in order to implement, for example,\r\nlazy compilation.\r\n\r\nIn order to pass the `transcludeFn` parameter given to\r\na directive\'s link function, it must be passed to the\r\nresult of a call to `$compile` (i.e. `publicLinkFn`). Doing so,\r\nhowever, would cause two bugs. First, the passed transclude\r\nfunction would get rebound, improperly changing its scope\r\nfrom its original binding. Second, the `containingScope` would\r\nnot be updated and the wrong `$parent` would be assigned to\r\nthe `transcludedScope` resulting in a memory leak. This patch\r\nfixes both of these issues.\r\n\r\nThis patch does not expose a new public API for `publicLinkFn`,\r\nrather, it leaves this to a later change that better considers\r\nhow that public API should look.\r\n\r\nThanks to @lgalfaso, @tbosch, and @petebacondarwin.\r\n\r\nRelated to #9413', '50', null, null, 'dlongley', '2014-10-14T03:41:03Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6174', '37', '9606', 'docs(tutorial/3 - Filtering Repeaters): correction to e2e test', 'Line 174, you need to declare the variable query for the test to work.', '3', null, null, 'ghost', '2014-10-14T03:55:44Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6175', '37', '9608', 'Update CONTRIBUTING.md', 'docs: correction\r\n\r\nThere is no prototypical inheritance, the correct word is \'prototypal\'.', '4', null, null, 'afshinator', '2014-10-14T07:50:53Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6176', '37', '9610', 'chore(changelog): fix name of jqLiteDocumentLoaded function', 'The newly added private `jqLiteDocumentLoaded` function is referred to as `jqDocumentComplete` (due to a wrong commit message).', '0', null, null, 'gkalpak', '2014-10-14T08:07:14Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6177', '37', '9615', 'Fixing the &lt; and &gt; in the benchmarks/README.md page', '', '3', null, null, 'websiddu', '2014-10-14T17:28:12Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6178', '37', '9616', 'chore(jscs): update jscs and update deprecated rules', 'Updated grunt-jscs and deprecated rules:\r\nrequireLeftStickedOperators and requireRightStickedOperators.\r\n\r\nFixes #9429', '5', null, null, 'hzoo', '2014-10-14T17:51:00Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6179', '37', '9617', 'docs(select): add more notes about ngRepeat and clean up style', 'I added a note to make more clear when to use ngRepeat or ngOptions.\r\n\r\nI also organized the text in the ngOptions section to flow better and use less alert divs', '4', null, null, 'jeffbcross', '2014-10-14T18:12:55Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6180', '37', '9619', 'fix($templateRequest): ignore JSON Content-Type header and content', 'Normally, if there is a Content-Type header with the string\n\"application/json\", or else the content looks sort of JSON-y, $http will\nattempt to deserialize the JSON into an object. $templateRequest is intended\nto request markup, and as such should never attempt to parse JSON, regardless\nof the headers or shape of the content.\n\n/CC @IgorMinar should be quick to review\n\nCloses #5756', '10', null, null, 'caitp', '2014-10-14T18:54:50Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6181', '37', '962', 'ngShow / ngHide directive should use display: \'inherit\' instead of display: \'\'', 'Suppose you have an unordered list that is to be populated by a web service following a user request.\n\n```html\n<ul>\n <li ng-repeat=\"item in items\">\n {{item.property}} etc...\n </li>\n</ul>\n```\n\nWe only want to display this HTML if there is something to see, so we add ```ng-show=\"items.length > 0\"``` to the ```<ul>``` tag.\n\nThis won\'t get processed by <angular /> until it is fully bootstrapped, so the user will see ```{{item.property}} etc...``` briefly on the page and then disappear once <angular /> is fully loaded.\n\nThe user shouldn\'t see any of this until we have items to display, so ideally we\'d do something like:\n\n```css\n.initially-hidden\n{\n display: none;\n}\n```\n\n... and set ```class=\"initially-hidden\"``` on our ```<ul>``` element (or something to that extent).\n\nThis won\'t work, however, because ngShow/ngHide currently set ```display = \'\'``` for visibility which (at least in Chrome) causes the ```.initially-hidden``` class to take over and leave the element invisible even after ```items.length > 0```.\n\nThe current workaround is to set ```style=\"display: none;\"``` on the ```<ul>``` element, which isn\'t ideal because inline styles are \"evil-ish\" depending on who you ask.\n\nSetting ```display = \'inherit\'``` for the visible case instead allows a css class to be used to initially hide the element without affecting its future visibility.\n\nSimplified jsfiddle example of the problem below. Just pretend ```ng-show=\"true\"``` is actually ```ng-show=\"resultOfSomeWebserviceCall.length > 0\"``` and ```Hello, world!``` is something you really don\'t want the user to see until that call is done.\n\nhttp://jsfiddle.net/EXcmY/', '3', null, null, 'michaelmoussa', '2012-05-16T16:37:16Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6182', '37', '9620', 'docs: update and improve docs for input, ngModelController, and guide/forms', 'In this PR:\r\n\r\n- make it more clear that you should use $validators for custom validation (updated example in guide etc)\r\n- adds explicit information what certain inputs require (Date object for input[date] etc)\r\n- update outdated information (css class list, parse errors)\r\n- explain how to override built-in validators (for ye olde Email regex discussion)\r\n\r\nFeeback welcome, I probably have introduced typos and odd wordings.', '33', null, null, 'Narretz', '2014-10-14T18:55:06Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6183', '37', '9622', 'feat(ngRepeat): expose the iterating properties over the alias', 'Expose the properties `$index`, `$first`, `$middle`, `$last`, `$odd` and `$even` as part of the alias\r\n\r\nCloses #9582', '21', null, null, 'lgalfaso', '2014-10-14T19:16:45Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6184', '37', '9623', 'fix(inputs): improve \"input\" event emulation for legacy browsers', 'Hello,\r\n\r\nIn IE versions that use the keydown handler to check for changes to an input, there is a bug when pressing the tab key that will update the input after the change and blur events.\r\n\r\nThis PR fixes this behavior ~~by cancelling the keydown handler, and updating immediately on change/blur~~.\r\n\r\nSee a demo of the bug here (only affects IE8/IE9): http://codepen.io/cvn/full/lvjJr/\r\n\r\nHere is a fixed demo with the changes from this PR applied to angular.js: http://codepen.io/cvn/full/cgLns/\r\n\r\nCurrently, this bug only impacts IE8 & 9, but if PR https://github.com/angular/angular.js/pull/9265 lands, it will affect all versions of IE.\r\n\r\nIssue https://github.com/angular/angular.js/issues/1206 may be related, but I\'m not sure about this.\r\n\r\nI\'m submitting this PR to master, but I think it makes sense to include in both 1.2 and 1.3 branches.\r\n\r\nPlease let me know what you think.', '37', null, null, 'cvn', '2014-10-14T22:14:04Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6185', '37', '9628', 'test($resource): enhance test-case to verify correct behaviour', 'Previously, the test-case verified that calling `toJson()`, would remove the `$promise` and `$resolved`, but not that other `$`-prefixed properties would not be removed.', '3', null, null, 'gkalpak', '2014-10-15T07:43:04Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6186', '37', '9630', 'fix(loader): fix double spaces', 'Fix double spaces in return statement. Double spaces between return and\r\nreturned value brake minification process of some minifiers (bug found on JSMin\r\nhttps://github.com/mrclay/jsmin-php).', '7', null, null, 'kwypchlo', '2014-10-15T08:16:56Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6187', '37', '9631', 'Fixed small typo', 'HTML not HMTL ;)', '4', null, null, 'alexnorton', '2014-10-15T09:43:51Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6188', '37', '9632', 'Fix regression introduced with https://github.com/angular/angular.js/com...', 'Fix regression introduced with https://github.com/angular/angular.js/commit/7b6c1d08aceba6704a40302f373400aed9ed0e0b breaking e.g. module https://github.com/nervgh/angular-file-upload: Be more robust about missing header object. https://github.com/angular/angular.js/issues/2973#issuecomment-59181169', '0', null, null, 'hoeni', '2014-10-15T11:35:01Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6189', '37', '9634', 'Simplify regular expressions in compile.js', 'Meta-character `\\w` already contains a `\\d` and `_`.', '2', null, null, 'Taritsyn', '2014-10-15T17:57:29Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6190', '37', '9636', 'Update animate.js', 'Check if cache and cache.classes exist. Sometimes cache is undefined and errors are thrown when looped over.', '25', null, null, 'wilgert', '2014-10-15T19:07:05Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6191', '37', '9637', 'Simplify regular expressions in compile.js', 'Meta-character `\\w` already contains a `\\d` and `_`.', '4', null, null, 'Taritsyn', '2014-10-15T19:35:56Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6192', '37', '964', 'Update: Fix for Issue #912 ($position in repeat directive can\'t be both first and last at the same time) ', 'Same pull request as #928 but it\'s from a separate branch, so future commits that I do to my master won\'t affect it. See #928 for more info.\n\nSorry for the mess.\n\n> Fix for issue #912 (https://github.com/angular/angular.js/issues/912)\n> \n> Implementation of my suggested fix where three boolean values $first, $middle and $last replaces the $position variable. I also added a test case for single item lists.', '2', null, null, 'maxmart', '2012-05-17T14:52:00Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6193', '37', '9640', 'docs(ngEventDirs): update remarks on behavior', 'This comment states that events are configured not to propagate, but that hasn\'t been the case since 1752c8c4, over 2.5 years ago(!). This is a minor tweak to the block, also removing the part that\'s too specific to `onclick`.', '5', null, null, 'mernen', '2014-10-16T02:15:01Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6194', '37', '9642', 'docs(jqLite): typo: `getComputedStyles()` -> `getComputedStyle()`', '', '1', null, null, 'gkalpak', '2014-10-16T06:09:49Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6195', '37', '9645', 'refactor(jqLite): remove a duplicate DOMContentLoaded handler attachment', '', '0', null, null, 'mzgol', '2014-10-16T10:37:04Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6196', '37', '965', 'Fix for issue #736: ngResource now accepts headers', 'With this fix it is possible to specify HTTP headers in the actions parameter of ngResource.\nFor example, to be able to send conditional PUT requests you could specify:\n```javascript\n$resource(\'/CreditCard/123\', {}, {\n add: {\n method: \'PUT\',\n headers: {\'If-None-Match\': \'*\'}\n }\n});\n```\n\nAs I understand it, this should resolve issue #736', '12', null, null, 'maxmart', '2012-05-17T15:22:36Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6197', '37', '9650', 'docs($location) fix $$parse parameter name', 'Replaced newAbsoluteUrl by url parameter.', '3', null, null, 'johnnyghost', '2014-10-16T20:22:52Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6198', '37', '9653', 'Unit tests are the first line of defence...', '', '0', null, null, 'jonlemmon', '2014-10-16T22:59:18Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6199', '37', '9654', 'docs(guide/E2E Testing): fix incorrect sentence', '', '3', null, null, 'jonlemmon', '2014-10-16T23:02:06Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6200', '37', '9655', 'docs(guide/forms): add animated gifs for forms', 'WIP plz don\'t merge yet thx\r\n\r\n@petebacondarwin right now I can\'t get `*.gif`s to be copied into the asset folder. Is this something dgeni does?', '4', null, null, 'btford', '2014-10-16T23:18:53Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6201', '37', '966', 'Misko leak', '', '1', null, null, 'IgorMinar', '2012-05-17T17:31:56Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6202', '37', '9660', 'fix($http): Prevent calling undefined in defaultHttpResponseTransform', 'The `defaultHttpResponseTransform` accepts a second parameter, `headers`, which when not passed it throws `TypeError: undefined is not a function`.', '15', null, null, 'Francisc', '2014-10-17T11:03:25Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6203', '37', '9663', 'fix($sce): do not assume $document[0] exists', 'this is important so that people can mock $window without having to add stuff that angular uses internally into it\r\n\r\nCloses #9661', '8', null, null, 'shahata', '2014-10-17T12:53:28Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6204', '37', '9667', 'fix($rootScope.$on) check listener existense while deregistering', 'Check that listener is still present in $$listeners before decrease\r\n$$listenerCount. It fixes problem with incorrect $$listenerCount after\r\ncall deregistering function multiple times.\r\n\r\nCloses #9666', '4', null, null, 'dmytroyarmak', '2014-10-17T13:33:50Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6205', '37', '9670', 'Make templates consistent', 'In Lession 1 template has phone names within ```span``` element, while in lession 2 the name is directly within the wrapper ```div```', '6', null, null, 'Starojitski', '2014-10-17T19:39:48Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6206', '37', '9671', 'refactor($sce): don\'t depend on $document', 'The $sce dependency on $document was added in 64241a5 because it was thought\r\nit\'s not possible to easiy use the msie variable in this module. This was\r\nchanged in 45252c3, though so it\'s no longer needed to depend on $document.', '0', null, null, 'mzgol', '2014-10-17T23:08:08Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6207', '37', '9672', 'docs(angular.extend): explanation of deep copy.', 'It is very common to see many developers confused about it.', '2', null, null, 'wedneyyuri', '2014-10-18T01:19:44Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6208', '37', '9673', 'docs(error/dupes): Little fix in explanation text.', '', '4', null, null, 'Juanmcuello', '2014-10-18T01:52:13Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6209', '37', '9677', 'style: enforce spaces after keywords, add spaces', 'Moving the `requireSpaceAfterKeywords` rule to jscs with associated changes.\r\n\r\nIs it preferred to explicitly specify the keywords in an array?\r\n\r\nOr use `requireSpaceAfterKeywords = true`\r\nwhich is equivalent to `requireSpaceAfterKeywords = [ \'do\', \'for\', \'if\', \'else\', \'switch\', \'case\', \'try\', \'catch\', \'void\', \'while\', \'with\', \'return\', \'typeof\', \'function\'];`\r\n\r\nAlthough it doesn\'t make sense for `function`.\r\n\r\ncc: @caitp', '24', null, null, 'hzoo', '2014-10-18T13:50:00Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6210', '37', '9678', 'feat($location): allow to change location during $locationChangeStart', 'Closes #9607', '25', null, null, 'shahata', '2014-10-18T20:42:37Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6211', '37', '9679', 'style: disallow space after object keys, other rules', 'add `disallowSpaceAfterObjectKeys` and associated changes.\r\n\r\nadd `disallowMixedSpacesAndTabs` (no files changed)\r\nadd `disallowMultipleLineStrings` (no files changed)\r\nadd `disallowNewlineBeforeBlockStatements` (no files changed)\r\n\r\nFeel free to remove the other rules if not needed.\r\n\r\ncc: @caitp ', '2', null, null, 'hzoo', '2014-10-19T00:04:30Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6212', '37', '968', 'Begin route change', '', '0', null, null, 'mhevery', '2012-05-17T23:10:36Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6213', '37', '9680', 'Update dgeni config to free up paths to protractor tests', 'There are two commits:\r\n\r\nThe first updates the base path for protractor tests.\r\nThe second fixes some manual e2e tests that needed their path changing', '1', null, null, 'petebacondarwin', '2014-10-19T09:31:46Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6214', '37', '9681', 'fix(input): $render input even if $modelValue is empty', '$render should only be concerned if there is a $viewValue present.\r\nWhen we check $isEmpty($modelValue), we assume $render is used in\r\ncontext of a model -> view update. But since it is part of the public\r\nAPI, it needs to work independent of internal usage.\r\n\r\nFixes #9156\r\n\r\nIn the end, the formatters are responsible for providing a correct value to the $render function in a model -> update. If someone uses $render manually, they are obviously responsible.', '6', null, null, 'Narretz', '2014-10-19T17:37:37Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6215', '37', '9682', 'chore(Angular) Remove unused functions', 'This removes the functions size() and isLeafNode().', '1', null, null, 'realityking', '2014-10-19T22:53:08Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6216', '37', '9683', 'feat($rootScope): allow $watchGroup to be passed an object', 'in case an object is passed instead of an array, the keys are the expressions to watch and the values are booleans indicating if this watched expression requires object equality check.', '7', null, null, 'shahata', '2014-10-19T23:36:43Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6217', '37', '9684', 'Update Introduction', 'Is there such a thing as code-behind? I\'m thinking the slash is a better choice here. http://www.grammarly.com/handbook/punctuation/other-punctuation-marks/4/slash/', '2', null, null, 'hmullen', '2014-10-20T00:19:47Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6218', '37', '9685', 'Adding jscs rules', 'alphabetize rules\r\nadd rule: `disallowTrailingComma`: `17` changes\r\nadd rule: `validateParameterSeparator`: `26` changes\r\nadd rule: `disallowSpacesInsideParentheses`: `168` changes\r\n\r\ncc: @caitp ', '1', null, null, 'hzoo', '2014-10-20T01:32:03Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6219', '37', '9688', 'docs(tutorial/7 - Routing', 'Bad link fix.', '1', null, null, 'Augustukas', '2014-10-20T09:09:32Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6220', '37', '9690', 'docs(tutorial/11 - REST and Custom Services): describe your change...', 'Typo correction', '4', null, null, 'lguyot', '2014-10-20T09:26:55Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6221', '37', '9693', 'Fix a typo', 'Just English...\r\n```\r\n, event if\r\n```\r\nis obviously wrong...\r\nchanged to\r\n```\r\n, even if\r\n```', '1', null, null, 'princemaple', '2014-10-20T11:50:57Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6222', '37', '9697', 'fix(inputs): ignoring input events in IE caused by placeholder changes', null, '25', null, null, 'caitp', '2014-10-20T16:04:15Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6223', '37', '9702', 'docs(ngModel.NgModelController): Remove extra \'to\'', '', '1', null, null, 'dwayne', '2014-10-20T17:42:01Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6224', '37', '9704', 'refactor(Angular) Use Object.keys instead of manually constructing an array.', 'No performance degradation: http://jsperf.com/get-all-keys-from-object', '3', null, null, 'realityking', '2014-10-20T19:32:21Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6225', '37', '9706', 'Some trivial fixes to new e2e harness', '1) Removing some redundant file (I hope I\'m not missing anything)\r\n2) Add body tag to fixture + indentation\r\n3) Minor refactor to editting jquery script tag\r\n4) Update npm shrinkwrap', '12', null, null, 'shahata', '2014-10-20T22:13:29Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6226', '37', '9708', 'Add jscs rule for function spacing', 'Add rule disallowSpacesInFunctionDeclaration beforeOpeningRoundBrace.\r\n\r\n```\r\nfunction a() {\r\n\r\n};\r\n```\r\n\r\nAdd rule disallowSpacesInNamedFunctionExpression beforeOpeningRoundBrace.\r\n\r\n```\r\nvar a = function a() {\r\n\r\n}\r\n```\r\n\r\nAdd rule requireSpacesInFunction beforeOpeningCurlyBrace. Applies to all types of functions.\r\n\r\nDidn\'t include spacing for round brace for anonymous functions yet.\r\nChecking only anonymous function expressions: for `function (e)`, got 1121 times.\r\nChecking only anonymous function expressions: for `function(e)`, got 9159 times.\r\n\r\ncc: @caitp @petebacondarwin', '34', null, null, 'hzoo', '2014-10-21T02:08:35Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6227', '37', '9710', 'refactor(*): removing unused vars', '', '3', null, null, 'jbedard', '2014-10-21T06:27:45Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6228', '37', '9711', 'Fix a typo in documentation', 'previously sent this PR https://github.com/angular/angular.js/pull/9693 but got closed due to CLA\r\nI\'ve signed CLA now.\r\n\r\nJust English...\r\n```\r\n, event if\r\n```\r\nis obviously wrong...\r\nchanged to\r\n```\r\n, even if\r\n```', '4', null, null, 'princemaple', '2014-10-21T08:42:32Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6229', '37', '9712', 'docs(ngRepeat): improve description of tracking and duplicates', 'Add a section to the documentation on how tracking between items and DOM\r\nelements is done, and why duplicates are not allowed in the collection.\r\n\r\nDescribe how the default tracking behaviour can be substituted with track by.\r\n\r\nTweak the wording in the `track by` section to discuss “tracking expressions”\r\ninstead of “tracking functions”.\r\n\r\nCloses #8153', '4', null, null, 'teropa', '2014-10-21T09:28:19Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6230', '37', '9713', 'fix(templateRequest): allow empty html template', 'allow empty html template and not throw error\r\n\r\nCloses #9581', '5', null, null, 'cmichal', '2014-10-21T10:04:40Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6231', '37', '9715', 'feat(input): add support to input[type=range]', 'the input[type=range] behavior is the same of an input[type=number]\r\nwith min=0, max=100 and step=1 as defaults\r\n\r\nCloses #5892, #8241, #7370', '3', null, null, 'cironunes', '2014-10-21T10:51:55Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6232', '37', '9718', 'fix(select): assign result of track exp to element value', 'Fixes a regression where the option/select values would always be set to\r\nthe key or index of a value within the corresponding collection. Prior to\r\nsome 1.3.0 refactoring, the result of the track expression would be bound\r\nto the value, but this behavior was not documented or explicitly tested.\r\n\r\nThis commit adds one explicit test for this behavior, and changes \r\nseveral other trackBy tests to reflect the desired behavior as well.\r\n\r\nFixes #9592', '2', null, null, 'jeffbcross', '2014-10-21T11:03:46Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6233', '37', '972', 'feat($route): regexp support for $route params', 'Commit related to the issue #918\n\n- regex for the route is constructed once and then reused\n\n- allows provide regex expressions for params in the constraints object:\n$routeProvider.when(\'/user/:id/:age\', {template:\'user.html\'}, {id:\"[0-9]*\", age:\"[0-9]*\"})\n\n- list of values is supported using regular expression:\n $routeProvider.when(\'/some/:param\', {template:\'foo.html\'}, {param:\"one|two|tree\"});\n\n- supports predefined types for paramsters (int, float, bool, string):\n$routeProvider.when(\'/some/:param\', {template:\'foo.html\'}, {param:\"float\"});\n$routeParams.param will be typeof number\n\n- predefined types can be extended, bu extending $routeProvider.shortcut object\n\nThanks for your contribution! In order for us to be able to accept it, we ask you to sign our CLA (contributor\'s license agreement).\n\nCLA is important for us to be able to avoid legal troubles down the road.\n\nFor individuals (a simple click-through form):\nhttp://code.google.com/legal/individual-cla-v1.0.html\n\nFor corporations (print, sign and scan+email, fax or mail):\nhttp://code.google.com/legal/corporate-cla-v1.0.html', '9', null, null, 'petrovalex', '2012-05-20T19:48:03Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6234', '37', '9720', 'fix($observe): check if the attribute is undefined', 'Check if the attribute is undefined before manually applying the function because if not an undefined\r\nproperty is added to the scope of the form controller when the input control does not have a name.\r\n\r\nCloses #9707\r\n\r\n[#ngEurope](http://ngeurope.org/) /cc @rodyhaddad @vojtajina ', '11', null, null, 'Puigcerber', '2014-10-21T11:59:57Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6235', '37', '9721', 'feat($injector): print caller name in \"unknown provider\" errors (when available) #ngEurope', 'This will add the name of the service/controller/... to the error message so that we know where the error comes from.\r\nFor example, `Error: [$injector:unpr] Unknown provider: $timeuotProvider <- $timeuot` will print `Error: [$injector:unpr] Unknown provider: $timeuotProvider <- $timeuot <- AppCtrl`\r\n\r\nThis will not work in config/run block because propagating the module name would be difficult (you don\'t want to screw with invoke) but we could improve this later.\r\n\r\nAlso, I didn\'t add it to the directives because you already have an explicit message (something like `Error: [$injector:unpr] Unknown provider: $timeuotProvider <- $timeuot <- testDirective`).\r\n\r\nFixes #8135', '15', null, null, 'ocombe', '2014-10-21T12:05:49Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6236', '37', '9722', 'docs($animate): document the 3rd party framework compatibility issues #ngEurope', 'Fixes #8569, I hope the wording is both correct and clear enough.', '4', null, null, 'mgcrea', '2014-10-21T12:53:14Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6237', '37', '9723', 'feat($timeout): overload service API.', 'Provided an overload for $timeout that doesn\'t take a function.\r\n\r\nCloses #9176', '12', null, null, 'vasileorza', '2014-10-21T13:04:33Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6238', '37', '9724', 'feat(ngTouch): override mouse event directives', 'The mouse directives handle the touch events too. \r\nFrom ngEurope\r\n\r\nCloses #5334', '7', null, null, 'douglasduteil', '2014-10-21T13:14:45Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6239', '37', '9725', 'feat($compile): allow $watchCollection to be used in bi-directional bindings', 'Allow an asterisk to be specified in the binding definition to use `$watchCollection` instead of `$watch`.\r\n```js\r\nscope: {\r\n prop: \'=*\'\r\n}\r\n```\r\n\r\nThis is a follow-up to #3491 but using `$watchCollection` as @IgorMinar [suggested](https://github.com/angular/angular.js/pull/3491#issuecomment-22274279).', '30', null, null, 'gabrielmaldi', '2014-10-21T13:29:11Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6240', '37', '9726', 'fix(select): assign result of track exp to element value', 'Fixes a regression where the option/select values would always be set to\r\nthe key or index of a value within the corresponding collection. Prior to\r\nsome 1.3.0 refactoring, the result of the track expression would be bound\r\nto the value, but this behavior was not documented or explicitly tested. A\r\ncache was added in order to improve performance getting the associated\r\nvalue for a given track expression.\r\n\r\nThis commit adds one explicit test for this behavior, and changes several\r\nother trackBy tests to reflect the desired behavior as well.\r\n\r\nFixes #9592 and it\'s related to PR #9718 (@jeffbcross)', '14', null, null, 'juangabreil', '2014-10-21T14:12:15Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6241', '37', '9727', 'docs($compile): improve documentation on directive $scope usage', 'Add information about the behavior of several directives especially of their scopes when applied on a single element.\r\n\r\nClose #5761', '11', null, null, 'psysp', '2014-10-21T14:28:24Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6242', '37', '9728', 'docs($http): document $httpProvider.interceptors in $httpProvider docume...', '...ntation #ngEurope\r\n\r\nfixes(#9366)', '2', null, null, 'Hotell', '2014-10-21T14:33:22Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6243', '37', '9729', 'Add warning message when a module is reset/replaced', '- Add log to loader.js in case module with the same name is loaded again. The logProvider is not available at this point and after discussion on ng-europe we decided to use console.log.\r\n- The result of the fix was tons of messages \r\nLOG: \'The module \'ng\' already exists and has been redefined.\'\r\nbecause publishExternalAPI was called twice for EVERY test. Therefore publishExternalAPI(angular); could be removed from testabilityPatch.js.\r\n\r\nFix for #6034 ', '31', null, null, 'amrynsky', '2014-10-21T14:41:57Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6244', '37', '9730', 'fix(location): throw a MinErr when base path has the wrong case #4082', 'If the user inputs a url where the base path has the wrong case, an MinErr is now thrown instead of a stack trace.\r\n\r\nFrom the issue:\r\nThis issue is common when serving files from a case-insensitive filesystem, where the files may serve from /Base/ and /base/ but the href is set as /base/. This behavior is preferable because it encourages developers to follow the best practice of treating their files and URLs as case-sensitive.\r\n\r\nFixes #4082 #ng-europe', '6', null, null, 'aderholdst', '2014-10-21T14:48:56Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6245', '37', '9731', 'Route inherited param fix', 'ngEurope sprint with Vojta & Jeff', '20', null, null, 'cmichal', '2014-10-21T14:58:58Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6246', '37', '9738', 'docs(guide/Expressions): some punctuations are missing', '', '3', null, null, 'nehiljain', '2014-10-22T02:37:02Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6247', '37', '9739', 'docs(guide/Bootstrap): close script tag', '', '1', null, null, 'jacksonrayhamilton', '2014-10-22T04:42:03Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6248', '37', '9741', 'docs($templateCache): clarify inline template', 'Current doc doesn\'t state required tag location clear enough. It was [stack overflow|http://stackoverflow.com/a/16125138] where I\'ve found that requirement', '6', null, null, 'marcin-wosinek', '2014-10-22T11:29:13Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6249', '37', '9743', 'docs(form.FormController): add \'date\' token to FormController $error property', 'Hi from #ngEurope ', '6', null, null, 'clakech', '2014-10-22T12:17:03Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6250', '37', '9745', 'feat($templateRequest): trust url if it is already in cache', 'This is a rehash of #4879. I\'ve encountered this issue a long time ago and it is no longer relevant for me, but maybe it will help someone else... This bothered me when I used the base tag in some project to point to a domain different than the one the page was served from - it meant that any template that was preloaded using something like `<script type=\"text/ng-template\" id=\"/tpl.html\">` was blocked by `$sce` when I tried to load it since the domain in the base tag was not trusted by default.\r\n\r\nSo I\'m thinking that it doesn\'t make much sense to block something that is already in the cache, but there was a test in`$compile` which explicitly tested that even cache will be blocked (which I had to remove), so I\'m probably missing something.\r\n\r\nAnyway, even if this is not really interesting, I think that the refactor in the first two commits might be relevant anyway....', '7', null, null, 'shahata', '2014-10-22T13:58:37Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6251', '37', '9747', 'fix(orderBy): Mantain order in array of objects when predicate is not provided', '\r\nFixes #9566', '16', null, null, 'juangabreil', '2014-10-22T16:21:36Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6252', '37', '9749', 'docs(tutorial/Tutorial): describe your change...', 'Additional package required for a Debian install', '3', null, null, 'alindberg', '2014-10-22T18:05:38Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6253', '37', '9751', 'feat(ngSanitize): accept SVG elements and attributes', 'SVG elements and attributes are now accepted and sanitized by ngSanitize.\r\n\r\nCloses #9578', '10', null, null, 'chliebel', '2014-10-22T19:55:02Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6254', '37', '9753', 'chore(karma): use FF27 because FF26 is having issues', 'Maybe?', '1', null, null, 'caitp', '2014-10-22T20:16:48Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6255', '37', '9757', 'fix(filterFilter): correctly handle deep expression objects', 'Previously, trying to use a deep expression object (i.e. an object whose properties can be objects themselves) did not work correctly. This commit refactors `filterFilter`, making it simpler and adding support for filtering collections of arbitrarily deep objects.\r\n\r\nCloses #9698\r\n\r\n---\r\n<sub>\r\nBTW, I used \"non-IE8\" stuff (like `Array.prototype.some/every`) for the sake of conciseness and clarity, so this is not directly back-portable to 1.2.x. If there is interest, I can create a IE8 compatible version (using `for-loops` etc).\r\n</sub>', '46', null, null, 'gkalpak', '2014-10-23T10:19:15Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6256', '37', '9762', 'making the equals method work when the obj graph has circular refs', '', '14', null, null, 'andersonbd1', '2014-10-23T18:05:45Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6257', '37', '9763', 'docs($http): patch method is not exists', 'The link here brings nowhere.\r\nOn the 1.2.6 the patch method seems not exists / not working.\r\n\r\nYou can observe the error here:\r\nhttp://plnkr.co/edit/cwJ1pgoqbBUzjSoApg5S\r\n`TypeError: undefined is not a function`\r\n\r\nIf you just change the version of angular with 1.3.0 the request will work.', '4', null, null, 'luruke', '2014-10-23T20:10:45Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6258', '37', '9765', 'style(filterSpec): fix white-space and newline inconsistencies', '', '9', null, null, 'gkalpak', '2014-10-23T20:35:01Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6259', '37', '9766', 'Enable ng-include directive to take a method.', 'This allows a user to bypass the template lookup much in the same way\r\nthat a directive works. if you simply set `template:`\r\n\r\nThis ability comes in quite handy in the situation where your app is\r\nusing precompiled templates to reduce network requests.\r\n\r\nPrior to this fix a user had several options to hack around this.\r\n\r\nThey could define template script tags with the id\'s matching foo.html\r\nor they could pre-seed the template cache on app.run so that the network\r\nrequest would not happen.\r\n\r\n-------\r\n\r\nIf you guys are interested in this, I can add tests and docs in a snap.\r\n', '6', null, null, 'samccone', '2014-10-23T20:52:06Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6260', '37', '9769', 'fix(ngSanitize): attribute name: xmlns:href -> xlink:href', '', '4', null, null, 'gkalpak', '2014-10-24T00:21:20Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6261', '37', '9770', 'test(ngSanitize): enhance test regarding the `xlink:href` attribute', '(Related to https://github.com/angular/angular.js/pull/9751#discussion_r19316243 .)', '7', null, null, 'gkalpak', '2014-10-24T00:39:38Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6262', '37', '9771', 'feat(jsonFilter): add optional arg to define custom indentation', 'also change toJson function to accomodate passing in of number of spaces', '21', null, null, 'doshprompt', '2014-10-24T03:30:32Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6263', '37', '9772', 'perf(ngmodel/compile): improve ngmodel and general compile/controller performance (#9609)', 'This was mainly focused around #9609 - bringing 1.3 up to speed with 1.2 with an ng-repeated ng-model, at least when not using jQuery.\r\n\r\nOverall these changes make the added benchmark (and the jsfiddle in #9609) 2-3x faster and seem to be faster then 1.2 now.\r\n\r\nThe last 3 commits (refactoring controller stuff in $compile) can probably be squashed but I left them separate for now for nicer diffs.\r\n\r\nThe only functional change (that I know of) is that the NgModelController `$name` is now initialized by the directive (pre-link) instead of within the controller. I\'m not sure if this an issue or considered breaking? This was already the case for the `$options` field...', '29', null, null, 'jbedard', '2014-10-24T08:11:59Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6264', '37', '9775', 'docs(tutorial/11 - REST and Custom Services): describe your change...', 'Since there came in one more Test, the unit-test should show 5 of 5 correct tests.\r\nIn my case i had to restart \"npm test\" to get this right ... ', '4', null, null, 'flezen', '2014-10-24T13:35:58Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6265', '37', '9776', 'docs(misc/Develop): update required Java version', '', '2', null, null, 'judytuna', '2014-10-24T14:35:20Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6266', '37', '9779', 'docs(guide/scope): describe watch depths', 'Describe and visualize the three watch strategies: By reference, by collection items, and by value.\r\n\r\nCloses #9388', '3', null, null, 'teropa', '2014-10-24T17:13:04Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6267', '37', '9782', 'wrong pr', '', '0', null, null, 'devote', '2014-10-24T18:00:12Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6268', '37', '9787', 'test(ngSanitize): fix test descriptions', 'SVG attribute test splitted, descriptions changed accordingly.\r\n\r\nRelated to #9770', '0', null, null, 'chliebel', '2014-10-25T07:39:49Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6269', '37', '9791', 'Fiddle with $resource documentation examples', 'They were assuming...wrong things.', '5', null, null, 'MarkTraceur', '2014-10-25T14:59:03Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6270', '37', '9792', 'Add jscs rules', 'WIP\r\n\r\nMaybe we just exclude ngLocale/ from style check because they are generated anyway?\r\n\r\nCc: @caitp ', '12', null, null, 'hzoo', '2014-10-25T15:11:23Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6271', '37', '9795', 'feat(ngRepeat): add $prev and $next properties to ngRepeat', '- Adds 2 new properties to ngRepeat item scopes: $prev and $next\r\n- Adds tests to corresponding changes\r\n- Makes simple refactoring on comparison used couple of times for better readability\r\n\r\nCloses #9740 ', '8', null, null, 'kwypchlo', '2014-10-26T12:59:38Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6272', '37', '9798', 'Fixed comment which was copy&paste from dgeni example', '', '7', null, null, 'ChristianKohler', '2014-10-27T12:38:00Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6273', '37', '9799', 'docs(guide/*): fix typos and links', 'Fix some typos and link-errors introduced in d1ccf17.\r\n\r\nRelated to #9786\r\n\r\n---\r\n**EDIT:**\r\nI somehow messed up the commits :(\r\nClosing.', '0', null, null, 'gkalpak', '2014-10-27T13:31:07Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6274', '37', '9800', 'docs(guide/*): fix typos and links', 'Fix some typos and link-errors introduced in d1ccf17.\r\n\r\nRelated to #9786', '3', null, null, 'gkalpak', '2014-10-27T14:04:36Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6275', '37', '9808', 'fix(ngModel): use `$evalAsync` for blur events to safely `$apply`', 'Set the `$touched` asynchronously using `$evalAsync` if the element is blurred during an `$apply`, otherwise it keeps the old behaviour.\r\n\r\nFixes https://github.com/angular/angular.js/issues/8762', '17', null, null, 'alexanderchan', '2014-10-28T08:59:47Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6276', '37', '981', 'feat($timeout): add $timeout service that superceeds $deferred', '$timeout has a better name ($defer got often confused with something related to $q) and\nis actually promise based with cancelation support.\n\nWith this commit the $defer service is deprecated and will be removed before 1.0.\n\nCloses #704, #532', '0', null, null, 'IgorMinar', '2012-05-23T06:29:12Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6277', '37', '9810', 'docs($browser): minor docs fixes', 'Remove obsolete `XHR` param from the docs and correct `$log` param description.', '2', null, null, 'gkalpak', '2014-10-28T09:43:23Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6278', '37', '9811', 'fix(ngClass): remove classes already on the dom', 'classes with an expression that evaluates to false but are already on the dom do\r\nnot get removed.', '12', null, null, 'Decad', '2014-10-28T11:20:04Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6279', '37', '9814', 'fix(ngResource): Can\'t write to the response object in Google Chrome 38+', ' Can\'t write to the response object in Google Chrome 38+ if it\'s an empty string. (#9802)\r\n\r\nIn Chrome v. 38 the response object might come back as an empty string instead of as an object. If this happens, the variable gets overwritten with an empty object in this fix.', '8', null, null, 'EspenHolmen', '2014-10-28T15:35:39Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6280', '37', '9815', 'docs($q): describe your change...', '', '6', null, null, 'mcjffld', '2014-10-28T17:11:41Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6281', '37', '9816', 'fix(jenkins): reset baseUrl in protractor conf', '(Tested before and after fix locally and manually on ci.angularjs.org)\r\n\r\nCommit 22b817ec11f7ab1a81342a4b60acd644a3f2a8c3 changed the url\r\nused by protractor in all docs tests to add build/docs, which\r\nwas already set to the baseUrl in protractor-jenkins.conf. This\r\ncommit just changes the protractor config\'s baseUrl to adapt\r\nto the changes in the spec files.\r\n\r\nCloses #9783', '8', null, null, 'jeffbcross', '2014-10-28T19:11:25Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6282', '37', '9817', 'Update q.js', 'added IE8 warning to promise.catch()', '4', null, null, 'mcjffld', '2014-10-28T21:34:06Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6283', '37', '9818', 'docs(guide/Scopes): add \"the\" in front of \"DOM\" on line 42', '![screen shot 2014-10-29 at 12 34 46 am](https://cloud.githubusercontent.com/assets/4251807/4822224/42549834-5f3e-11e4-9ea2-603f71b49f84.png)\r\n', '5', null, null, 'philosoralphter', '2014-10-29T07:39:09Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6284', '37', '982', 'Issue979', '', '0', null, null, 'mhevery', '2012-05-23T21:50:23Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6285', '37', '9822', 'docs($http): remove anchor link to $http.patch', '… as v1.2.x has no $http.patch method', '3', null, null, 'coderbyheart', '2014-10-29T12:06:39Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6286', '37', '9823', 'docs(tutorial/4 - Two-way Data Binding): describe your change...', 'var phoneNameColumn = element.all(by.repeater(\'phone in phones\').column(\'{{phone.name}}\'));\r\nshould be\r\nvar phoneNameColumn = element.all(by.repeater(\'phone in phones\').column(\'phone.name\'));', '5', null, null, 'kboutsen', '2014-10-29T13:59:39Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6287', '37', '9825', 'fix($parse): stateful interceptors override an `undefined` expression', 'When using `$parse` with a stateful interceptor and the expression is `undefined`, then return the result from the interceptor\r\n\r\nCloses #9821', '15', null, null, 'lgalfaso', '2014-10-29T15:14:40Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6288', '37', '9827', 'fix($route): fix redirection with optional/eager params', 'Previously, when (automatically) redirecting from path that fetured a trailing slash and optional or \"eager\" parameters, the resulting path would (incorrectly) contain the special characters (`?`,`*`) along with the parameter values.\r\n(There is also a first (unrelated) commit, that fixes the names of 2 tests in `routeSpec`.)\r\n\r\nCloses #9819', '7', null, null, 'gkalpak', '2014-10-29T16:57:41Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6289', '37', '9828', '[[DUPE of 9726 for Travis]] fix(select): assign result of track exp to element value', 'Fixes a regression where the option/select values would always be set to\r\nthe key or index of a value within the corresponding collection. Prior to\r\nsome 1.3.0 refactoring, the result of the track expression would be bound\r\nto the value, but this behavior was not documented or explicitly tested. A\r\ncache was added in order to improve performance getting the associated\r\nvalue for a given track expression.\r\n\r\nThis commit adds one explicit test for this behavior, and changes several\r\nother trackBy tests to reflect the desired behavior as well.\r\n\r\nCloses #9718\r\nFixes #9592', '0', null, null, 'jeffbcross', '2014-10-29T18:38:31Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6290', '37', '9829', 'docs(guide/Scopes): (fix) gramatical error line 248', 'changed \"as well as it guarantees\" to \", and guarantees\"\r\n\r\n![screen shot 2014-10-29 at 11 44 23 am](https://cloud.githubusercontent.com/assets/4251807/4832425/0beb8740-5f9c-11e4-9e2c-ccad1d76050d.png)\r\n\r\nbefore:\r\n\r\n \r\n![screen shot 2014-10-29 at 11 48 12 am](https://cloud.githubusercontent.com/assets/4251807/4832451/43f6f46c-5f9c-11e4-83d0-708e9bbe9793.png)\r\n', '3', null, null, 'philosoralphter', '2014-10-29T18:49:15Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6291', '37', '9834', 'feat(ngAria): Announce ngMessages with aria-live', 'To be accessible, error messages shown with `ngMessages` should be read aloud in a screen reader. This can be easily accomplished by adding `aria-live=\"assertive\"` to the `ngMessages` directive via `ngAria`. \r\n\r\nProof of concept in this Plunkr: http://plnkr.co/edit/6iFNWiSiRWz9y871v7oq', '13', null, null, 'marcysutton', '2014-10-29T21:35:10Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6292', '37', '9835', 'docs($compile): bindToController: true', 'It was not clear that `bindToController` is a boolean.', '3', null, null, 'nalbion', '2014-10-29T23:32:22Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6293', '37', '9844', 'docs(guide/Developer Guide): Adding angular-meteor package', '', '1', null, null, 'Urigo', '2014-10-30T15:04:47Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6294', '37', '9847', 'Update animate.js', 'Just pushing for testing purposes.\r\n\r\nCheck if cache and cache.classes exist. Sometimes cache is undefined and errors are thrown when looped over.\r\n\r\nCloses #9636', '0', null, null, 'caitp', '2014-10-30T18:07:24Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6295', '37', '9850', 'fix($parse): create undefined arrays in assigements', 'Fixes #9820 \r\n', '11', null, null, 'pkozlowski-opensource', '2014-10-30T19:59:42Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6296', '37', '9851', 'docs(security): add security doc', 'WIP', '9', null, null, 'btford', '2014-10-30T20:49:19Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6297', '37', '9852', 'docs(guide/Migrating from Previous Versions): $route.parseRoute method removed', 'The parseRoute method was removed from the $route object, and I was caught offguard, as it was extremely useful. Had to refactor this out. It would be nice to notify other people that they will need to account for this.', '8', null, null, 'aaronfrost', '2014-10-30T21:55:21Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6298', '37', '9853', 'docs(tutorial/7 - Routing', 'class=\"thumb\" should be on the image tag not on the anchor link tag.\r\nIt does not work in the current position.', '3', null, null, 'iflickle', '2014-10-31T04:09:42Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6299', '37', '9854', 'feat(select): ngOptions support disabling options', 'Extend the ngOptions DSL to support disabling options. Since <option>\r\nelements are generated by ngOptions, we cannot use ngDisabled in this\r\nscenario. Via extend the DSL, user have control over if a option\r\nis diabled on arbitrary condition.\r\n\r\nThis commit insert a `disable if cond` match syntax into\r\nNG_OPTIONS_REGEXP, change other match index accordingly, add disabled\r\nattribute to null option element and newly cloned option elements,\r\nadd 2 new unit tests, and change docs as well.\r\n\r\nCloses #638', '3', null, null, 'cades', '2014-10-31T06:42:51Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6300', '37', '9858', 'Closes #9636', 'I see no reason not to have this check. This PR is equivalent to #9636, just changes a little less.', '8', null, null, 'ryansmith94', '2014-10-31T12:25:37Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6301', '37', '986', 'Docs', '', '1', null, null, 'mhevery', '2012-05-24T21:56:21Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6302', '37', '9862', 'chore(ci): fix broken sauce connect download url', '', '3', null, null, 'juliemr', '2014-10-31T16:15:17Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6303', '37', '9865', 'feat(ngModel): add ngModelContext for getter/setter bindings', 'Adds an optional attribute, `ng-model-context`, that will be evaluated to provide the calling\r\ncontext used when invoking the ngModel getter/setter function. When not provided, falls back to the\r\nexisting behavior of invoking getter/setter functions from the global context.\r\n\r\nCloses #9394', '36', null, null, 'NevilleS', '2014-10-31T19:29:07Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6304', '37', '9866', 'docs(guide/Forms): clarify ngModel behavior for validation', 'For #9861', '6', null, null, 'hzoo', '2014-10-31T21:48:04Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6305', '37', '9868', 'bad object format in line 24', '', '4', null, null, 'abelorian', '2014-11-01T03:08:50Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6306', '37', '9869', 'docs(guide/Bootstrap): describe your change...', 'batarang link correction', '2', null, null, 'inphovore', '2014-11-01T12:52:35Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6307', '37', '987', 'Nested forms not propagating dirty/pristine state', 'In a nested form like below, the outer form has the class ng-pristine while the inner form is ng-dirty. Valid/invalid state does propagate.\n\n```html\n<form>\n <div ng-form>\n <input ng-model=\"foo\">\n </div>\n</form>\n```\n\nSee http://jsfiddle.net/L4gdj/', '5', null, null, 'groner', '2012-05-24T23:14:39Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6308', '37', '9870', 'docs(input): replace dateTimeLocal by datetime-local', 'Fixes #9856', '0', null, null, 'jnizet', '2014-11-01T13:30:46Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6309', '37', '9871', 'feat(ngMock): decorator that adds Scope#$countChildScopes and Scope#$countWatchers', 'When writing tests it\'s often useful to check the number of child scopes\r\nor watchers within the current current scope subtree. Common use-case for advanced\r\ndirectives is to test that the directive is properly cleaning up after itself. These\r\nnew methods simplify writing assertions that verify that child scopes were properly\r\ndestroyed or that watchers were deregistered.\r\n\r\n--------\r\n\r\n## NOTE for reviewers\r\n\r\n- This feature was asked for by Googlers, specifically @mprobst. Martin, please help with the review.\r\n- There is a PR by @lgalfaso that could be leveraged by this feature: #5799\r\n- I don\'t know if doing this as a mock decorator is the best solution because people might write unit tests that rely on this api being available in production, but it won\'t be. At the same time, this api should not be used by production code, so I don\'t want to have in under `src/`. What do others think?\r\n- Since this feature has no impact on production code, I\'m ok shipping it as part of a 1.3.x release.', '14', null, null, 'IgorMinar', '2014-11-01T15:57:15Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6310', '37', '9873', 'feat($routeProvider): allow setting caseInsensitiveMatch on the provider', 'Fixes #6477', '10', null, null, 'pkozlowski-opensource', '2014-11-01T19:15:32Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6311', '37', '9874', 'Handle default or \"no value supplied\" case for the ng-maxlength directive', 'If one adds ng-maxlength=\"\" to an input field, the default value of 0 for max length is used which results in an incorrect error being added to the input field. This fix checks for a value of 0 for the maxlength. If one uses this directive and purposefully supplies a value of 0 for the directive, that would make absolutely no sense in any scenario I can think of. By using this as the \'default\' value (or the value used if a blank value is passed for this directive), and checking for that value and returning a result of \'valid\' if that value is supplied, corrects this issue. This is not a problem for the ng-minlength directive as having a default value of 0 for the minimum length is actually a \'no-op\' as you can\'t have a length less than 0.', '5', null, null, 'pavlovich', '2014-11-02T00:09:40Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6312', '37', '9876', 'docs(tutorial/Tutorial): describe your change...', 'the https doesn\'t work. http worked.', '4', null, null, 'mathisjay', '2014-11-02T16:35:30Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6313', '37', '9879', 'docs(tutorial/Tutorial): describe your change...', 'The change will help regarding how to run those commands and from where.', '3', null, null, 'Sakib1500', '2014-11-03T04:56:05Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6314', '37', '9883', 'feat($log): add $log.snapshot() option to make angular.copy of console l...', '...og arguments\r\n\r\nmakes angular.copy of object before logging so mutating objects are still recorded accurately in log\r\n(improves default behavior of browser log which otherwise contains live object references that\r\ncan provide misleading picture of complex objects that change after being logged).\r\n$log.snapshot() is sugar method for $log.snapshot.log() Also can call $log.snapshot.warn(), $log.snapshot.info(), $log.snapshot.error(), $log.snapshot.debug()', '6', null, null, 'monirmamoun', '2014-11-03T10:04:13Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6315', '37', '9888', 'fix(ngPattern): match behaviour of native HTML pattern attribute', 'From https://html.spec.whatwg.org/multipage/forms.html#attr-input-pattern\n\n> The compiled pattern regular expression, when matched against a string, must have its start\nanchored to the start of the string and its end anchored to the end of the string.\n\n/CC @matsko please review\n\nCloses #9881', '12', null, null, 'caitp', '2014-11-03T19:39:39Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6316', '37', '9889', 'docs($route): replace comma with \"and\"', 'Remove a comma and replace with \"and\" on line 444', '1', null, null, 'loringdodge', '2014-11-03T19:50:30Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6317', '37', '989', 'Bugfix: Date-filter should support high-precision date-times', 'Hi,\n\nWe\'re using angular.js in a .net project, leveraging json.net as our server-side json serializer. This library outputs datetimes with more than three digits of precision in the millisecond part, and these strings are not recognized by the date filter. The enclosed fix (with test) updates the regular expression for ISO format dates to recognize 1-* rather than exactly 3 digits for milliseconds (according to wikipedia, \"There is no limit on the number of decimal places for the decimal fraction\"; I won\'t cash out $105 to check with the standard myself ;-)).\n\nAs always, let us know if we can improve this patch and resubmit.\n\n\nAll the best,\n\nStein Jakob Nordbø', '4', null, null, 'steinjak', '2012-05-25T12:59:50Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6318', '37', '9890', 'wip: fix(ngModel): don\'t update when neither validity nor modelValue changed', 'This is in response to https://github.com/angular/angular.js/issues/9063.\r\n\r\n> don\'t update when neither validity nor modelValue changed\r\n\r\nis what it actually does in the code, but is written to do that:\r\n\r\n > don\'t fire ngChange when an input with ngRequired is initially invalid, but its model is defined.\r\n\r\nA better fix would require to find out why `required` fires the observer only once, but `ng-required`fires it twice, see https://github.com/angular/angular.js/issues/9063#issuecomment-59990139', '8', null, null, 'Narretz', '2014-11-03T20:11:26Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6319', '37', '9891', 'docs(ngModel.NgModelController): use $evalAsync instead of $apply for events', 'Have the apply called safely during events by using `$evalAsync` rather than `$apply`.\r\nThis will help ensure that an apply for a user directive is not called during a digest cycle.', '4', null, null, 'alexanderchan', '2014-11-03T20:14:39Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6320', '37', '9892', 'Feature hooks for ng events', 'Review needed/ not merge ready (due to lack of docs).\r\n\r\nThis adds a mechanism for hooking into ngClick/Touch/Mouseover etc. events, so that directives can cancel events or view the result of the handler call.\r\n\r\nMy use case: I wanted to create a `button` directive which disables the button/changes it to a loading state if the ng-click handler returns a promise.\r\n\r\nThis can be achieved now by `require`ing `ngClick` in the directive, and hooking the state changes into a function pushed to `$callResultWatchers`.\r\n\r\n`$interceptors` hold functions which are called before the handler, and can cancel the event with exactly and only a `return false;`.\r\n\r\nWould love feedback on the design & implementation.\r\n\r\nThanks!', '5', null, null, 'NotBobTheBuilder', '2014-11-03T21:13:32Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6321', '37', '9894', '`inject` function in `angular-mocks` does not forward result', 'This code returns no result ([angular-mocks.js#L2250](https://github.com/angular/angular.js/blob/master/src/ngMock/angular-mocks.js#L2250)):\r\n```js\r\ninjector.invoke(blockFns[i] || angular.noop, this);\r\n```\r\nTherefore promises don\'t reach the `mocha` and I can\'t use `chai-as-promised` within `inject`:\r\n```js\r\nit(\'should run\', inject(function(myService) {\r\n return myService.save().should.be.fulfilled;\r\n }));\r\n```\r\n', '2', null, null, 'teux', '2014-11-03T22:05:28Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6322', '37', '9895', 'docs(guide/Conceptual Overview): change \"a\" to \"an\" before ng-controller', 'The article matches how a word is pronounced. Since \"en-gee\"-controller begins with a vowel, the article used should be \"an\" and not \"a\": _we added an ng-controller_', '5', null, null, 'rsperberg', '2014-11-03T23:08:47Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6323', '37', '9896', 'docs(guide/Conceptual Overview): style corrections', 'The styling of these words should be consistent. Consult _Chicago Manual of Style_ rule 6.40 for further discussion.', '4', null, null, 'rsperberg', '2014-11-03T23:26:30Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6324', '37', '9898', 'Caret restoring after recompiling the inputs with ng-model', 'Hello, after upgrading to 1.3.0 I have an issue with caret on recompiled inputs. After enter the value caret jumps to the end of input. \r\n![123](https://cloud.githubusercontent.com/assets/3543513/4896179/aa3709a8-63f5-11e4-888e-e5db02b27256.gif)\r\n\r\n**Reproducable:** always\r\n**Angular Version**: >1.3.0\r\n**Browsers:** Chrome 38 and IE 11\r\n**Operating system:** Windows 8.1\r\n**Plnkr:** http://plnkr.co/edit/BMumov7W1t4xp1PYeL1K?p=preview', '4', null, null, 'sagens42', '2014-11-04T07:45:16Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6325', '37', '9899', 'perf(Angular): only create new collection in getBlockNodes if the block has changed', 'Doing something such as...\r\n```\r\nvar scope = $rootScope.$new();\r\n$compile( $(\'<div ng-if=\"i\"></div>\').appendTo(\'body\') )(scope);\r\nwhile (loop forever) {\r\n scope.i = (0 === ++i%2);\r\n scope.digest()\r\n}\r\n```\r\n\r\nThe `getBlockNodes` goes from about 2.5% => 0.25%. In any real test that diff would probably round down to zero though. But for only 3 extra lines (2 being `}`) I thought I\'d at least throw it out there...', '7', null, null, 'jbedard', '2014-11-04T08:26:49Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6326', '37', '99', 'Scenario runner binding throw', 'I was wrong about throw being the same as done(error) in a DSL statement. Throw is an \"error\" and done(error) is a \"failure\".\r\n\r\nAlso, there was a test for the binding not matching before, but it tested in a condition where there were no bindings at all in the document in which case elements() in your new binding() would still throw.\r\n\r\nI added a new test that checks for bindings existing but none of them matching.\r\n\r\nI also fixed an issue where you were using contains() and checking if the return value was >= 0 but the function returns a boolean and false >= 0 is true. I\'ll code review more carefully next time.', '0', null, null, 'esprehn', '2010-10-28T01:06:45Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6327', '37', '9903', 'fix($location/$browser): prevent infinite digests on empty hash changes', 'Fixes #9635', '6', null, null, 'petebacondarwin', '2014-11-04T15:08:32Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6328', '37', '9905', 'fix($rootScope): remove history event handler when app is torn down', 'Remember the popstate and hashchange handler registered with window\r\nwhen the application bootstraps, and remove it when the application\r\nis torn down\r\n\r\nCloses #9897', '24', null, null, 'randombk', '2014-11-04T16:11:50Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6329', '37', '9906', 'fix($location): don\'t rewrite when link is shift-clicked', 'Closes #9904', '5', null, null, 'caitp', '2014-11-04T16:16:34Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6330', '37', '9907', 'fix($http): won\'t parse single space response', 'According to [this question](http://stackoverflow.com/questions/3351247/how-to-return-truly-empty-body-in-rails-i-e-content-length-0), Rails in order to patch a bug in Safari, returns a single space when calling `head :ok`, which is the standard for POST requests.\r\n\r\nAngular since [9ba24c54d](https://github.com/angular/angular.js/commit/9ba24c54d60e643b1450cc5cfa8f990bd524c130) checks if the body is empty before calling JSON parse, but this still breaks in this case, since the body isn\'t empty, but contains a single space. \r\n\r\nWe are hitting this issue when trying to upgrade from Angular 1.2.10. This PR should help in that case.', '6', null, null, 'gampleman', '2014-11-04T19:25:02Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6331', '37', '9908', 'docs(guide/Running in Production): ng-strict-di', 'Adding note about Strict DI mode.', '14', null, null, 'kentcdodds', '2014-11-04T19:36:22Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6332', '37', '9909', 'chore(ci): update protractor to version 1.4.0', '', '2', null, null, 'juliemr', '2014-11-04T19:44:48Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6333', '37', '991', 'fix(parser): string concatination with undefined model', 'Related to issue #988\n\n- {{\'string\' + undefinedModel}} results in \'string\'\n- {{undefined+undefined}} results in empty string\n', '4', null, null, 'petrovalex', '2012-05-25T21:01:30Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6334', '37', '9910', 'Add a helpful warning msg about case sensitivity on isolated scope variable names', 'I just spent several hours banging my head because of an undefined value with isolating scope. I talked to another engineer who had the same problem and he just gave up after wasting 1/2 a day. I eventually guessed that it might be a case sensitivity issue. I just want to pay it forward and help people from giving up on this!!!!', '4', null, null, 'skywalker0110', '2014-11-04T19:50:29Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6335', '37', '9913', 'fix(input): don\'t invoke viewChangeListeners before real user input', 'Closes #9867', '21', null, null, 'caitp', '2014-11-04T22:48:07Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6336', '37', '9914', 'fix($parse): Handle the empty string as an object key', 'When rebuilding an object literal key, use `isDefined` to decide if this is a string token or an identifier\r\n\r\nCloses #9893', '3', null, null, 'lgalfaso', '2014-11-04T23:17:31Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6337', '37', '9917', 'fix($sniffer): IE9 backspace bug in compatibility mode', 'Change IE9 input event workaround in $sniffer to\r\nwork in compatibility mode (msie can be less than 9)\r\n\r\nCloses #3110', '4', null, null, 'devsoftweb', '2014-11-05T02:45:47Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6338', '37', '9919', 'docs: Tutorial explain need for $httpBackend.flush', 'docs: There is an excellent explanation for the need for this in the documentation that may be helpful to tutorial users, so I added a link to it.', '3', null, null, 'danielmbarlow', '2014-11-05T07:26:11Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6339', '37', '9922', 'docs:docs(tutorial/12): small change to overview', 'docs:The bullet points at the beginning of the article were a little hard to understand because they didn\'t follow the grammatical form of the preceding articles. I hope these small modifications make it a little easier for someone else to read.', '2', null, null, 'danielmbarlow', '2014-11-05T13:16:01Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6340', '37', '9923', 'fix($location/$browser): prevent infinite digests on empty hash changes', 'Fixes #9635', '29', null, null, 'petebacondarwin', '2014-11-05T14:30:25Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6341', '37', '9924', 'docs(tutorial/12): added \'see phone-detail change\'', 'This one caught me out for a while because, despite the note underneath, I didn\'t notice the addition of <div class=\"phone-images\"> and it\'s repeater until later.', '2', null, null, 'danielmbarlow', '2014-11-05T16:13:53Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6342', '37', '9926', 'feat(ngMock): decorator that adds Scope#$countChildScopes and Scope#$countWatchers', 'When writing tests it\'s often useful to check the number of child scopes\nor watchers within the current current scope subtree. Common use-case for advanced\ndirectives is to test that the directive is properly cleaning up after itself. These\nnew methods simplify writing assertions that verify that child scopes were properly\ndestroyed or that watchers were deregistered.\n\nRehash of #9871 to see if it can land.', '0', null, null, 'caitp', '2014-11-05T18:10:00Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6343', '37', '9928', 'docs(ngModelOptions): minor grammer error', 'On https://docs.angularjs.org/api/ng/directive/ngModelOptions, in Arguments block, in description of updateOn, it says “specifying which event should be the input bound to.” and should be “specifying which event should be the input be bound to.”.', '4', null, null, 'yarsh', '2014-11-05T20:28:22Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6344', '37', '9930', 'Add in-depth guide for ngAria', 'To help explain what the ngAria module can and can\'t do, I\'ve updated the Developer Guide to include more in-depth information, code examples and accessibility resources. This is a companion piece to a blog post on the official AngularJS blog due out shortly.\r\n\r\nRelated to https://github.com/angular/angular.js/issues/9925', '14', null, null, 'marcysutton', '2014-11-05T22:10:29Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6345', '37', '9935', 'angularJs', 'angularJs', '1', null, null, 'rwson', '2014-11-06T08:51:14Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6346', '37', '9937', 'Spell check change propery to property ', 'spell check propery to property @ line # 26', '2', null, null, 'tk120404', '2014-11-06T10:40:59Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6347', '37', '9938', 'Add explanation of reverse boolean in the orderBy filter.', 'Add explanation of reverse boolean in the orderBy filter.', '3', null, null, 'tdebroc', '2014-11-06T11:38:25Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6348', '37', '994', 'ngOptions with ngMultiple', 'Before this fix, you had to declare twice (old+new way):\n<select data-ng-model=\"...\" data-ng-options=\"...\"\n data-multiple=\"true\" \n data-ng-multiple=\"true\">\n</select>', '2', null, null, 'oori', '2012-05-29T00:04:27Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6349', '37', '9942', 'perf(orderBy): copy array with slice instead of for loop', 'Use array slice method to copy entire array instead of a for loop\r\nhttp://jsperf.com/new-array-vs-splice-vs-slice/54', '7', null, null, 'kwypchlo', '2014-11-06T14:10:58Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6350', '37', '9945', 'href attributes emptied when tag is disabled', 'Not merge ready due to lack of tests & docs; filing for opinions. Probably not the right way to do this, so suggestions appreciated.\r\n\r\nWhen a `<button>` is set as `disabled`, clicking it doesn\'t trigger any event listeners. However, applying `disabled` to an `<a>` tag doesn\'t have the same effect as the browser follows a `href` regardless of the rest of the attributes.\r\n\r\nThis PR extends the boolean attribute directives to add a list of change listeners, and `ng-href` uses this to remove the `href` attribute when the element becomes disabled.', '6', null, null, 'NotBobTheBuilder', '2014-11-06T17:08:08Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6351', '37', '9946', 'docs(guide/e2e-testing): fix outdated link to Protractor API', 'The link to Protractor API points to an outdated document, replaced it with the correct URL.\r\n\r\nhttps://docs.angularjs.org/guide/e2e-testing -> Using Protractor -> \"api docs\" link.\r\n', '5', null, null, 'AdirAmsalem', '2014-11-06T18:51:14Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6352', '37', '9947', 'docs(CHANGELOG): Document breaking change from 23bc92b1', 'Document the breaking change from 23bc92b1', '2', null, null, 'lgalfaso', '2014-11-06T20:25:55Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6353', '37', '9949', 'fix(select): use strict comparison for isSelected with selectAs', 'Fixes #9639', '3', null, null, 'Narretz', '2014-11-06T21:32:25Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6354', '37', '9950', 'Some extra checks to help prevent misuse of DOM apis in the insecure/buggy angular expressions', '', '4', null, null, 'chirayuk', '2014-11-07T00:15:35Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6355', '37', '9956', 'fix($parse, events): prevent accidental misuse of properties on $event', 'Testing for merging', '1', null, null, 'caitp', '2014-11-07T18:06:14Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6356', '37', '9957', 'fix(inputs): ignoring input events in IE caused by placeholder changes or focus/blur on inputs with placeholders', 'Test for merging', '0', null, null, 'caitp', '2014-11-07T18:07:18Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6357', '37', '9961', 'refactor($parse): don\'t use bind-once interceptor for non-bind-once expressions', 'Side-effects:\r\n - Logic for allOrNothing watches now lives in $interpolate rather than $parse\r\n\r\nCloses #9958', '40', null, null, 'caitp', '2014-11-07T21:16:00Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6358', '37', '9963', 'Why should watchExpression should be idempotent?', 'This attempts to clarify the rationale. The Previous sentence was a bit ambiguous. If this new explanation does not reflect the intent, please use its active voice (as opposed to passive voice) as a template to clarify the existing sentence.', '3', null, null, 'btelles', '2014-11-07T21:46:57Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6359', '37', '9964', 'fix(rootScope, ngRepeat): add support for objects created with Object.create(null) for ngRepeat and $watchCollection', 'Basically, the hasOwnProperty method was being called from an object gotten from the user. When that object was initially created with Object.create(null), it didn\'t inherit from Object so it didn\'t have the hasOwnProperty method throwing an \"undefined is not a function\" error. \r\n\r\nThis was fixed by executing hasOwnProperty.call(object, key) instead of object.hasOwnProperty(key)', '9', null, null, 'HeberLZ', '2014-11-07T22:46:31Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6360', '37', '9968', 'docs(CHANGELOG): v1.3.2 -> 1.3.2', 'Align versioning format', '2', null, null, 'micellius', '2014-11-08T06:46:45Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6361', '37', '9971', 'docs(guide/Index): add book AngularJS UI Development', 'Matthias and I wrote a book on AngularJS which might be helpful for Angular developers.', '1', null, null, 'codef0rmer', '2014-11-08T13:45:49Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6362', '37', '9972', 'fix($location): dont throw while parsing invalid URLs', 'Fixes #6836 \r\n\r\nNot a critical one but a patch is minimal and someone reported it, so why not...', '1', null, null, 'pkozlowski-opensource', '2014-11-08T15:27:10Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6363', '37', '9973', 'More jscs rules', 'added rule requireSpaceAfterBinaryOperators\r\nadded rule requireSpaceBeforeBinaryOperators\r\nadded rule requireSpacesInConditionalExpression\r\n\r\ncc: @caitp ', '4', null, null, 'hzoo', '2014-11-08T16:40:08Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6364', '37', '9974', 'docs(nav): Highlight current nav-index-listing', 'Color the current nav-index-listing item dark red to make it easier to know where you are.\r\n\r\nCloses #9970', '6', null, null, 'kentcdodds', '2014-11-08T21:55:10Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6365', '37', '9976', 'refactor($location): remove unused arguments', 'There were number unused function arguments around appBase. Those got uncovered as soon as you realise that the `base` argument isn\'t used in the `urlResolve` function: \r\nhttps://github.com/angular/angular.js/blob/50e72fcae143ffa9f519a435278a1319e2cdb5c0/src/ng/urlUtils.js#L65', '2', null, null, 'pkozlowski-opensource', '2014-11-09T09:52:07Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6366', '37', '9979', 'fix($httpBackend): compare timeoutId with undefined in completeRequest', 'httpBackend with ngMock browser.defer can never cancel the first deferredFn because the timeoutId returned by defer for the first fn is a zero value.\r\nCompare timeoutId with undefined fix this issue.', '8', null, null, 'gyx1000', '2014-11-10T11:57:50Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6367', '37', '9983', 'docs(select): minor markdown syntax fix', 'Half the sentence was being highlighted as code.', '1', null, null, 'justincy', '2014-11-10T17:00:15Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6368', '37', '9984', 'filter doesn\'t work when methods are added to Object.prototype', '`$filter(\"filter\")([{\"name\":\"foo\"}], \"foo\")` will return `[]` if properties/methods are added to Object.prototype because the check isn\'t done as it should. \r\n\r\nThis simple change fixes that.', '21', null, null, 'habfast', '2014-11-10T18:08:48Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6369', '37', '9985', 'ng-options is evaluated before ng-if causing invalid \"null\" ', '', '2', null, null, 'divyang4481', '2014-11-10T18:43:14Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6370', '37', '9987', 'Updated IE8 warning about q.js on 1.2', 'added IE8 warning to promise.catch()', '10', null, null, 'mcjffld', '2014-11-10T19:01:59Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6371', '37', '999', 'docs(started): updated to compliment the new homepage', '', '1', null, null, 'bradlygreen', '2012-05-30T04:22:35Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6372', '37', '9990', 'Backport security bugfixes from 1.3 to 1.2', '', '1', null, null, 'chirayuk', '2014-11-10T21:05:00Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6373', '37', '9993', 'fix($httpBackend): fixup patch for #9979', 'Builds ontop of c480462 from #9979', '16', null, null, 'caitp', '2014-11-10T23:47:21Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6374', '37', '9997', '<fix>(input): return original value from formatter if isEmpty, not \'\'', 'Fix the formatter on the input[type=date] to return the original value if the value\r\nevaluates to falsey. It was previously returning an empty string with was causing\r\nthe underlying model to be modified upon binding.\r\n\r\nCloses #9996', '4', null, null, 'EverPresent', '2014-11-11T06:16:57Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6375', '37', '9998', 'feat(ngMaxlength): disable maxlength when not set to a non-negative integer', '1. Previously, setting the maxlength to a negative number, would make all input values invalid (since their length should be less than maxlength, which is impossible).\r\n2. Furthermore, supplying a non-numeric value would set maxlength to 0 (effectively only allowing empty values - although this is not very likely the intended behaviour).\r\n\r\nThe 1st commit fixes (1): Adds support for disabling the max length limit by setting maxlength to a negative number.\r\n\r\nThe 2nd commit \"fixes\" (2): When specifying a non-numeric value for maxlength (e.g. `\"\"`, `null`, `\"abc\"`), the max length limit is disabled (i.e. the validator will return `true` for any input).\r\n\r\nNote that the behaviour implemented in these 2 commits is more inline with how the HTML5 `maxlength` attribute works (both in browsers and according to [the spec](http://dev.w3.org/html5/spec-preview/attributes-common-to-form-controls.html#attr-fe-maxlength)).\r\n\r\nCloses #9874\r\nCloses #9995', '18', null, null, 'gkalpak', '2014-11-11T09:57:17Z', null);
INSERT INTO `angularjs_prj_prs` VALUES ('6376', '37', '9999', 'Update angular-mocks.js', 'Avoid \"No more request expected\" errors on legal tests wih no definitions, by checking definitions.length to be > 0 before throwing new Error', '8', null, null, 'marcolino', '2014-11-11T11:04:16Z', null);