<p dir="auto">Upgrading my app from alpha34 to alpha35, one directive I had with a selector <code class="notranslate">[on-init]</code> was not working anymore. I realize it must be conflicting in the parser with the canonical syntax for events, but it was working until alpha35 and the error we have now is not really explicit:</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="TypeError: Cannot set property 'lastInBinding' of undefined
at Function._ConvertAstIntoProtoRecords.create (http://me:8080/jspm_packages/npm/angular2@2.0.0-alpha.35/src/change_detection/proto_change_detector.js:97:39)
at http://me:8080/jspm_packages/npm/angular2@2.0.0-alpha.35/src/change_detection/proto_change_detector.js:35:47"><pre class="notranslate"><code class="notranslate">TypeError: Cannot set property 'lastInBinding' of undefined
at Function._ConvertAstIntoProtoRecords.create (http://me:8080/jspm_packages/npm/angular2@2.0.0-alpha.35/src/change_detection/proto_change_detector.js:97:39)
at http://me:8080/jspm_packages/npm/angular2@2.0.0-alpha.35/src/change_detection/proto_change_detector.js:35:47
</code></pre></div>
<p dir="auto">Maybe the error could be more explicit and the doc warns about not using these prefixes (<code class="notranslate">on</code>, <code class="notranslate">var</code>, <code class="notranslate">bind</code>) in attribute selectors?</p>
<p dir="auto">Related: <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="101190599" data-permission-text="Title is private" data-url="https://github.com/angular/angular/issues/3664" data-hovercard-type="issue" data-hovercard-url="/angular/angular/issues/3664/hovercard" href="https://github.com/angular/angular/issues/3664">#3664</a> (should be fixed together)</p>
<p dir="auto">I have a template with the following element:</p>
<div class="highlight highlight-text-html-basic notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="&lt;input type=&quot;file&quot; id=&quot;picture&quot; accept=&quot;image/*&quot;
                           (change)=&quot;onFileSelected(f, $event)&quot;
                           (fileread)&gt;"><pre class="notranslate"><span class="pl-kos">&lt;</span><span class="pl-ent">input</span> <span class="pl-c1">type</span>="<span class="pl-s">file</span>" <span class="pl-c1">id</span>="<span class="pl-s">picture</span>" <span class="pl-c1">accept</span>="<span class="pl-s">image/*</span>"
                           <span class="pl-c1">(change)</span>="<span class="pl-s">onFileSelected(f, $event)</span>"
                           <span class="pl-c1">(fileread)</span><span class="pl-kos">&gt;</span></pre></div>
<p dir="auto">On alpha 33 it worked great.<br>
On alpha35 it produces the following runtime error:</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="EXCEPTION: TypeError: Cannot set property 'lastInBinding' of undefined
angular2.js:13030 STACKTRACE:
angular2.js:13030 TypeError: Cannot set property 'lastInBinding' of undefined
    at Function.execute._ConvertAstIntoProtoRecords.create (http://localhost:5555/lib/angular2.js:18104:47)
    at http://localhost:5555/lib/angular2.js:17730:49
    at Array.map (native)
    at createEventRecords (http://localhost:5555/lib/angular2.js:17729:36)
    at JitProtoChangeDetector.execute.JitProtoChangeDetector._createFactory (http://localhost:5555/lib/angular2.js:17575:39)
    at new JitProtoChangeDetector (http://localhost:5555/lib/angular2.js:17567:32)
    at $__1.execute.JitChangeDetection.createProtoChangeDetector (http://localhost:5555/lib/angular2.js:10323:20)
    at http://localhost:5555/lib/angular2.js:15553:42
    at Array.map (native)
    at Function.execute.ListWrapper.map (http://localhost:5555/lib/angular2.js:6374:26)"><pre class="notranslate"><code class="notranslate">EXCEPTION: TypeError: Cannot set property 'lastInBinding' of undefined
angular2.js:13030 STACKTRACE:
angular2.js:13030 TypeError: Cannot set property 'lastInBinding' of undefined
    at Function.execute._ConvertAstIntoProtoRecords.create (http://localhost:5555/lib/angular2.js:18104:47)
    at http://localhost:5555/lib/angular2.js:17730:49
    at Array.map (native)
    at createEventRecords (http://localhost:5555/lib/angular2.js:17729:36)
    at JitProtoChangeDetector.execute.JitProtoChangeDetector._createFactory (http://localhost:5555/lib/angular2.js:17575:39)
    at new JitProtoChangeDetector (http://localhost:5555/lib/angular2.js:17567:32)
    at $__1.execute.JitChangeDetection.createProtoChangeDetector (http://localhost:5555/lib/angular2.js:10323:20)
    at http://localhost:5555/lib/angular2.js:15553:42
    at Array.map (native)
    at Function.execute.ListWrapper.map (http://localhost:5555/lib/angular2.js:6374:26)
</code></pre></div>
<p dir="auto">The following modification still produces the error:</p>
<div class="highlight highlight-text-html-basic notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="&lt;input type=&quot;file&quot; id=&quot;picture&quot; accept=&quot;image/*&quot;
                           (change)=&quot;onFileSelected(f, $event)&quot;
                           (fileread)=&quot;&quot;&gt;"><pre class="notranslate"><span class="pl-kos">&lt;</span><span class="pl-ent">input</span> <span class="pl-c1">type</span>="<span class="pl-s">file</span>" <span class="pl-c1">id</span>="<span class="pl-s">picture</span>" <span class="pl-c1">accept</span>="<span class="pl-s">image/*</span>"
                           <span class="pl-c1">(change)</span>="<span class="pl-s">onFileSelected(f, $event)</span>"
                           <span class="pl-c1">(fileread)</span>=""<span class="pl-kos">&gt;</span></pre></div>
<p dir="auto">This one works</p>
<div class="highlight highlight-text-html-basic notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="&lt;input type=&quot;file&quot; id=&quot;picture&quot; accept=&quot;image/*&quot;
                           (change)=&quot;onFileSelected(f, $event)&quot;
                           (fileread)=&quot;x&quot;&gt;"><pre class="notranslate"><span class="pl-kos">&lt;</span><span class="pl-ent">input</span> <span class="pl-c1">type</span>="<span class="pl-s">file</span>" <span class="pl-c1">id</span>="<span class="pl-s">picture</span>" <span class="pl-c1">accept</span>="<span class="pl-s">image/*</span>"
                           <span class="pl-c1">(change)</span>="<span class="pl-s">onFileSelected(f, $event)</span>"
                           <span class="pl-c1">(fileread)</span>="<span class="pl-s">x</span>"<span class="pl-kos">&gt;</span></pre></div>