<p dir="auto">Safari throws the following error on page load. Chrome + Firefox work fine.</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="[Error] TypeError: undefined is not a function (evaluating '$__2.next()')
    from (traceur-runtime.js, line 2738)
    values (angular2.js, line 4710)
    _createListOfBindings (angular2.js, line 23646)
    resolve (angular2.js, line 24265)
    resolveAndCreate (angular2.js, line 24269)
    (anonymous function) (dev.minds.io, line 45)
    global code (dev.minds.io, line 61)
    appendChild ([native code], line 0)
    doEval (system.src.js, line 2347)
    __eval (system.src.js, line 2317)
    exec (system.src.js, line 339)
    execute (system.src.js, line 1222)
    linkDynamicModule (system.src.js, line 669)
    getModule (system.src.js, line 637)
    (anonymous function) (system.src.js, line 673)
    (anonymous function) (dev.minds.io, line 17)
    global code (dev.minds.io, line 52)
    appendChild ([native code], line 0)
    doEval (system.src.js, line 2347)
    __eval (system.src.js, line 2317)
    exec (system.src.js, line 339)
    execute (system.src.js, line 1222)
    linkDynamicModule (system.src.js, line 669)
    getModule (system.src.js, line 637)
    (anonymous function) (system.src.js, line 673)
    (anonymous function) (dev.minds.io, line 15)
    global code (dev.minds.io, line 56)
    appendChild ([native code], line 0)
    doEval (system.src.js, line 2347)
    __eval (system.src.js, line 2317)
    exec (system.src.js, line 339)
    execute (system.src.js, line 1222)
    linkDynamicModule (system.src.js, line 669)
    link (system.src.js, line 528)
    execute (system.src.js, line 852)
    o (es6-module-loader-sans-promises.js, line 7)
    p (es6-module-loader-sans-promises.js, line 7)
    j (es6-module-loader-sans-promises.js, line 7)
    k (es6-module-loader-sans-promises.js, line 7)
    (anonymous function) (es6-module-loader-sans-promises.js, line 7)
    run (zone.js, line 113)
    zoneBoundFn (zone.js, line 86)
    PromiseResolutionHandlerFunction ([native code], line 0)
[Error] Error evaluating http://dev.io/src/services/session.js
TypeError: undefined is not a function (evaluating '$__2.next()')
    __eval (system.src.js, line 2325)
    exec (system.src.js, line 339)
    execute (system.src.js, line 1222)
    linkDynamicModule (system.src.js, line 669)
    getModule (system.src.js, line 637)
    (anonymous function) (system.src.js, line 673)
    (anonymous function) (dev.minds.io, line 17)
    global code (dev.minds.io, line 52)
    appendChild ([native code], line 0)
    doEval (system.src.js, line 2347)
    __eval (system.src.js, line 2317)
    exec (system.src.js, line 339)
    execute (system.src.js, line 1222)
    linkDynamicModule (system.src.js, line 669)
    getModule (system.src.js, line 637)
    (anonymous function) (system.src.js, line 673)
    (anonymous function) (dev.minds.io, line 15)
    global code (dev.minds.io, line 56)
    appendChild ([native code], line 0)
    doEval (system.src.js, line 2347)
    __eval (system.src.js, line 2317)
    exec (system.src.js, line 339)
    execute (system.src.js, line 1222)
    linkDynamicModule (system.src.js, line 669)
    link (system.src.js, line 528)
    execute (system.src.js, line 852)
    o (es6-module-loader-sans-promises.js, line 7)
    p (es6-module-loader-sans-promises.js, line 7)
    j (es6-module-loader-sans-promises.js, line 7)
    k (es6-module-loader-sans-promises.js, line 7)
    (anonymous function) (es6-module-loader-sans-promises.js, line 7)
    run (zone.js, line 113)
    zoneBoundFn (zone.js, line 86)
    PromiseResolutionHandlerFunction ([native code], line 0)
