Duplicates in ngOptions
<p>I am using AngularJS version <code>1.4.7</code> and have simple AngularJS controller which contains array of objects. I would like to display these objects as options in select by <code>ngOptions</code>.</p>

<p>The problem is that every object is duplicate and I don't know why. This duplicate is presented in the select only, the source object looks fine. </p>

<p><div class="snippet" data-lang="js" data-hide="false">
<div class="snippet-code">
<pre class="snippet-code-js lang-js prettyprint-override"><code>angular
  .module('demo', [])
  .controller('DemoCtrl', DemoCtrl);

function DemoCtrl() {
  var vm = this;
  
  vm.demoOptions = [
    {value: 1, label: 'Demo 1'},
    {value: 2, label: 'Demo 2'},
    {value: 3, label: 'Demo 3'}
  ];
  vm.selected = null;;
}</code></pre>
<pre class="snippet-code-html lang-html prettyprint-override"><code>&lt;script src="//cdnjs.cloudflare.com/ajax/libs/angular.js/1.4.7/angular.min.js"&gt;&lt;/script&gt;

&lt;div ng-app="demo" ng-controller="DemoCtrl as vm"&gt;
  &lt;select ng-options="item as item.label for item in vm.demoOptions track by item.value" ng-model="vm.selected"&gt;
    &lt;option value="" selected ng-if="vm.selected === null"&gt;-- select --&lt;/option&gt;
  &lt;/select&gt;
  &lt;p ng-if="vm.selected !== null"&gt;Selected item: &lt;code&gt;{{vm.selected}}&lt;/code&gt;&lt;/p&gt;
  &lt;p ng-if="vm.selected === null"&gt;No item is selected.&lt;/p&gt;
  &lt;pre&gt;vm.demoOptions == {{vm.demoOptions|json}}&lt;/pre&gt;
&lt;/div&gt;</code></pre>
</div>
</div>
</p>

<p>Is it a bug? How can I remove duplicates without using a filter?</p>

<p>Note: This problem has occurred after update AngularJS from version <code>1.3.19</code> to <code>1.4.7</code>. I read the changelog but it tells only about addition of <code>track by</code> - I added it but with no effect.</p>