| OLD | NEW |
| 1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file |
| 2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
| 3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
| 4 | 4 |
| 5 library dart2js.new_js_emitter.model_emitter; | 5 library dart2js.new_js_emitter.model_emitter; |
| 6 | 6 |
| 7 import '../../dart2jslib.dart' show Compiler; | 7 import '../../dart2jslib.dart' show Compiler; |
| 8 import '../../js/js.dart' as js; | 8 import '../../js/js.dart' as js; |
| 9 import '../../js_backend/js_backend.dart' show | 9 import '../../js_backend/js_backend.dart' show |
| 10 JavaScriptBackend, | 10 JavaScriptBackend, |
| (...skipping 283 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 294 case 1: return "function() { return this[#]; }"; | 294 case 1: return "function() { return this[#]; }"; |
| 295 case 2: return "function(receiver) { return receiver[#]; }"; | 295 case 2: return "function(receiver) { return receiver[#]; }"; |
| 296 case 3: return "function(receiver) { return this[#]; }"; | 296 case 3: return "function(receiver) { return this[#]; }"; |
| 297 } | 297 } |
| 298 return null; | 298 return null; |
| 299 } | 299 } |
| 300 | 300 |
| 301 js.Expression fieldName = js.string(field.name); | 301 js.Expression fieldName = js.string(field.name); |
| 302 js.Expression code = js.js(getterTemplateFor(field.getterFlags), fieldName); | 302 js.Expression code = js.js(getterTemplateFor(field.getterFlags), fieldName); |
| 303 String getterName = "${namer.getterPrefix}${field.name}"; | 303 String getterName = "${namer.getterPrefix}${field.name}"; |
| 304 return new Method(getterName, code); | 304 return new StubMethod(getterName, code); |
| 305 } | 305 } |
| 306 | 306 |
| 307 Method _generateSetter(InstanceField field) { | 307 Method _generateSetter(InstanceField field) { |
| 308 String setterTemplateFor(int flags) { | 308 String setterTemplateFor(int flags) { |
| 309 switch (flags) { | 309 switch (flags) { |
| 310 case 1: return "function(val) { return this[#] = val; }"; | 310 case 1: return "function(val) { return this[#] = val; }"; |
| 311 case 2: return "function(receiver, val) { return receiver[#] = val; }"; | 311 case 2: return "function(receiver, val) { return receiver[#] = val; }"; |
| 312 case 3: return "function(receiver, val) { return this[#] = val; }"; | 312 case 3: return "function(receiver, val) { return this[#] = val; }"; |
| 313 } | 313 } |
| 314 return null; | 314 return null; |
| 315 } | 315 } |
| 316 js.Expression fieldName = js.string(field.name); | 316 js.Expression fieldName = js.string(field.name); |
| 317 js.Expression code = js.js(setterTemplateFor(field.setterFlags), fieldName); | 317 js.Expression code = js.js(setterTemplateFor(field.setterFlags), fieldName); |
| 318 String setterName = "${namer.setterPrefix}${field.name}"; | 318 String setterName = "${namer.setterPrefix}${field.name}"; |
| 319 return new Method(setterName, code); | 319 return new StubMethod(setterName, code); |
| 320 } | 320 } |
| 321 | 321 |
| 322 Iterable<Method> _generateGettersSetters(Class cls) { | 322 Iterable<Method> _generateGettersSetters(Class cls) { |
| 323 Iterable<Method> getters = cls.fields | 323 Iterable<Method> getters = cls.fields |
| 324 .where((InstanceField field) => field.needsGetter) | 324 .where((InstanceField field) => field.needsGetter) |
| 325 .map(_generateGetter); | 325 .map(_generateGetter); |
| 326 | 326 |
| 327 Iterable<Method> setters = cls.fields | 327 Iterable<Method> setters = cls.fields |
| 328 .where((InstanceField field) => field.needsSetter) | 328 .where((InstanceField field) => field.needsSetter) |
| 329 .map(_generateSetter); | 329 .map(_generateSetter); |
| (...skipping 216 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 546 | 546 |
| 547 var end = Date.now(); | 547 var end = Date.now(); |
| 548 print('Setup: ' + (end - start) + ' ms.'); | 548 print('Setup: ' + (end - start) + ' ms.'); |
| 549 | 549 |
| 550 #main(); // Start main. | 550 #main(); // Start main. |
| 551 | 551 |
| 552 }(Date.now(), #code) | 552 }(Date.now(), #code) |
| 553 }"""; | 553 }"""; |
| 554 | 554 |
| 555 } | 555 } |
| OLD | NEW |