[Error] Error evaluating http://dev.minds.io/src/components/topbar.js
Error evaluating http://dev.minds.io/src/services/session.js
TypeError: undefined is not a function (evaluating '$__2.next()')"><pre class="notranslate"><code class="notranslate">[Error] TypeError: undefined is not a function (evaluating '$__2.next()')
    from (traceur-runtime.js, line 2738)
    values (angular2.js, line 4710)
    _createListOfBindings (angular2.js, line 23646)
    resolve (angular2.js, line 24265)
    resolveAndCreate (angular2.js, line 24269)
    (anonymous function) (dev.minds.io, line 45)
    global code (dev.minds.io, line 61)
    appendChild ([native code], line 0)
    doEval (system.src.js, line 2347)
    __eval (system.src.js, line 2317)
    exec (system.src.js, line 339)
    execute (system.src.js, line 1222)
    linkDynamicModule (system.src.js, line 669)
    getModule (system.src.js, line 637)
    (anonymous function) (system.src.js, line 673)
    (anonymous function) (dev.minds.io, line 17)
    global code (dev.minds.io, line 52)
    appendChild ([native code], line 0)
    doEval (system.src.js, line 2347)
    __eval (system.src.js, line 2317)
    exec (system.src.js, line 339)
    execute (system.src.js, line 1222)
    linkDynamicModule (system.src.js, line 669)
    getModule (system.src.js, line 637)
    (anonymous function) (system.src.js, line 673)
    (anonymous function) (dev.minds.io, line 15)
    global code (dev.minds.io, line 56)
    appendChild ([native code], line 0)
    doEval (system.src.js, line 2347)
    __eval (system.src.js, line 2317)
    exec (system.src.js, line 339)
    execute (system.src.js, line 1222)
    linkDynamicModule (system.src.js, line 669)
    link (system.src.js, line 528)
    execute (system.src.js, line 852)
    o (es6-module-loader-sans-promises.js, line 7)
    p (es6-module-loader-sans-promises.js, line 7)
    j (es6-module-loader-sans-promises.js, line 7)
    k (es6-module-loader-sans-promises.js, line 7)
    (anonymous function) (es6-module-loader-sans-promises.js, line 7)
    run (zone.js, line 113)
    zoneBoundFn (zone.js, line 86)
    PromiseResolutionHandlerFunction ([native code], line 0)
[Error] Error evaluating http://dev.io/src/services/session.js
TypeError: undefined is not a function (evaluating '$__2.next()')
    __eval (system.src.js, line 2325)
    exec (system.src.js, line 339)
    execute (system.src.js, line 1222)
    linkDynamicModule (system.src.js, line 669)
    getModule (system.src.js, line 637)
    (anonymous function) (system.src.js, line 673)
    (anonymous function) (dev.minds.io, line 17)
    global code (dev.minds.io, line 52)
    appendChild ([native code], line 0)
    doEval (system.src.js, line 2347)
    __eval (system.src.js, line 2317)
    exec (system.src.js, line 339)
    execute (system.src.js, line 1222)
    linkDynamicModule (system.src.js, line 669)
    getModule (system.src.js, line 637)
    (anonymous function) (system.src.js, line 673)
    (anonymous function) (dev.minds.io, line 15)
    global code (dev.minds.io, line 56)
    appendChild ([native code], line 0)
    doEval (system.src.js, line 2347)
    __eval (system.src.js, line 2317)
    exec (system.src.js, line 339)
    execute (system.src.js, line 1222)
    linkDynamicModule (system.src.js, line 669)
    link (system.src.js, line 528)
    execute (system.src.js, line 852)
    o (es6-module-loader-sans-promises.js, line 7)
    p (es6-module-loader-sans-promises.js, line 7)
    j (es6-module-loader-sans-promises.js, line 7)
    k (es6-module-loader-sans-promises.js, line 7)
    (anonymous function) (es6-module-loader-sans-promises.js, line 7)
    run (zone.js, line 113)
    zoneBoundFn (zone.js, line 86)
    PromiseResolutionHandlerFunction ([native code], line 0)
[Error] Error evaluating http://dev.minds.io/src/components/topbar.js
Error evaluating http://dev.minds.io/src/services/session.js
TypeError: undefined is not a function (evaluating '$__2.next()')
</code></pre></div>
<p dir="auto">Topbar.ts:</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="import { Component, View, NgIf} from 'angular2/angular2';
import { RouterLink } from 'angular2/router';
import { Material } from 'src/directives/material';
import { Storage } from 'src/services/storage';
import { Sidebar } from 'src/services/ui/sidebar';
import { SessionFactory } from 'src/services/session';

@Component({
  selector: 'topbar',
  viewInjector: [ Storage, Sidebar ]
})
@View({
  templateUrl: 'templates/components/topbar.html',
  directives: [ NgIf, RouterLink, Material ]
})

export class Topbar {
    loggedin = false;
    session = SessionFactory.build();

    constructor(public storage: Storage, public sidebar : Sidebar){
        this.showLogin();
    }

