feat(dart/transform): Add debug transform parameters
Add two transform parameters to aid in debugging the transformer - `mirror_mode`, with values {`debug`, `none`, and `verbose`} - `init_reflector`, with values {`true`, `false`} `mirror_mode`: - `debug`: Allow reflective access, but log a message if it is used - `none`: Remove reflective access, `throw` if it is used. Default value - `verbose`: Allow reflective access, log a stack trace if it is used `init_reflector`: Whether to generate calls to our generated `initReflector` code. These will be useful to reveal areas where the transformer is not generating appropriate code and to quickly see where reflective accesses occur. When the pub mode is `transform_dynamic`, we run in MirrorMode.debug with `init_reflector = false`. This is used for testing purposes.
This commit is contained in:
@ -0,0 +1,7 @@
|
||||
Tests that the reflection removal step:
|
||||
1. Comments out the import of reflection_capabilities.dart
|
||||
2. Comments out the instantiation of `ReflectionCapabilities`
|
||||
3. Adds the appropriate import.
|
||||
4. Adds the call to `initReflector`
|
||||
5. Does not change line numbers in the source.
|
||||
6. Makes minimal changes to source offsets.
|
@ -0,0 +1,22 @@
|
||||
library angular2.test.transform.debug_reflection_remover_files;
|
||||
|
||||
// This file is intentionally formatted as a string to avoid having the
|
||||
// automatic transformer prettify it.
|
||||
//
|
||||
// This file represents transformed user code. Because this code will be
|
||||
// linked to output by a source map, we cannot change line numbers from the
|
||||
// original code and we therefore add our generated code on the same line as
|
||||
// those we are removing.
|
||||
|
||||
var code = """
|
||||
library web_foo;
|
||||
|
||||
import 'package:angular2/src/core/application.dart';
|
||||
import 'package:angular2/src/reflection/reflection.dart';
|
||||
import 'package:angular2/src/reflection/debug_reflection_capabilities.dart';import 'index.ng_deps.dart' as ngStaticInit0;
|
||||
|
||||
void main() {
|
||||
reflector.reflectionCapabilities = new ReflectionCapabilities();ngStaticInit0.initReflector(reflector);
|
||||
bootstrap(MyComponent);
|
||||
}
|
||||
""";
|
@ -0,0 +1,10 @@
|
||||
library web_foo;
|
||||
|
||||
import 'package:angular2/src/core/application.dart';
|
||||
import 'package:angular2/src/reflection/reflection.dart';
|
||||
import 'package:angular2/src/reflection/reflection_capabilities.dart';
|
||||
|
||||
void main() {
|
||||
reflector.reflectionCapabilities = new ReflectionCapabilities();
|
||||
bootstrap(MyComponent);
|
||||
}
|
Reference in New Issue
Block a user