OLD | NEW |
1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2012, 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 part of ssa; | 5 part of ssa; |
6 | 6 |
7 class SsaCodeGeneratorTask extends CompilerTask { | 7 class SsaCodeGeneratorTask extends CompilerTask { |
8 | 8 |
9 final JavaScriptBackend backend; | 9 final JavaScriptBackend backend; |
10 final SourceInformationFactory sourceInformationFactory; | 10 final SourceInformationFactory sourceInformationFactory; |
(...skipping 2314 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2325 checkExtendableArray(input); | 2325 checkExtendableArray(input); |
2326 } | 2326 } |
2327 return; | 2327 return; |
2328 } else if (element == backend.jsFixedArrayClass) { | 2328 } else if (element == backend.jsFixedArrayClass) { |
2329 if (negative) { | 2329 if (negative) { |
2330 checkExtendableArray(input); | 2330 checkExtendableArray(input); |
2331 } else { | 2331 } else { |
2332 checkFixedArray(input); | 2332 checkFixedArray(input); |
2333 } | 2333 } |
2334 return; | 2334 return; |
| 2335 } else if (element == backend.jsUnmodifiableArrayClass) { |
| 2336 if (negative) { |
| 2337 checkMutableArray(input); |
| 2338 } else { |
| 2339 checkImmutableArray(input); |
| 2340 } |
| 2341 return; |
2335 } | 2342 } |
2336 if (interceptor != null) { | 2343 if (interceptor != null) { |
2337 checkTypeViaProperty(interceptor, type, negative); | 2344 checkTypeViaProperty(interceptor, type, negative); |
2338 } else { | 2345 } else { |
2339 checkTypeViaProperty(input, type, negative); | 2346 checkTypeViaProperty(input, type, negative); |
2340 } | 2347 } |
2341 } | 2348 } |
2342 | 2349 |
2343 void checkTypeViaProperty(HInstruction input, DartType type, bool negative) { | 2350 void checkTypeViaProperty(HInstruction input, DartType type, bool negative) { |
2344 registry.registerIsCheck(type); | 2351 registry.registerIsCheck(type); |
(...skipping 373 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2718 js.PropertyAccess accessHelper(String name) { | 2725 js.PropertyAccess accessHelper(String name) { |
2719 Element helper = backend.findHelper(name); | 2726 Element helper = backend.findHelper(name); |
2720 if (helper == null) { | 2727 if (helper == null) { |
2721 // For mocked-up tests. | 2728 // For mocked-up tests. |
2722 return js.js('(void 0).$name'); | 2729 return js.js('(void 0).$name'); |
2723 } | 2730 } |
2724 registry.registerStaticUse(helper); | 2731 registry.registerStaticUse(helper); |
2725 return backend.emitter.staticFunctionAccess(helper); | 2732 return backend.emitter.staticFunctionAccess(helper); |
2726 } | 2733 } |
2727 } | 2734 } |
OLD | NEW |