    /**
     * Determine if login button should be shown
     */
    showLogin(){
        var self = this;
        this.loggedin = this.session.isLoggedIn((loggedin) =&gt; {
            console.log(loggedin)
            self.loggedin = loggedin;
            });
    }

    /**
     * Open the navigation
     */
    openNav(){
        this.sidebar.open();
    }
}"><pre class="notranslate"><code class="notranslate">import { Component, View, NgIf} from 'angular2/angular2';
import { RouterLink } from 'angular2/router';
import { Material } from 'src/directives/material';
import { Storage } from 'src/services/storage';
import { Sidebar } from 'src/services/ui/sidebar';
import { SessionFactory } from 'src/services/session';

@Component({
  selector: 'topbar',
  viewInjector: [ Storage, Sidebar ]
})
@View({
  templateUrl: 'templates/components/topbar.html',
  directives: [ NgIf, RouterLink, Material ]
})

export class Topbar {
    loggedin = false;
    session = SessionFactory.build();

    constructor(public storage: Storage, public sidebar : Sidebar){
        this.showLogin();
    }

    /**
     * Determine if login button should be shown
     */
    showLogin(){
        var self = this;
        this.loggedin = this.session.isLoggedIn((loggedin) =&gt; {
            console.log(loggedin)
            self.loggedin = loggedin;
            });
    }

    /**
     * Open the navigation
     */
    openNav(){
        this.sidebar.open();
    }
}
</code></pre></div>
<p dir="auto">Session.ts:</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="/**
 * Sesions
 */
import { EventEmitter, Injector, bind } from 'angular2/angular2';

export class Session {
    loggedinEmitter = new EventEmitter();
    userEmitter = new EventEmitter();

    /**
     * Return if loggedin, with an optional listener
     */
    isLoggedIn(observe: any = null){

        if(observe){
            this.loggedinEmitter.observer({next: (is) =&gt; {
                if(is)
                    observe(true);
                else
                    observe(false);
                }
            });
        }

        if(window.Minds.LoggedIn)
            return true;

        return false
    }

    /**
     * Get the loggedin user
     */
    getLoggedInUser(observe: any = null){

        if(observe){
            this.userEmitter.observer({next: (user) =&gt; {
                observe(user);
            }});
        }

        if(window.Minds.user)
            return window.Minds.user;

        return false;
    }

    /**
     * Emit login event
     */
    login(user : any = null){
        this.loggedinEmitter.next(true);
        this.userEmitter.next(user);
    }

    /**
     * Emit logout event
     */
    logout(){
        this.loggedinEmitter.next(false);
        this.userEmitter.next(null);
    }

}

var injector = Injector.resolveAndCreate([
    bind(Session).toFactory(() =&gt; {
        return new Session();
    })
]);

export class SessionFactory {
    static build(){
        return injector.get(Session);
    }
}"><pre class="notranslate"><code class="notranslate">/**
 * Sesions
 */
import { EventEmitter, Injector, bind } from 'angular2/angular2';

export class Session {
    loggedinEmitter = new EventEmitter();
    userEmitter = new EventEmitter();

    /**
     * Return if loggedin, with an optional listener
     */
    isLoggedIn(observe: any = null){

        if(observe){
            this.loggedinEmitter.observer({next: (is) =&gt; {
                if(is)
                    observe(true);
                else
                    observe(false);
                }
            });
        }

        if(window.Minds.LoggedIn)
            return true;

        return false
    }

    /**
     * Get the loggedin user
     */
    getLoggedInUser(observe: any = null){

        if(observe){
            this.userEmitter.observer({next: (user) =&gt; {
                observe(user);
            }});
        }

        if(window.Minds.user)
            return window.Minds.user;

        return false;
    }

    /**
     * Emit login event
     */
    login(user : any = null){
        this.loggedinEmitter.next(true);
        this.userEmitter.next(user);
    }

    /**
     * Emit logout event
     */
    logout(){
        this.loggedinEmitter.next(false);
        this.userEmitter.next(null);
    }

}

var injector = Injector.resolveAndCreate([
    bind(Session).toFactory(() =&gt; {
        return new Session();
    })
]);

export class SessionFactory {
    static build(){
        return injector.get(Session);
    }
}
</code></pre></div>
<p dir="auto">To repro: Load the hello world example in safari.<br>
Stack trace: <a href="https://gist.github.com/jteplitz602/26f330e39b60d99a69d3">https://gist.github.com/jteplitz602/26f330e39b60d99a69d3</a></p>