fix(bootstrap): fix the configuration of ExceptionHandler
This commit is contained in:
parent
d58f017226
commit
0d9a1de4d9
|
@ -1,5 +1,5 @@
|
||||||
import {NgZone} from 'angular2/src/core/zone/ng_zone';
|
import {NgZone} from 'angular2/src/core/zone/ng_zone';
|
||||||
import {Type, isBlank, isPresent, assertionsEnabled, print} from 'angular2/src/facade/lang';
|
import {Type, isBlank, isPresent, assertionsEnabled, print, IS_DART} from 'angular2/src/facade/lang';
|
||||||
import {provide, Provider, Injector, OpaqueToken} from 'angular2/src/core/di';
|
import {provide, Provider, Injector, OpaqueToken} from 'angular2/src/core/di';
|
||||||
import {
|
import {
|
||||||
APP_COMPONENT_REF_PROMISE,
|
APP_COMPONENT_REF_PROMISE,
|
||||||
|
@ -412,7 +412,14 @@ export class ApplicationRef_ extends ApplicationRef {
|
||||||
|
|
||||||
var tickResult = PromiseWrapper.then(compRefToken, tick);
|
var tickResult = PromiseWrapper.then(compRefToken, tick);
|
||||||
|
|
||||||
PromiseWrapper.then(tickResult, (_) => {});
|
// THIS MUST ONLY RUN IN DART.
|
||||||
|
// This is required to report an error when no components with a matching selector found.
|
||||||
|
// Otherwise the promise will never be completed.
|
||||||
|
// Doing this in JS causes an extra error message to appear.
|
||||||
|
if (IS_DART) {
|
||||||
|
PromiseWrapper.then(tickResult, (_) => {});
|
||||||
|
}
|
||||||
|
|
||||||
PromiseWrapper.then(tickResult, null,
|
PromiseWrapper.then(tickResult, null,
|
||||||
(err, stackTrace) => completer.reject(err, stackTrace));
|
(err, stackTrace) => completer.reject(err, stackTrace));
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
import {CONST_EXPR} from 'angular2/src/facade/lang';
|
import {CONST_EXPR, IS_DART} from 'angular2/src/facade/lang';
|
||||||
import {provide, Provider, Injector, OpaqueToken} from 'angular2/src/core/di';
|
import {provide, Provider, Injector, OpaqueToken} from 'angular2/src/core/di';
|
||||||
|
|
||||||
import {
|
import {
|
||||||
|
@ -48,7 +48,9 @@ export const BROWSER_PROVIDERS: Array<any /*Type | Provider | any[]*/> = CONST_E
|
||||||
]);
|
]);
|
||||||
|
|
||||||
function _exceptionHandler(): ExceptionHandler {
|
function _exceptionHandler(): ExceptionHandler {
|
||||||
return new ExceptionHandler(DOM, false);
|
// !IS_DART is required because we must rethrow exceptions in JS,
|
||||||
|
// but must not rethrow exceptions in Dart
|
||||||
|
return new ExceptionHandler(DOM, !IS_DART);
|
||||||
}
|
}
|
||||||
|
|
||||||
function _document(): any {
|
function _document(): any {
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
import {CONST_EXPR} from 'angular2/src/facade/lang';
|
import {CONST_EXPR, IS_DART} from 'angular2/src/facade/lang';
|
||||||
import {MessageBus} from 'angular2/src/web_workers/shared/message_bus';
|
import {MessageBus} from 'angular2/src/web_workers/shared/message_bus';
|
||||||
import {NgZone} from 'angular2/src/core/zone/ng_zone';
|
import {NgZone} from 'angular2/src/core/zone/ng_zone';
|
||||||
import {AnchorBasedAppRootUrl} from 'angular2/src/compiler/anchor_based_app_root_url';
|
import {AnchorBasedAppRootUrl} from 'angular2/src/compiler/anchor_based_app_root_url';
|
||||||
|
@ -112,7 +112,7 @@ export function initWebWorkerRenderPlatform(): void {
|
||||||
}
|
}
|
||||||
|
|
||||||
function _exceptionHandler(): ExceptionHandler {
|
function _exceptionHandler(): ExceptionHandler {
|
||||||
return new ExceptionHandler(DOM, false);
|
return new ExceptionHandler(DOM, !IS_DART);
|
||||||
}
|
}
|
||||||
|
|
||||||
function _document(): any {
|
function _document(): any {
|
||||||
|
|
|
@ -125,7 +125,7 @@ export function main() {
|
||||||
|
|
||||||
it('should throw if no element is found', inject([AsyncTestCompleter], (async) => {
|
it('should throw if no element is found', inject([AsyncTestCompleter], (async) => {
|
||||||
var logger = new _ArrayLogger();
|
var logger = new _ArrayLogger();
|
||||||
var exceptionHandler = new ExceptionHandler(logger, IS_DART ? false : true);
|
var exceptionHandler = new ExceptionHandler(logger, !IS_DART);
|
||||||
|
|
||||||
var refPromise =
|
var refPromise =
|
||||||
bootstrap(HelloRootCmp, [provide(ExceptionHandler, {useValue: exceptionHandler})]);
|
bootstrap(HelloRootCmp, [provide(ExceptionHandler, {useValue: exceptionHandler})]);
|
||||||
|
@ -140,7 +140,7 @@ export function main() {
|
||||||
it('should invoke the default exception handler when bootstrap fails',
|
it('should invoke the default exception handler when bootstrap fails',
|
||||||
inject([AsyncTestCompleter], (async) => {
|
inject([AsyncTestCompleter], (async) => {
|
||||||
var logger = new _ArrayLogger();
|
var logger = new _ArrayLogger();
|
||||||
var exceptionHandler = new ExceptionHandler(logger, IS_DART ? false : true);
|
var exceptionHandler = new ExceptionHandler(logger, !IS_DART);
|
||||||
|
|
||||||
var refPromise =
|
var refPromise =
|
||||||
bootstrap(HelloRootCmp, [provide(ExceptionHandler, {useValue: exceptionHandler})]);
|
bootstrap(HelloRootCmp, [provide(ExceptionHandler, {useValue: exceptionHandler})]);
|
||||||
|
|
|
@ -16,7 +16,7 @@ import {Component, Directive, View} from 'angular2/src/core/metadata';
|
||||||
import {DOM} from 'angular2/src/platform/dom/dom_adapter';
|
import {DOM} from 'angular2/src/platform/dom/dom_adapter';
|
||||||
import {provide} from 'angular2/core';
|
import {provide} from 'angular2/core';
|
||||||
import {DOCUMENT} from 'angular2/src/platform/dom/dom_tokens';
|
import {DOCUMENT} from 'angular2/src/platform/dom/dom_tokens';
|
||||||
import {Type} from 'angular2/src/facade/lang';
|
import {Type, IS_DART} from 'angular2/src/facade/lang';
|
||||||
|
|
||||||
import {
|
import {
|
||||||
ROUTER_PROVIDERS,
|
ROUTER_PROVIDERS,
|
||||||
|
@ -46,7 +46,7 @@ export function main() {
|
||||||
el = DOM.createElement('app-cmp', fakeDoc);
|
el = DOM.createElement('app-cmp', fakeDoc);
|
||||||
DOM.appendChild(fakeDoc.body, el);
|
DOM.appendChild(fakeDoc.body, el);
|
||||||
var logger = new _ArrayLogger();
|
var logger = new _ArrayLogger();
|
||||||
var exceptionHandler = new ExceptionHandler(logger, true);
|
var exceptionHandler = new ExceptionHandler(logger, !IS_DART);
|
||||||
testBindings = [
|
testBindings = [
|
||||||
ROUTER_PROVIDERS,
|
ROUTER_PROVIDERS,
|
||||||
provide(LocationStrategy, {useClass: MockLocationStrategy}),
|
provide(LocationStrategy, {useClass: MockLocationStrategy}),
|
||||||
|
|
Loading…
Reference in New Issue