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

Unified Diff: sdk/lib/_internal/compiler/implementation/js_backend/native_emitter.dart

Issue 11414255: dart2js: Dot-separated field-and-super descriptor string in class definitions. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 8 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_backend/native_emitter.dart
diff --git a/sdk/lib/_internal/compiler/implementation/js_backend/native_emitter.dart b/sdk/lib/_internal/compiler/implementation/js_backend/native_emitter.dart
index caaf5b744b3d0d629ccdb8849701b165d2ce01ec..e89b98da271b7efe2b602646620ab79ca06aaa68 100644
--- a/sdk/lib/_internal/compiler/implementation/js_backend/native_emitter.dart
+++ b/sdk/lib/_internal/compiler/implementation/js_backend/native_emitter.dart
@@ -90,14 +90,15 @@ class NativeEmitter {
String get defineNativeClassFunction {
return """
function(cls, desc) {
- var fields = desc[''] || [];
var generateGetterSetter = ${emitter.generateGetterSetterFunction};
- for (var i = 0; i < fields.length; i++) {
- generateGetterSetter(fields[i], desc);
+ var fields = desc[''];
+ var fields_array = fields ? fields.split('.') : [];
+ for (var i = 0; i < fields_array.length; i++) {
+ generateGetterSetter(fields_array[i], desc);
}
var hasOwnProperty = Object.prototype.hasOwnProperty;
for (var method in desc) {
- if (method !== '') {
+ if (method) { """/* method != '' */"""
ngeoffray 2012/11/30 12:11:46 What is this about?
erikcorry 2012/11/30 12:20:02 As above.
if (hasOwnProperty.call(desc, method)) {
$dynamicName(method)[cls] = desc[method];
}
@@ -160,7 +161,8 @@ function(cls, desc) {
CodeBuffer getterSetterBuffer = new CodeBuffer();
CodeBuffer methodBuffer = new CodeBuffer();
- emitter.emitClassFields(classElement, fieldBuffer, false);
+ emitter.emitClassFields(
+ classElement, fieldBuffer, isNative: true, emitEndingComma: false);
emitter.emitClassGettersSetters(classElement, getterSetterBuffer, false);
emitter.emitInstanceMembers(classElement, methodBuffer, false);

Powered by Google App Engine
This is Rietveld 408576698