OLD | NEW |
1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2013, 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 dart2js.js_emitter.full_emitter; | 5 part of dart2js.js_emitter.full_emitter; |
6 | 6 |
7 // TODO(ahe): Share these with js_helper.dart. | 7 // TODO(ahe): Share these with js_helper.dart. |
8 const FUNCTION_INDEX = 0; | 8 const FUNCTION_INDEX = 0; |
9 const NAME_INDEX = 1; | 9 const NAME_INDEX = 1; |
10 const CALL_NAME_INDEX = 2; | 10 const CALL_NAME_INDEX = 2; |
(...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
96 Map<String, dynamic> holes = { | 96 Map<String, dynamic> holes = { |
97 'needsClassSupport': emitter.needsClassSupport, | 97 'needsClassSupport': emitter.needsClassSupport, |
98 'libraries': librariesAccess, | 98 'libraries': librariesAccess, |
99 'mangledNames': mangledNamesAccess, | 99 'mangledNames': mangledNamesAccess, |
100 'mangledGlobalNames': mangledGlobalNamesAccess, | 100 'mangledGlobalNames': mangledGlobalNamesAccess, |
101 'statics': staticsAccess, | 101 'statics': staticsAccess, |
102 'staticsPropertyName': namer.staticsPropertyName, | 102 'staticsPropertyName': namer.staticsPropertyName, |
103 'staticsPropertyNameString': js.quoteName(namer.staticsPropertyName), | 103 'staticsPropertyNameString': js.quoteName(namer.staticsPropertyName), |
104 'typeInformation': typeInformationAccess, | 104 'typeInformation': typeInformationAccess, |
105 'globalFunctions': globalFunctionsAccess, | 105 'globalFunctions': globalFunctionsAccess, |
106 'enabledInvokeOn': compiler.enabledInvokeOn, | 106 'enabledInvokeOn': backend.hasInvokeOnSupport, |
107 'interceptedNames': interceptedNamesAccess, | 107 'interceptedNames': interceptedNamesAccess, |
108 'interceptedNamesSet': emitter.generateInterceptedNamesSet(), | 108 'interceptedNamesSet': emitter.generateInterceptedNamesSet(), |
109 'notInCspMode': !compiler.options.useContentSecurityPolicy, | 109 'notInCspMode': !compiler.options.useContentSecurityPolicy, |
110 'inCspMode': compiler.options.useContentSecurityPolicy, | 110 'inCspMode': compiler.options.useContentSecurityPolicy, |
111 'deferredAction': namer.deferredAction, | 111 'deferredAction': namer.deferredAction, |
112 'hasIsolateSupport': program.hasIsolateSupport, | 112 'hasIsolateSupport': program.hasIsolateSupport, |
113 'fieldNamesProperty': js.string(Emitter.FIELD_NAMES_PROPERTY_NAME), | 113 'fieldNamesProperty': js.string(Emitter.FIELD_NAMES_PROPERTY_NAME), |
114 'hasIncrementalSupport': compiler.options.hasIncrementalSupport, | 114 'hasIncrementalSupport': compiler.options.hasIncrementalSupport, |
115 'incrementalHelper': namer.accessIncrementalHelper, | 115 'incrementalHelper': namer.accessIncrementalHelper, |
116 'createNewIsolateFunction': createNewIsolateFunctionAccess, | 116 'createNewIsolateFunction': createNewIsolateFunctionAccess, |
(...skipping 14 matching lines...) Expand all Loading... |
131 'isInterceptorClass': namer.operatorIs(backend.helpers.jsInterceptorClass), | 131 'isInterceptorClass': namer.operatorIs(backend.helpers.jsInterceptorClass), |
132 'isObject': namer.operatorIs(compiler.coreClasses.objectClass), | 132 'isObject': namer.operatorIs(compiler.coreClasses.objectClass), |
133 'specProperty': js.string(namer.nativeSpecProperty), | 133 'specProperty': js.string(namer.nativeSpecProperty), |
134 'trivialNsmHandlers': emitter.buildTrivialNsmHandlers(), | 134 'trivialNsmHandlers': emitter.buildTrivialNsmHandlers(), |
135 'hasRetainedMetadata': backend.hasRetainedMetadata, | 135 'hasRetainedMetadata': backend.hasRetainedMetadata, |
136 'types': typesAccess, | 136 'types': typesAccess, |
137 'objectClassName': | 137 'objectClassName': |
138 js.quoteName(namer.runtimeTypeName(compiler.coreClasses.objectClass)), | 138 js.quoteName(namer.runtimeTypeName(compiler.coreClasses.objectClass)), |
139 'needsStructuredMemberInfo': emitter.needsStructuredMemberInfo, | 139 'needsStructuredMemberInfo': emitter.needsStructuredMemberInfo, |
140 'usesMangledNames': compiler.commonElements.mirrorsLibrary != null || | 140 'usesMangledNames': compiler.commonElements.mirrorsLibrary != null || |
141 compiler.enabledFunctionApply, | 141 compiler.hasFunctionApplySupport, |
142 'tearOffCode': buildTearOffCode(backend), | 142 'tearOffCode': buildTearOffCode(backend), |
143 'nativeInfoHandler': nativeInfoHandler, | 143 'nativeInfoHandler': nativeInfoHandler, |
144 'operatorIsPrefix': js.string(namer.operatorIsPrefix), | 144 'operatorIsPrefix': js.string(namer.operatorIsPrefix), |
145 'deferredActionString': js.string(namer.deferredAction) | 145 'deferredActionString': js.string(namer.deferredAction) |
146 }; | 146 }; |
147 String skeleton = ''' | 147 String skeleton = ''' |
148 function $setupProgramName(programData, typesOffset) { | 148 function $setupProgramName(programData, typesOffset) { |
149 "use strict"; | 149 "use strict"; |
150 if (#needsClassSupport) { | 150 if (#needsClassSupport) { |
151 | 151 |
(...skipping 702 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
854 (function() { | 854 (function() { |
855 var result = $array[$index]; | 855 var result = $array[$index]; |
856 if ($check) { | 856 if ($check) { |
857 throw new Error( | 857 throw new Error( |
858 name + ": expected value of type \'$type\' at index " + ($index) + | 858 name + ": expected value of type \'$type\' at index " + ($index) + |
859 " but got " + (typeof result)); | 859 " but got " + (typeof result)); |
860 } | 860 } |
861 return result; | 861 return result; |
862 })()'''; | 862 })()'''; |
863 } | 863 } |
OLD | NEW |