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:
@@ -1,6 +1,7 @@
|
||||
library angular2.transform.common.options_reader;
|
||||
|
||||
import 'package:barback/barback.dart';
|
||||
import 'mirror_mode.dart';
|
||||
import 'options.dart';
|
||||
|
||||
TransformerOptions parseBarbackSettings(BarbackSettings settings) {
|
||||
@@ -8,9 +9,27 @@ TransformerOptions parseBarbackSettings(BarbackSettings settings) {
|
||||
var entryPoints = _readFileList(config, ENTRY_POINT_PARAM);
|
||||
var reflectionEntryPoints =
|
||||
_readFileList(config, REFLECTION_ENTRY_POINT_PARAM);
|
||||
var initReflector = !config.containsKey('init_reflector') ||
|
||||
config['init_reflector'] != false;
|
||||
String mirrorModeVal =
|
||||
config.containsKey('mirror_mode') ? config['mirror_mode'] : '';
|
||||
var mirrorMode = MirrorMode.none;
|
||||
switch (mirrorModeVal) {
|
||||
case 'debug':
|
||||
mirrorMode = MirrorMode.debug;
|
||||
break;
|
||||
case 'verbose':
|
||||
mirrorMode = MirrorMode.verbose;
|
||||
break;
|
||||
default:
|
||||
mirrorMode = MirrorMode.none;
|
||||
break;
|
||||
}
|
||||
return new TransformerOptions(entryPoints,
|
||||
reflectionEntryPoints: reflectionEntryPoints,
|
||||
modeName: settings.mode.name);
|
||||
modeName: settings.mode.name,
|
||||
mirrorMode: mirrorMode,
|
||||
initReflector: initReflector);
|
||||
}
|
||||
|
||||
/// Cribbed from the polymer project.
|
||||
|
||||
Reference in New Issue
Block a user