refactor(VmTurnZone): renamed to NgZone

BREAKING CHANGE:

VmTurnZone has been renamed to NgZone.

- The public API has not chnanged,
- The "outer" zone is now named "mount" zone (private to NgZone).
This commit is contained in:
Victor Berchet 2015-05-07 15:38:57 +02:00
parent c75e216871
commit e11c20541a
11 changed files with 83 additions and 83 deletions

View File

@ -12,7 +12,7 @@ import {TemplateResolver} from './compiler/template_resolver';
import {DirectiveMetadataReader} from './compiler/directive_metadata_reader'; import {DirectiveMetadataReader} from './compiler/directive_metadata_reader';
import {List, ListWrapper} from 'angular2/src/facade/collection'; import {List, ListWrapper} from 'angular2/src/facade/collection';
import {Promise, PromiseWrapper} from 'angular2/src/facade/async'; import {Promise, PromiseWrapper} from 'angular2/src/facade/async';
import {VmTurnZone} from 'angular2/src/core/zone/vm_turn_zone'; import {NgZone} from 'angular2/src/core/zone/ng_zone';
import {LifeCycle} from 'angular2/src/core/life_cycle/life_cycle'; import {LifeCycle} from 'angular2/src/core/life_cycle/life_cycle';
import {ShadowDomStrategy} from 'angular2/src/render/dom/shadow_dom/shadow_dom_strategy'; import {ShadowDomStrategy} from 'angular2/src/render/dom/shadow_dom/shadow_dom_strategy';
import {EmulatedUnscopedShadowDomStrategy} from 'angular2/src/render/dom/shadow_dom/emulated_unscoped_shadow_dom_strategy'; import {EmulatedUnscopedShadowDomStrategy} from 'angular2/src/render/dom/shadow_dom/emulated_unscoped_shadow_dom_strategy';
@ -77,10 +77,10 @@ function _injectorBindings(appComponentType): List<Binding> {
bind(appComponentType).toFactory((ref) => ref.instance, bind(appComponentType).toFactory((ref) => ref.instance,
[appComponentRefToken]), [appComponentRefToken]),
bind(LifeCycle).toFactory((exceptionHandler) => new LifeCycle(exceptionHandler, null, assertionsEnabled()),[ExceptionHandler]), bind(LifeCycle).toFactory((exceptionHandler) => new LifeCycle(exceptionHandler, null, assertionsEnabled()),[ExceptionHandler]),
bind(EventManager).toFactory((zone) => { bind(EventManager).toFactory((ngZone) => {
var plugins = [new HammerGesturesPlugin(), new KeyEventsPlugin(), new DomEventsPlugin()]; var plugins = [new HammerGesturesPlugin(), new KeyEventsPlugin(), new DomEventsPlugin()];
return new EventManager(plugins, zone); return new EventManager(plugins, ngZone);
}, [VmTurnZone]), }, [NgZone]),
bind(ShadowDomStrategy).toFactory( bind(ShadowDomStrategy).toFactory(
(styleUrlResolver, doc) => new EmulatedUnscopedShadowDomStrategy(styleUrlResolver, doc.head), (styleUrlResolver, doc) => new EmulatedUnscopedShadowDomStrategy(styleUrlResolver, doc.head),
[StyleUrlResolver, DOCUMENT_TOKEN]), [StyleUrlResolver, DOCUMENT_TOKEN]),
@ -123,7 +123,7 @@ function _injectorBindings(appComponentType): List<Binding> {
]; ];
} }
function _createVmZone(givenReporter:Function): VmTurnZone { function _createNgZone(givenReporter:Function): NgZone {
var defaultErrorReporter = (exception, stackTrace) => { var defaultErrorReporter = (exception, stackTrace) => {
var longStackTrace = ListWrapper.join(stackTrace, "\n\n-----async gap-----\n"); var longStackTrace = ListWrapper.join(stackTrace, "\n\n-----async gap-----\n");
DOM.logError(`${exception}\n\n${longStackTrace}`); DOM.logError(`${exception}\n\n${longStackTrace}`);
@ -132,7 +132,7 @@ function _createVmZone(givenReporter:Function): VmTurnZone {
var reporter = isPresent(givenReporter) ? givenReporter : defaultErrorReporter; var reporter = isPresent(givenReporter) ? givenReporter : defaultErrorReporter;
var zone = new VmTurnZone({enableLongStackTrace: assertionsEnabled()}); var zone = new NgZone({enableLongStackTrace: assertionsEnabled()});
zone.initCallbacks({onErrorHandler: reporter}); zone.initCallbacks({onErrorHandler: reporter});
return zone; return zone;
} }
@ -247,7 +247,7 @@ export function bootstrap(appComponentType: Type,
BrowserDomAdapter.makeCurrent(); BrowserDomAdapter.makeCurrent();
var bootstrapProcess = PromiseWrapper.completer(); var bootstrapProcess = PromiseWrapper.completer();
var zone = _createVmZone(errorReporter); var zone = _createNgZone(errorReporter);
zone.run(() => { zone.run(() => {
// TODO(rado): prepopulate template cache, so applications with only // TODO(rado): prepopulate template cache, so applications with only
// index.html and main.js are possible. // index.html and main.js are possible.
@ -295,11 +295,11 @@ export class ApplicationRef {
} }
} }
function _createAppInjector(appComponentType: Type, bindings: List<Binding>, zone: VmTurnZone): Injector { function _createAppInjector(appComponentType: Type, bindings: List<Binding>, zone: NgZone): Injector {
if (isBlank(_rootInjector)) _rootInjector = Injector.resolveAndCreate(_rootBindings); if (isBlank(_rootInjector)) _rootInjector = Injector.resolveAndCreate(_rootBindings);
var mergedBindings = isPresent(bindings) ? var mergedBindings = isPresent(bindings) ?
ListWrapper.concat(_injectorBindings(appComponentType), bindings) : ListWrapper.concat(_injectorBindings(appComponentType), bindings) :
_injectorBindings(appComponentType); _injectorBindings(appComponentType);
ListWrapper.push(mergedBindings, bind(VmTurnZone).toValue(zone)); ListWrapper.push(mergedBindings, bind(NgZone).toValue(zone));
return _rootInjector.resolveAndCreateChild(mergedBindings); return _rootInjector.resolveAndCreateChild(mergedBindings);
} }

View File

@ -1,6 +1,6 @@
import {Injectable} from 'angular2/src/di/annotations_impl'; import {Injectable} from 'angular2/src/di/annotations_impl';
import {ChangeDetector} from 'angular2/change_detection'; import {ChangeDetector} from 'angular2/change_detection';
import {VmTurnZone} from 'angular2/src/core/zone/vm_turn_zone'; import {NgZone} from 'angular2/src/core/zone/ng_zone';
import {ExceptionHandler} from 'angular2/src/core/exception_handler'; import {ExceptionHandler} from 'angular2/src/core/exception_handler';
import {isPresent} from 'angular2/src/facade/lang'; import {isPresent} from 'angular2/src/facade/lang';
@ -46,7 +46,7 @@ export class LifeCycle {
/** /**
* @private * @private
*/ */
registerWith(zone:VmTurnZone, changeDetector:ChangeDetector = null) { registerWith(zone:NgZone, changeDetector:ChangeDetector = null) {
if (isPresent(changeDetector)) { if (isPresent(changeDetector)) {
this._changeDetector=changeDetector; this._changeDetector=changeDetector;
} }

View File

@ -1,6 +1,6 @@
// TODO(vicb): implement this class properly // TODO(vicb): implement this class properly
// The current stub implementation is only here to please cjs tests // The current stub implementation is only here to please cjs tests
export class VmTurnZone { export class NgZone {
constructor({enableLongStackTrace}) { constructor({enableLongStackTrace}) {
} }

View File

@ -12,20 +12,20 @@ import 'package:stack_trace/stack_trace.dart' show Chain;
* *
* A VM turn consist of a single macrotask followed 0 to many microtasks. * A VM turn consist of a single macrotask followed 0 to many microtasks.
* *
* The wrapper maintains an "inner" and "outer" `Zone`. The application code will executes * The wrapper maintains an "inner" and "mount" `Zone`. The application code will executes
* in the "inner" zone unless `runOutsideAngular` is explicitely called. * in the "inner" zone unless `runOutsideAngular` is explicitely called.
* *
* A typical application will create a singleton `VmTurnZone`. The outer `Zone` is a fork of the root * A typical application will create a singleton `NgZone`. The mount zone is the `Zone` where the singleton has been
* `Zone`. The default `onTurnDone` runs the Angular change detection. * instantiated. The default `onTurnDone` runs the Angular change detection.
*/ */
class VmTurnZone { class NgZone {
Function _onTurnStart; Function _onTurnStart;
Function _onTurnDone; Function _onTurnDone;
Function _onErrorHandler; Function _onErrorHandler;
// Code executed in _outerZone does not trigger the onTurnDone. // Code executed in _mountZone does not trigger the onTurnDone.
Zone _outerZone; Zone _mountZone;
// _innerZone is the child of _outerZone. Any code executed in this zone will trigger the // _innerZone is the child of _mountZone. Any code executed in this zone will trigger the
// onTurnDone hook at the end of the current VM turn. // onTurnDone hook at the end of the current VM turn.
Zone _innerZone; Zone _innerZone;
@ -42,14 +42,14 @@ class VmTurnZone {
/** /**
* Associates with this * Associates with this
* *
* - an "outer" [Zone], which is a the one that created this. * - a "mount" [Zone], which is a the one that instantiated this.
* - an "inner" [Zone], which is a child of the outer [Zone]. * - an "inner" [Zone], which is a child of the mount [Zone].
* *
* @param {bool} enableLongStackTrace whether to enable long stack trace. They should only be * @param {bool} enableLongStackTrace whether to enable long stack trace. They should only be
* enabled in development mode as they significantly impact perf. * enabled in development mode as they significantly impact perf.
*/ */
VmTurnZone({bool enableLongStackTrace}) { NgZone({bool enableLongStackTrace}) {
_outerZone = Zone.current; _mountZone = Zone.current;
if (enableLongStackTrace) { if (enableLongStackTrace) {
_innerZone = Chain.capture( _innerZone = Chain.capture(
@ -68,7 +68,7 @@ class VmTurnZone {
* Initializes the zone hooks. * Initializes the zone hooks.
* *
* The given error handler should re-throw the passed exception. Otherwise, exceptions will not * The given error handler should re-throw the passed exception. Otherwise, exceptions will not
* propagate outside of the [VmTurnZone] and can alter the application execution flow. * propagate outside of the [NgZone] and can alter the application execution flow.
* Not re-throwing could be used to help testing the code or advanced use cases. * Not re-throwing could be used to help testing the code or advanced use cases.
* *
* @param {Function} onTurnStart called before code executes in the inner zone for each VM turn * @param {Function} onTurnStart called before code executes in the inner zone for each VM turn
@ -88,7 +88,7 @@ class VmTurnZone {
* Angular's auto digest mechanism. * Angular's auto digest mechanism.
* *
* ``` * ```
* VmTurnZone zone = <ref to the application zone>; * NgZone zone = <ref to the application zone>;
* *
* void functionCalledFromJS() { * void functionCalledFromJS() {
* zone.run(() { * zone.run(() {
@ -105,13 +105,13 @@ class VmTurnZone {
} }
/** /**
* Runs `fn` in the outer zone and returns whatever it returns. * Runs `fn` in the mount zone and returns whatever it returns.
* *
* In a typical app where the inner zone is the Angular zone, this allows one to escape Angular's * In a typical app where the inner zone is the Angular zone, this allows one to escape Angular's
* auto-digest mechanism. * auto-digest mechanism.
* *
* ``` * ```
* void myFunction(VmTurnZone zone, Element element) { * void myFunction(NgZone zone, Element element) {
* element.onClick.listen(() { * element.onClick.listen(() {
* // auto-digest will run after element click. * // auto-digest will run after element click.
* }); * });
@ -124,7 +124,7 @@ class VmTurnZone {
* ``` * ```
*/ */
dynamic runOutsideAngular(fn()) { dynamic runOutsideAngular(fn()) {
return _outerZone.run(fn); return _mountZone.run(fn);
} }
void _maybeStartVmTurn(ZoneDelegate parent) { void _maybeStartVmTurn(ZoneDelegate parent) {

View File

@ -4,18 +4,18 @@ import {normalizeBlank, isPresent, global} from 'angular2/src/facade/lang';
/** /**
* A wrapper around zones that lets you schedule tasks after it has executed a task. * A wrapper around zones that lets you schedule tasks after it has executed a task.
* *
* The wrapper maintains an "inner" and "outer" `Zone`. The application code will executes * The wrapper maintains an "inner" and an "mount" `Zone`. The application code will executes
* in the "inner" zone unless `runOutsideAngular` is explicitely called. * in the "inner" zone unless `runOutsideAngular` is explicitely called.
* *
* A typical application will create a singleton `VmTurnZone`. The outer `Zone` is a fork of the root * A typical application will create a singleton `NgZone`. The outer `Zone` is a fork of the root
* `Zone`. The default `onTurnDone` runs the Angular change detection. * `Zone`. The default `onTurnDone` runs the Angular change detection.
* *
* @exportedAs angular2/core * @exportedAs angular2/core
*/ */
export class VmTurnZone { export class NgZone {
// Code executed in _outerZone does not trigger the onTurnDone. // Code executed in _mountZone does not trigger the onTurnDone.
_outerZone; _mountZone;
// _innerZone is the child of _outerZone. Any code executed in this zone will trigger the // _innerZone is the child of _mountZone. Any code executed in this zone will trigger the
// onTurnDone hook at the end of the current VM turn. // onTurnDone hook at the end of the current VM turn.
_innerZone; _innerZone;
@ -23,11 +23,11 @@ export class VmTurnZone {
_onTurnDone:Function; _onTurnDone:Function;
_onErrorHandler:Function; _onErrorHandler:Function;
// Number of microtasks pending from _outerZone (& descendants) // Number of microtasks pending from _innerZone (& descendants)
_pendingMicrotask: number; _pendingMicrotask: number;
// Whether some code has been executed in the _innerZone (& descendants) in the current turn // Whether some code has been executed in the _innerZone (& descendants) in the current turn
_hasExecutedCodeInInnerZone: boolean; _hasExecutedCodeInInnerZone: boolean;
// run() call depth in _outerZone. 0 at the end of a macrotask // run() call depth in _mountZone. 0 at the end of a macrotask
// zone.run(() => { // top-level call // zone.run(() => { // top-level call
// zone.run(() => {}); // nested call -> in-turn // zone.run(() => {}); // nested call -> in-turn
// }); // });
@ -36,8 +36,8 @@ export class VmTurnZone {
/** /**
* Associates with this * Associates with this
* *
* - an "outer" zone, which is a child of the one that created this. * - a "root" zone, which the one that instantiated this.
* - an "inner" zone, which is a child of the outer zone. * - an "inner" zone, which is a child of the root zone.
* *
* @param {bool} enableLongStackTrace whether to enable long stack trace. They should only be * @param {bool} enableLongStackTrace whether to enable long stack trace. They should only be
* enabled in development mode as they significantly impact perf. * enabled in development mode as they significantly impact perf.
@ -51,8 +51,8 @@ export class VmTurnZone {
this._hasExecutedCodeInInnerZone = false; this._hasExecutedCodeInInnerZone = false;
this._nestedRun = 0; this._nestedRun = 0;
this._outerZone = global.zone; this._mountZone = global.zone;
this._innerZone = this._createInnerZone(this._outerZone, enableLongStackTrace) this._innerZone = this._createInnerZone(this._mountZone, enableLongStackTrace)
} }
/** /**
@ -75,7 +75,7 @@ export class VmTurnZone {
* Angular's auto digest mechanism. * Angular's auto digest mechanism.
* *
* ``` * ```
* var zone: VmTurnZone = [ref to the application zone]; * var zone: NgZone = [ref to the application zone];
* *
* zone.run(() => { * zone.run(() => {
* // the change detection will run after this function and the microtasks it enqueues have executed. * // the change detection will run after this function and the microtasks it enqueues have executed.
@ -93,7 +93,7 @@ export class VmTurnZone {
* auto-digest mechanism. * auto-digest mechanism.
* *
* ``` * ```
* var zone: VmTurnZone = [ref to the application zone]; * var zone: NgZone = [ref to the application zone];
* *
* zone.runOusideAngular(() => { * zone.runOusideAngular(() => {
* element.onClick(() => { * element.onClick(() => {
@ -103,23 +103,23 @@ export class VmTurnZone {
* ``` * ```
*/ */
runOutsideAngular(fn) { runOutsideAngular(fn) {
return this._outerZone.run(fn); return this._mountZone.run(fn);
} }
_createInnerZone(zone, enableLongStackTrace) { _createInnerZone(zone, enableLongStackTrace) {
var vmTurnZone = this; var ngZone = this;
var errorHandling; var errorHandling;
if (enableLongStackTrace) { if (enableLongStackTrace) {
errorHandling = StringMapWrapper.merge(Zone.longStackTraceZone, { errorHandling = StringMapWrapper.merge(Zone.longStackTraceZone, {
onError: function (e) { onError: function (e) {
vmTurnZone._onError(this, e) ngZone._onError(this, e)
} }
}); });
} else { } else {
errorHandling = { errorHandling = {
onError: function (e) { onError: function (e) {
vmTurnZone._onError(this, e) ngZone._onError(this, e)
} }
}; };
} }
@ -130,25 +130,25 @@ export class VmTurnZone {
'$run': function(parentRun) { '$run': function(parentRun) {
return function() { return function() {
try { try {
vmTurnZone._nestedRun++; ngZone._nestedRun++;
if (!vmTurnZone._hasExecutedCodeInInnerZone) { if (!ngZone._hasExecutedCodeInInnerZone) {
vmTurnZone._hasExecutedCodeInInnerZone = true; ngZone._hasExecutedCodeInInnerZone = true;
if (vmTurnZone._onTurnStart) { if (ngZone._onTurnStart) {
parentRun.call(vmTurnZone._innerZone, vmTurnZone._onTurnStart); parentRun.call(ngZone._innerZone, ngZone._onTurnStart);
} }
} }
return parentRun.apply(this, arguments); return parentRun.apply(this, arguments);
} finally { } finally {
vmTurnZone._nestedRun--; ngZone._nestedRun--;
// If there are no more pending microtasks, we are at the end of a VM turn (or in onTurnStart) // If there are no more pending microtasks, we are at the end of a VM turn (or in onTurnStart)
// _nestedRun will be 0 at the end of a macrotasks (it could be > 0 when there are nested calls // _nestedRun will be 0 at the end of a macrotasks (it could be > 0 when there are nested calls
// to run()). // to run()).
if (vmTurnZone._pendingMicrotasks == 0 && vmTurnZone._nestedRun == 0) { if (ngZone._pendingMicrotasks == 0 && ngZone._nestedRun == 0) {
if (vmTurnZone._onTurnDone && vmTurnZone._hasExecutedCodeInInnerZone) { if (ngZone._onTurnDone && ngZone._hasExecutedCodeInInnerZone) {
try { try {
parentRun.call(vmTurnZone._innerZone, vmTurnZone._onTurnDone); parentRun.call(ngZone._innerZone, ngZone._onTurnDone);
} finally { } finally {
vmTurnZone._hasExecutedCodeInInnerZone = false; ngZone._hasExecutedCodeInInnerZone = false;
} }
} }
} }
@ -157,12 +157,12 @@ export class VmTurnZone {
}, },
'$scheduleMicrotask': function(parentScheduleMicrotask) { '$scheduleMicrotask': function(parentScheduleMicrotask) {
return function(fn) { return function(fn) {
vmTurnZone._pendingMicrotasks++; ngZone._pendingMicrotasks++;
var microtask = function() { var microtask = function() {
try { try {
fn(); fn();
} finally { } finally {
vmTurnZone._pendingMicrotasks--; ngZone._pendingMicrotasks--;
} }
}; };
parentScheduleMicrotask.call(this, microtask); parentScheduleMicrotask.call(this, microtask);

View File

@ -1,12 +1,12 @@
import {VmTurnZone} from 'angular2/src/core/zone/vm_turn_zone'; import {NgZone} from 'angular2/src/core/zone/ng_zone';
export class MockVmTurnZone extends VmTurnZone { export class MockNgZone extends NgZone {
constructor() { constructor() {
super({enableLongStackTrace: false}); super({enableLongStackTrace: false});
} }
run(fn) { run(fn) {
fn(); return fn();
} }
runOutsideAngular(fn) { runOutsideAngular(fn) {

View File

@ -1,15 +1,15 @@
import {isBlank, BaseException, isPresent, StringWrapper} from 'angular2/src/facade/lang'; import {isBlank, BaseException, isPresent, StringWrapper} from 'angular2/src/facade/lang';
import {DOM} from 'angular2/src/dom/dom_adapter'; import {DOM} from 'angular2/src/dom/dom_adapter';
import {List, ListWrapper, MapWrapper} from 'angular2/src/facade/collection'; import {List, ListWrapper, MapWrapper} from 'angular2/src/facade/collection';
import {VmTurnZone} from 'angular2/src/core/zone/vm_turn_zone'; import {NgZone} from 'angular2/src/core/zone/ng_zone';
var BUBBLE_SYMBOL = '^'; var BUBBLE_SYMBOL = '^';
export class EventManager { export class EventManager {
_plugins: List<EventManagerPlugin>; _plugins: List<EventManagerPlugin>;
_zone: VmTurnZone; _zone: NgZone;
constructor(plugins: List<EventManagerPlugin>, zone: VmTurnZone) { constructor(plugins: List<EventManagerPlugin>, zone: NgZone) {
this._zone = zone; this._zone = zone;
this._plugins = plugins; this._plugins = plugins;
for (var i = 0; i < plugins.length; i++) { for (var i = 0; i < plugins.length; i++) {
@ -29,7 +29,7 @@ export class EventManager {
return plugin.addGlobalEventListener(target, withoutBubbleSymbol, handler, withoutBubbleSymbol != eventName); return plugin.addGlobalEventListener(target, withoutBubbleSymbol, handler, withoutBubbleSymbol != eventName);
} }
getZone(): VmTurnZone { getZone(): NgZone {
return this._zone; return this._zone;
} }
@ -93,7 +93,7 @@ export class DomEventsPlugin extends EventManagerPlugin {
}); });
} }
_getOutsideHandler(shouldSupportBubble: boolean, element, handler: Function, zone: VmTurnZone) { _getOutsideHandler(shouldSupportBubble: boolean, element, handler: Function, zone: NgZone) {
return shouldSupportBubble ? return shouldSupportBubble ?
DomEventsPlugin.bubbleCallback(element, handler, zone) : DomEventsPlugin.bubbleCallback(element, handler, zone) :
DomEventsPlugin.sameElementCallback(element, handler, zone); DomEventsPlugin.sameElementCallback(element, handler, zone);

View File

@ -16,7 +16,7 @@ import {ComponentUrlMapper} from 'angular2/src/core/compiler/component_url_mappe
import {UrlResolver} from 'angular2/src/services/url_resolver'; import {UrlResolver} from 'angular2/src/services/url_resolver';
import {StyleUrlResolver} from 'angular2/src/render/dom/shadow_dom/style_url_resolver'; import {StyleUrlResolver} from 'angular2/src/render/dom/shadow_dom/style_url_resolver';
import {StyleInliner} from 'angular2/src/render/dom/shadow_dom/style_inliner'; import {StyleInliner} from 'angular2/src/render/dom/shadow_dom/style_inliner';
import {VmTurnZone} from 'angular2/src/core/zone/vm_turn_zone'; import {NgZone} from 'angular2/src/core/zone/ng_zone';
import {DOM} from 'angular2/src/dom/dom_adapter'; import {DOM} from 'angular2/src/dom/dom_adapter';
@ -24,7 +24,7 @@ import {EventManager, DomEventsPlugin} from 'angular2/src/render/dom/events/even
import {MockTemplateResolver} from 'angular2/src/mock/template_resolver_mock'; import {MockTemplateResolver} from 'angular2/src/mock/template_resolver_mock';
import {MockXHR} from 'angular2/src/mock/xhr_mock'; import {MockXHR} from 'angular2/src/mock/xhr_mock';
import {MockVmTurnZone} from 'angular2/src/mock/vm_turn_zone_mock'; import {MockNgZone} from 'angular2/src/mock/ng_zone_mock';
import {TestBed} from './test_bed'; import {TestBed} from './test_bed';
@ -102,13 +102,13 @@ function _getAppBindings() {
StyleUrlResolver, StyleUrlResolver,
StyleInliner, StyleInliner,
TestBed, TestBed,
bind(VmTurnZone).toClass(MockVmTurnZone), bind(NgZone).toClass(MockNgZone),
bind(EventManager).toFactory((zone) => { bind(EventManager).toFactory((zone) => {
var plugins = [ var plugins = [
new DomEventsPlugin(), new DomEventsPlugin(),
]; ];
return new EventManager(plugins, zone); return new EventManager(plugins, zone);
}, [VmTurnZone]), }, [NgZone]),
]; ];
} }

View File

@ -17,7 +17,7 @@ import {PromiseWrapper} from 'angular2/src/facade/async';
import {ListWrapper} from 'angular2/src/facade/collection'; import {ListWrapper} from 'angular2/src/facade/collection';
import {BaseException} from 'angular2/src/facade/lang'; import {BaseException} from 'angular2/src/facade/lang';
import {VmTurnZone} from 'angular2/src/core/zone/vm_turn_zone'; import {NgZone} from 'angular2/src/core/zone/ng_zone';
// Schedules a macrotask (using a timer) // Schedules a macrotask (using a timer)
function macroTask(fn: Function): void { function macroTask(fn: Function): void {
@ -40,10 +40,10 @@ function logError(error, stackTrace) {
} }
export function main() { export function main() {
describe("VmTurnZone", () => { describe("NgZone", () => {
function createZone(enableLongStackTrace) { function createZone(enableLongStackTrace) {
var zone = new VmTurnZone({enableLongStackTrace: enableLongStackTrace}); var zone = new NgZone({enableLongStackTrace: enableLongStackTrace});
zone.initCallbacks({ zone.initCallbacks({
onTurnStart: _log.fn('onTurnStart'), onTurnStart: _log.fn('onTurnStart'),
onTurnDone: _log.fn('onTurnDone') onTurnDone: _log.fn('onTurnDone')

View File

@ -1,6 +1,6 @@
import {describe, ddescribe, it, iit, xit, xdescribe, expect, beforeEach, el} from 'angular2/test_lib'; import {describe, ddescribe, it, iit, xit, xdescribe, expect, beforeEach, el} from 'angular2/test_lib';
import {EventManager, EventManagerPlugin, DomEventsPlugin} from 'angular2/src/render/dom/events/event_manager'; import {EventManager, EventManagerPlugin, DomEventsPlugin} from 'angular2/src/render/dom/events/event_manager';
import {VmTurnZone} from 'angular2/src/core/zone/vm_turn_zone'; import {NgZone} from 'angular2/src/core/zone/ng_zone';
import {List, ListWrapper, Map, MapWrapper} from 'angular2/src/facade/collection'; import {List, ListWrapper, Map, MapWrapper} from 'angular2/src/facade/collection';
import {DOM} from 'angular2/src/dom/dom_adapter'; import {DOM} from 'angular2/src/dom/dom_adapter';
@ -17,7 +17,7 @@ export function main() {
var element = el('<div></div>'); var element = el('<div></div>');
var handler = (e) => e; var handler = (e) => e;
var plugin = new FakeEventManagerPlugin(['click']); var plugin = new FakeEventManagerPlugin(['click']);
var manager = new EventManager([plugin, domEventPlugin], new FakeVmTurnZone()); var manager = new EventManager([plugin, domEventPlugin], new FakeNgZone());
manager.addEventListener(element, 'click', handler); manager.addEventListener(element, 'click', handler);
expect(MapWrapper.get(plugin._nonBubbleEventHandlers, 'click')).toBe(handler); expect(MapWrapper.get(plugin._nonBubbleEventHandlers, 'click')).toBe(handler);
}); });
@ -26,7 +26,7 @@ export function main() {
var element = el('<div></div>'); var element = el('<div></div>');
var handler = (e) => e; var handler = (e) => e;
var plugin = new FakeEventManagerPlugin(['click']); var plugin = new FakeEventManagerPlugin(['click']);
var manager = new EventManager([plugin, domEventPlugin], new FakeVmTurnZone()); var manager = new EventManager([plugin, domEventPlugin], new FakeNgZone());
manager.addEventListener(element, '^click', handler); manager.addEventListener(element, '^click', handler);
expect(MapWrapper.get(plugin._bubbleEventHandlers, 'click')).toBe(handler); expect(MapWrapper.get(plugin._bubbleEventHandlers, 'click')).toBe(handler);
}); });
@ -37,7 +37,7 @@ export function main() {
var dblClickHandler = (e) => e; var dblClickHandler = (e) => e;
var plugin1= new FakeEventManagerPlugin(['dblclick']); var plugin1= new FakeEventManagerPlugin(['dblclick']);
var plugin2 = new FakeEventManagerPlugin(['click', 'dblclick']); var plugin2 = new FakeEventManagerPlugin(['click', 'dblclick']);
var manager = new EventManager([plugin1, plugin2], new FakeVmTurnZone()); var manager = new EventManager([plugin1, plugin2], new FakeNgZone());
manager.addEventListener(element, 'click', clickHandler); manager.addEventListener(element, 'click', clickHandler);
manager.addEventListener(element, 'dblclick', dblClickHandler); manager.addEventListener(element, 'dblclick', dblClickHandler);
expect(MapWrapper.contains(plugin1._nonBubbleEventHandlers, 'click')).toBe(false); expect(MapWrapper.contains(plugin1._nonBubbleEventHandlers, 'click')).toBe(false);
@ -49,7 +49,7 @@ export function main() {
it('should throw when no plugin can handle the event', () => { it('should throw when no plugin can handle the event', () => {
var element = el('<div></div>'); var element = el('<div></div>');
var plugin = new FakeEventManagerPlugin(['dblclick']); var plugin = new FakeEventManagerPlugin(['dblclick']);
var manager = new EventManager([plugin], new FakeVmTurnZone()); var manager = new EventManager([plugin], new FakeNgZone());
expect(() => manager.addEventListener(element, 'click', null)) expect(() => manager.addEventListener(element, 'click', null))
.toThrowError('No event manager plugin found for event click'); .toThrowError('No event manager plugin found for event click');
}); });
@ -60,7 +60,7 @@ export function main() {
var dispatchedEvent = DOM.createMouseEvent('click'); var dispatchedEvent = DOM.createMouseEvent('click');
var receivedEvent = null; var receivedEvent = null;
var handler = (e) => { receivedEvent = e; }; var handler = (e) => { receivedEvent = e; };
var manager = new EventManager([domEventPlugin], new FakeVmTurnZone()); var manager = new EventManager([domEventPlugin], new FakeNgZone());
manager.addEventListener(element, 'click', handler); manager.addEventListener(element, 'click', handler);
DOM.dispatchEvent(child, dispatchedEvent); DOM.dispatchEvent(child, dispatchedEvent);
@ -76,7 +76,7 @@ export function main() {
var dispatchedEvent = DOM.createMouseEvent('click'); var dispatchedEvent = DOM.createMouseEvent('click');
var receivedEvent = null; var receivedEvent = null;
var handler = (e) => { receivedEvent = e; }; var handler = (e) => { receivedEvent = e; };
var manager = new EventManager([domEventPlugin], new FakeVmTurnZone()); var manager = new EventManager([domEventPlugin], new FakeNgZone());
manager.addEventListener(element, '^click', handler); manager.addEventListener(element, '^click', handler);
DOM.dispatchEvent(child, dispatchedEvent); DOM.dispatchEvent(child, dispatchedEvent);
@ -89,7 +89,7 @@ export function main() {
var dispatchedEvent = DOM.createMouseEvent('click'); var dispatchedEvent = DOM.createMouseEvent('click');
var receivedEvent = null; var receivedEvent = null;
var handler = (e) => { receivedEvent = e; }; var handler = (e) => { receivedEvent = e; };
var manager = new EventManager([domEventPlugin], new FakeVmTurnZone()); var manager = new EventManager([domEventPlugin], new FakeNgZone());
var remover = manager.addGlobalEventListener("document", '^click', handler); var remover = manager.addGlobalEventListener("document", '^click', handler);
DOM.dispatchEvent(element, dispatchedEvent); DOM.dispatchEvent(element, dispatchedEvent);
@ -130,7 +130,7 @@ class FakeEventManagerPlugin extends EventManagerPlugin {
} }
} }
class FakeVmTurnZone extends VmTurnZone { class FakeNgZone extends NgZone {
constructor() { constructor() {
super({enableLongStackTrace: false}); super({enableLongStackTrace: false});
} }

View File

@ -22,7 +22,7 @@ module.exports = function makeNodeTree(destinationPath) {
include: ['angular2/**', 'benchpress/**', 'rtts_assert/**', '**/e2e_test/**'], include: ['angular2/**', 'benchpress/**', 'rtts_assert/**', '**/e2e_test/**'],
exclude: [ exclude: [
// the following code and tests are not compatible with CJS/node environment // the following code and tests are not compatible with CJS/node environment
'angular2/src/core/zone/vm_turn_zone.es6', 'angular2/src/core/zone/ng_zone.es6',
'angular2/test/core/zone/**' 'angular2/test/core/zone/**'
] ]
}); });