Skip to content
This repository was archived by the owner on Feb 22, 2018. It is now read-only.

Commit 18ecd95

Browse files
mvuksanomhevery
authored andcommitted
feat(Scope): Allow turning emission of scope stats from console.
To enable emission of ScopeStats from console one can call function `enableScopeStats(Node)`. To disable call function `disableScopeStats(node)`. Fixes #836 Closes #857
1 parent 8952cbd commit 18ecd95

File tree

1 file changed

+6
-4
lines changed

1 file changed

+6
-4
lines changed

lib/introspection_js.dart

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ publishToJavaScript() {
1919
js.context
2020
..['ngProbe'] = new js.JsFunction.withThis((_, dom.Node node) => _jsProbe(ngProbe(node)))
2121
..['ngInjector'] = new js.JsFunction.withThis((_, dom.Node node) => _jsInjector(ngInjector(node)))
22-
..['ngScope'] = new js.JsFunction.withThis((_, dom.Node node) => _jsScope(ngScope(node)))
22+
..['ngScope'] = new js.JsFunction.withThis((_, dom.Node node) => _jsScope(ngScope(node), ngProbe(node).injector.get(ScopeStatsConfig)))
2323
..['ngQuery'] = new js.JsFunction.withThis((_, dom.Node node, String selector, [String containsText]) =>
2424
new js.JsArray.from(ngQuery(node, selector, containsText)));
2525
}
@@ -28,15 +28,15 @@ js.JsObject _jsProbe(ElementProbe probe) {
2828
return new js.JsObject.jsify({
2929
"element": probe.element,
3030
"injector": _jsInjector(probe.injector),
31-
"scope": _jsScope(probe.scope),
31+
"scope": _jsScope(probe.scope, probe.injector.get(ScopeStatsConfig)),
3232
"directives": probe.directives.map((directive) => _jsDirective(directive))
3333
})..['_dart_'] = probe;
3434
}
3535

3636
js.JsObject _jsInjector(Injector injector) =>
3737
new js.JsObject.jsify({"get": injector.get})..['_dart_'] = injector;
3838

39-
js.JsObject _jsScope(Scope scope) {
39+
js.JsObject _jsScope(Scope scope, ScopeStatsConfig config) {
4040
return new js.JsObject.jsify({
4141
"apply": scope.apply,
4242
"broadcast": scope.broadcast,
@@ -48,7 +48,9 @@ js.JsObject _jsScope(Scope scope) {
4848
"get": (name) => scope.context[name],
4949
"isAttached": scope.isAttached,
5050
"isDestroyed": scope.isDestroyed,
51-
"set": (name, value) => scope.context[name] = value
51+
"set": (name, value) => scope.context[name] = value,
52+
"scopeStatsEnable": () => config.emit = true,
53+
"scopeStatsDisable": () => config.emit = false
5254
})..['_dart_'] = scope;
5355
}
5456

0 commit comments

Comments
 (0)