Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(550)

Unified Diff: sdk/lib/_internal/compiler/implementation/js_emitter/code_emitter_task.dart

Issue 68343012: Retain types of toplevel and instance variables for reflection. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 7 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: sdk/lib/_internal/compiler/implementation/js_emitter/code_emitter_task.dart
diff --git a/sdk/lib/_internal/compiler/implementation/js_emitter/code_emitter_task.dart b/sdk/lib/_internal/compiler/implementation/js_emitter/code_emitter_task.dart
index dd2d29390f529dcf3bdaf78c304fe10420138d57..b0e42eb6ebde5f0f65fae5fa6dc011e9c3f9ccd5 100644
--- a/sdk/lib/_internal/compiler/implementation/js_emitter/code_emitter_task.dart
+++ b/sdk/lib/_internal/compiler/implementation/js_emitter/code_emitter_task.dart
@@ -137,16 +137,14 @@ class CodeEmitterTask extends CompilerTask {
String reflectableField = namer.reflectableField;
// function generateAccessor(field, prototype, cls) {
- jsAst.Fun fun = js.fun(['field', 'accessors', 'cls'], [
+ jsAst.Fun fun = js.fun(['fieldDescriptor', 'accessors', 'cls'], [
+ js('var fieldInformation = fieldDescriptor.split(":")'),
+ js('var field = fieldInformation[0]'),
js('var len = field.length'),
js('var code = field.charCodeAt(len - 1)'),
- js('var reflectable = false'),
- js.if_('code == $REFLECTION_MARKER', [
- js('len--'),
- js('code = field.charCodeAt(len - 1)'),
- js('field = field.substring(0, len)'),
- js('reflectable = true')
- ]),
+ js('var reflectable'),
+ js.if_('fieldInformation.length > 1', js('reflectable = true'),
+ js('reflectable = false')),
js('code = ((code >= $RANGE1_FIRST) && (code <= $RANGE1_LAST))'
' ? code - $RANGE1_ADJUST'
' : ((code >= $RANGE2_FIRST) && (code <= $RANGE2_LAST))'

Powered by Google App Engine
This is Rietveld 408576698