Index: lib/src/compiler/extension_types.dart |
diff --git a/lib/src/compiler/extension_types.dart b/lib/src/compiler/extension_types.dart |
new file mode 100644 |
index 0000000000000000000000000000000000000000..5960db68850c9a47e0b8e2ef79f62fe0250056ba |
--- /dev/null |
+++ b/lib/src/compiler/extension_types.dart |
@@ -0,0 +1,749 @@ |
+// Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file |
+// for details. All rights reserved. Use of this source code is governed by a |
+// BSD-style license that can be found in the LICENSE file. |
+ |
+import 'package:analyzer/dart/element/element.dart' show Element; |
+import 'package:analyzer/dart/element/visitor.dart' |
+ show GeneralizingElementVisitor; |
+import 'package:collection/collection.dart' show binarySearch; |
+ |
+class ExtensionTypeSet extends GeneralizingElementVisitor { |
+ bool contains(Element element) { |
+ var library = element?.library; |
+ if (library == null) return false; |
+ |
+ var source = library.source; |
+ if (source.isInSystemLibrary) { |
+ var types = _extensionTypes[source.uri.toString()]; |
+ if (types != null) { |
+ int index = binarySearch(types, element.name); |
+ return index >= 0; |
+ } |
+ } |
+ return false; |
+ } |
+ |
+ // TODO(vsm): Eventually, we want to make this extensible - i.e., find |
+ // annotations in user code as well. It would need to be summarized in |
+ // the element model - not searched this way on every compile. To make this |
+ // a little more efficient now, we do this in two phases. |
+ final _extensionTypes = { |
+ 'dart:_interceptors': [ |
+ 'Interceptor', |
+ 'JSArray', |
+ 'JSBool', |
+ 'JSIndexable', |
+ 'JSMutableIndexable', |
+ 'JSNumber', |
+ 'JSString' |
+ ], |
+ 'dart:_internal': ['FixedLengthListMixin'], |
+ 'dart:_js_helper': ['JavaScriptIndexingBehavior'], |
+ 'dart:_native_typed_data': [ |
+ 'NativeByteBuffer', |
+ 'NativeByteData', |
+ 'NativeFloat32List', |
+ 'NativeFloat64List', |
+ 'NativeInt16List', |
+ 'NativeInt32List', |
+ 'NativeInt8List', |
+ 'NativeTypedArray', |
+ 'NativeTypedArrayOfDouble', |
+ 'NativeTypedArrayOfInt', |
+ 'NativeTypedData', |
+ 'NativeUint16List', |
+ 'NativeUint32List', |
+ 'NativeUint8ClampedList', |
+ 'NativeUint8List' |
+ ], |
+ 'dart:collection': ['ListMixin'], |
+ 'dart:core': [ |
+ 'Comparable', |
+ 'Iterable', |
+ 'List', |
+ 'Map', |
+ 'Pattern', |
+ 'String', |
+ 'bool', |
+ 'double', |
+ 'int', |
+ 'num' |
+ ], |
+ 'dart:indexed_db': [ |
+ 'Cursor', |
+ 'CursorWithValue', |
+ 'Database', |
+ 'IdbFactory', |
+ 'Index', |
+ 'KeyRange', |
+ 'ObjectStore', |
+ 'OpenDBRequest', |
+ 'Request', |
+ 'Transaction', |
+ 'VersionChangeEvent' |
+ ], |
+ 'dart:math': ['Rectangle', '_RectangleBase'], |
+ 'dart:typed_data': [ |
+ 'ByteBuffer', |
+ 'ByteData', |
+ 'Float32List', |
+ 'Float64List', |
+ 'Int16List', |
+ 'Int32List', |
+ 'Int8List', |
+ 'TypedData', |
+ 'Uint16List', |
+ 'Uint32List', |
+ 'Uint8ClampedList', |
+ 'Uint8List' |
+ ], |
+ 'dart:html': [ |
+ 'AbstractWorker', |
+ 'AnchorElement', |
+ 'Animation', |
+ 'AnimationEffect', |
+ 'AnimationEvent', |
+ 'AnimationNode', |
+ 'AnimationPlayer', |
+ 'AnimationPlayerEvent', |
+ 'AnimationTimeline', |
+ 'ApplicationCache', |
+ 'ApplicationCacheErrorEvent', |
+ 'AreaElement', |
+ 'AudioElement', |
+ 'AudioTrack', |
+ 'AudioTrackList', |
+ 'AutocompleteErrorEvent', |
+ 'BRElement', |
+ 'BarProp', |
+ 'BaseElement', |
+ 'BatteryManager', |
+ 'BeforeUnloadEvent', |
+ 'Blob', |
+ 'Body', |
+ 'BodyElement', |
+ 'ButtonElement', |
+ 'ButtonInputElement', |
+ 'CDataSection', |
+ 'CacheStorage', |
+ 'Canvas2DContextAttributes', |
+ 'CanvasElement', |
+ 'CanvasGradient', |
+ 'CanvasImageSource', |
+ 'CanvasPattern', |
+ 'CanvasRenderingContext', |
+ 'CanvasRenderingContext2D', |
+ 'CharacterData', |
+ 'CheckboxInputElement', |
+ 'ChildNode', |
+ 'CircularGeofencingRegion', |
+ 'CloseEvent', |
+ 'Comment', |
+ 'CompositionEvent', |
+ 'ConsoleBase', |
+ 'ContentElement', |
+ 'Coordinates', |
+ 'Credential', |
+ 'CredentialsContainer', |
+ 'Crypto', |
+ 'CryptoKey', |
+ 'Css', |
+ 'CssCharsetRule', |
+ 'CssFilterRule', |
+ 'CssFontFaceRule', |
+ 'CssImportRule', |
+ 'CssKeyframeRule', |
+ 'CssKeyframesRule', |
+ 'CssMediaRule', |
+ 'CssPageRule', |
+ 'CssRule', |
+ 'CssStyleDeclaration', |
+ 'CssStyleDeclarationBase', |
+ 'CssStyleRule', |
+ 'CssStyleSheet', |
+ 'CssSupportsRule', |
+ 'CssViewportRule', |
+ 'CustomEvent', |
+ 'DListElement', |
+ 'DataListElement', |
+ 'DataTransfer', |
+ 'DataTransferItem', |
+ 'DataTransferItemList', |
+ 'DateInputElement', |
+ 'DedicatedWorkerGlobalScope', |
+ 'DeprecatedStorageInfo', |
+ 'DeprecatedStorageQuota', |
+ 'DetailsElement', |
+ 'DeviceAcceleration', |
+ 'DeviceLightEvent', |
+ 'DeviceMotionEvent', |
+ 'DeviceOrientationEvent', |
+ 'DeviceRotationRate', |
+ 'DialogElement', |
+ 'DirectoryEntry', |
+ 'DirectoryReader', |
+ 'DivElement', |
+ 'Document', |
+ 'DocumentFragment', |
+ 'DomError', |
+ 'DomException', |
+ 'DomImplementation', |
+ 'DomIterator', |
+ 'DomMatrix', |
+ 'DomMatrixReadOnly', |
+ 'DomParser', |
+ 'DomPoint', |
+ 'DomPointReadOnly', |
+ 'DomRectReadOnly', |
+ 'DomSettableTokenList', |
+ 'DomStringList', |
+ 'DomTokenList', |
+ 'Element', |
+ 'EmailInputElement', |
+ 'EmbedElement', |
+ 'Entry', |
+ 'ErrorEvent', |
+ 'Event', |
+ 'EventSource', |
+ 'EventTarget', |
+ 'ExtendableEvent', |
+ 'FederatedCredential', |
+ 'FetchEvent', |
+ 'FieldSetElement', |
+ 'File', |
+ 'FileEntry', |
+ 'FileError', |
+ 'FileList', |
+ 'FileReader', |
+ 'FileStream', |
+ 'FileSystem', |
+ 'FileUploadInputElement', |
+ 'FileWriter', |
+ 'FocusEvent', |
+ 'FontFace', |
+ 'FontFaceSet', |
+ 'FontFaceSetLoadEvent', |
+ 'FormData', |
+ 'FormElement', |
+ 'Gamepad', |
+ 'GamepadButton', |
+ 'GamepadEvent', |
+ 'Geofencing', |
+ 'GeofencingRegion', |
+ 'Geolocation', |
+ 'Geoposition', |
+ 'GlobalEventHandlers', |
+ 'HRElement', |
+ 'HashChangeEvent', |
+ 'HeadElement', |
+ 'Headers', |
+ 'HeadingElement', |
+ 'HiddenInputElement', |
+ 'History', |
+ 'HistoryBase', |
+ 'HtmlCollection', |
+ 'HtmlDocument', |
+ 'HtmlElement', |
+ 'HtmlFormControlsCollection', |
+ 'HtmlHtmlElement', |
+ 'HtmlOptionsCollection', |
+ 'HttpRequest', |
+ 'HttpRequestEventTarget', |
+ 'HttpRequestUpload', |
+ 'IFrameElement', |
+ 'ImageBitmap', |
+ 'ImageButtonInputElement', |
+ 'ImageData', |
+ 'ImageElement', |
+ 'ImmutableListMixin', |
+ 'InjectedScriptHost', |
+ 'InputElement', |
+ 'InputElementBase', |
+ 'InputMethodContext', |
+ 'InstallEvent', |
+ 'KeyboardEvent', |
+ 'KeygenElement', |
+ 'LIElement', |
+ 'LabelElement', |
+ 'LegendElement', |
+ 'LinkElement', |
+ 'LocalCredential', |
+ 'LocalDateTimeInputElement', |
+ 'Location', |
+ 'LocationBase', |
+ 'MapElement', |
+ 'MediaController', |
+ 'MediaDeviceInfo', |
+ 'MediaElement', |
+ 'MediaError', |
+ 'MediaKeyError', |
+ 'MediaKeyEvent', |
+ 'MediaKeyMessageEvent', |
+ 'MediaKeyNeededEvent', |
+ 'MediaKeySession', |
+ 'MediaKeys', |
+ 'MediaList', |
+ 'MediaQueryList', |
+ 'MediaQueryListEvent', |
+ 'MediaSource', |
+ 'MediaStream', |
+ 'MediaStreamEvent', |
+ 'MediaStreamTrack', |
+ 'MediaStreamTrackEvent', |
+ 'MemoryInfo', |
+ 'MenuElement', |
+ 'MenuItemElement', |
+ 'MessageChannel', |
+ 'MessageEvent', |
+ 'MessagePort', |
+ 'MetaElement', |
+ 'Metadata', |
+ 'MeterElement', |
+ 'MidiAccess', |
+ 'MidiConnectionEvent', |
+ 'MidiInput', |
+ 'MidiInputMap', |
+ 'MidiMessageEvent', |
+ 'MidiOutput', |
+ 'MidiOutputMap', |
+ 'MidiPort', |
+ 'MimeType', |
+ 'MimeTypeArray', |
+ 'ModElement', |
+ 'MonthInputElement', |
+ 'MouseEvent', |
+ 'MutationObserver', |
+ 'MutationRecord', |
+ 'Navigator', |
+ 'NavigatorCpu', |
+ 'NavigatorID', |
+ 'NavigatorLanguage', |
+ 'NavigatorOnLine', |
+ 'NavigatorUserMediaError', |
+ 'NetworkInformation', |
+ 'Node', |
+ 'NodeFilter', |
+ 'NodeIterator', |
+ 'NodeList', |
+ 'Notification', |
+ 'NumberInputElement', |
+ 'OListElement', |
+ 'ObjectElement', |
+ 'OptGroupElement', |
+ 'OptionElement', |
+ 'OutputElement', |
+ 'OverflowEvent', |
+ 'PageTransitionEvent', |
+ 'ParagraphElement', |
+ 'ParamElement', |
+ 'ParentNode', |
+ 'PasswordInputElement', |
+ 'Path2D', |
+ 'Performance', |
+ 'PerformanceEntry', |
+ 'PerformanceMark', |
+ 'PerformanceMeasure', |
+ 'PerformanceNavigation', |
+ 'PerformanceResourceTiming', |
+ 'PerformanceTiming', |
+ 'PictureElement', |
+ 'Plugin', |
+ 'PluginArray', |
+ 'PluginPlaceholderElement', |
+ 'PopStateEvent', |
+ 'PositionError', |
+ 'PreElement', |
+ 'Presentation', |
+ 'ProcessingInstruction', |
+ 'ProgressElement', |
+ 'ProgressEvent', |
+ 'PushEvent', |
+ 'PushManager', |
+ 'PushRegistration', |
+ 'QuoteElement', |
+ 'RadioButtonInputElement', |
+ 'Range', |
+ 'RangeInputElement', |
+ 'RangeInputElementBase', |
+ 'ReadableStream', |
+ 'RelatedEvent', |
+ 'ResetButtonInputElement', |
+ 'ResourceProgressEvent', |
+ 'RtcDataChannel', |
+ 'RtcDataChannelEvent', |
+ 'RtcDtmfSender', |
+ 'RtcDtmfToneChangeEvent', |
+ 'RtcIceCandidate', |
+ 'RtcIceCandidateEvent', |
+ 'RtcPeerConnection', |
+ 'RtcSessionDescription', |
+ 'RtcStatsReport', |
+ 'RtcStatsResponse', |
+ 'Screen', |
+ 'ScreenOrientation', |
+ 'ScriptElement', |
+ 'SearchInputElement', |
+ 'SecurityPolicyViolationEvent', |
+ 'SelectElement', |
+ 'Selection', |
+ 'ServiceWorkerClient', |
+ 'ServiceWorkerClients', |
+ 'ServiceWorkerContainer', |
+ 'ServiceWorkerGlobalScope', |
+ 'ServiceWorkerRegistration', |
+ 'ShadowElement', |
+ 'ShadowRoot', |
+ 'SharedWorker', |
+ 'SharedWorkerGlobalScope', |
+ 'SourceBuffer', |
+ 'SourceBufferList', |
+ 'SourceElement', |
+ 'SourceInfo', |
+ 'SpanElement', |
+ 'SpeechGrammar', |
+ 'SpeechGrammarList', |
+ 'SpeechRecognition', |
+ 'SpeechRecognitionAlternative', |
+ 'SpeechRecognitionError', |
+ 'SpeechRecognitionEvent', |
+ 'SpeechRecognitionResult', |
+ 'SpeechSynthesis', |
+ 'SpeechSynthesisEvent', |
+ 'SpeechSynthesisUtterance', |
+ 'SpeechSynthesisVoice', |
+ 'Storage', |
+ 'StorageEvent', |
+ 'StorageInfo', |
+ 'StorageQuota', |
+ 'StyleElement', |
+ 'StyleMedia', |
+ 'StyleSheet', |
+ 'SubmitButtonInputElement', |
+ 'TableCaptionElement', |
+ 'TableCellElement', |
+ 'TableColElement', |
+ 'TableElement', |
+ 'TableRowElement', |
+ 'TableSectionElement', |
+ 'TelephoneInputElement', |
+ 'TemplateElement', |
+ 'Text', |
+ 'TextAreaElement', |
+ 'TextEvent', |
+ 'TextInputElement', |
+ 'TextInputElementBase', |
+ 'TextMetrics', |
+ 'TextTrack', |
+ 'TextTrackCue', |
+ 'TextTrackCueList', |
+ 'TextTrackList', |
+ 'TimeInputElement', |
+ 'TimeRanges', |
+ 'Timing', |
+ 'TitleElement', |
+ 'Touch', |
+ 'TouchEvent', |
+ 'TouchList', |
+ 'TrackElement', |
+ 'TrackEvent', |
+ 'TransitionEvent', |
+ 'TreeWalker', |
+ 'UIEvent', |
+ 'UListElement', |
+ 'UnknownElement', |
+ 'Url', |
+ 'UrlInputElement', |
+ 'UrlUtils', |
+ 'UrlUtilsReadOnly', |
+ 'ValidityState', |
+ 'VideoElement', |
+ 'VideoPlaybackQuality', |
+ 'VideoTrack', |
+ 'VideoTrackList', |
+ 'VttCue', |
+ 'VttRegion', |
+ 'VttRegionList', |
+ 'WebSocket', |
+ 'WeekInputElement', |
+ 'WheelEvent', |
+ 'Window', |
+ 'WindowBase', |
+ 'WindowBase64', |
+ 'WindowEventHandlers', |
+ 'Worker', |
+ 'WorkerConsole', |
+ 'WorkerGlobalScope', |
+ 'WorkerPerformance', |
+ 'XPathEvaluator', |
+ 'XPathExpression', |
+ 'XPathNSResolver', |
+ 'XPathResult', |
+ 'XmlDocument', |
+ 'XmlSerializer', |
+ 'XsltProcessor', |
+ '_Attr', |
+ '_CSSPrimitiveValue', |
+ '_CSSUnknownRule', |
+ '_CSSValue', |
+ '_Cache', |
+ '_CanvasPathMethods', |
+ '_ClientRect', |
+ '_ClientRectList', |
+ '_Counter', |
+ '_CssRuleList', |
+ '_CssValueList', |
+ '_DOMFileSystemSync', |
+ '_DirectoryEntrySync', |
+ '_DirectoryReaderSync', |
+ '_DocumentType', |
+ '_DomRect', |
+ '_EntryArray', |
+ '_EntrySync', |
+ '_FileEntrySync', |
+ '_FileReaderSync', |
+ '_FileWriterSync', |
+ '_GamepadList', |
+ '_HTMLAllCollection', |
+ '_HTMLAppletElement', |
+ '_HTMLDirectoryElement', |
+ '_HTMLFontElement', |
+ '_HTMLFrameElement', |
+ '_HTMLFrameSetElement', |
+ '_HTMLMarqueeElement', |
+ '_MutationEvent', |
+ '_NamedNodeMap', |
+ '_PagePopupController', |
+ '_RGBColor', |
+ '_Rect', |
+ '_Request', |
+ '_Response', |
+ '_ServiceWorker', |
+ '_SpeechRecognitionResultList', |
+ '_StyleSheetList', |
+ '_SubtleCrypto', |
+ '_WebKitCSSFilterValue', |
+ '_WebKitCSSMatrix', |
+ '_WebKitCSSTransformValue', |
+ '_WindowTimers', |
+ '_WorkerLocation', |
+ '_WorkerNavigator', |
+ '_XMLHttpRequestProgressEvent' |
+ ], |
+ 'dart:svg': [ |
+ 'AElement', |
+ 'AltGlyphElement', |
+ 'Angle', |
+ 'AnimateElement', |
+ 'AnimateMotionElement', |
+ 'AnimateTransformElement', |
+ 'AnimatedAngle', |
+ 'AnimatedBoolean', |
+ 'AnimatedEnumeration', |
+ 'AnimatedInteger', |
+ 'AnimatedLength', |
+ 'AnimatedLengthList', |
+ 'AnimatedNumber', |
+ 'AnimatedNumberList', |
+ 'AnimatedPreserveAspectRatio', |
+ 'AnimatedRect', |
+ 'AnimatedString', |
+ 'AnimatedTransformList', |
+ 'AnimationElement', |
+ 'CircleElement', |
+ 'ClipPathElement', |
+ 'DefsElement', |
+ 'DescElement', |
+ 'DiscardElement', |
+ 'EllipseElement', |
+ 'FEBlendElement', |
+ 'FEColorMatrixElement', |
+ 'FEComponentTransferElement', |
+ 'FECompositeElement', |
+ 'FEConvolveMatrixElement', |
+ 'FEDiffuseLightingElement', |
+ 'FEDisplacementMapElement', |
+ 'FEDistantLightElement', |
+ 'FEFloodElement', |
+ 'FEFuncAElement', |
+ 'FEFuncBElement', |
+ 'FEFuncGElement', |
+ 'FEFuncRElement', |
+ 'FEGaussianBlurElement', |
+ 'FEImageElement', |
+ 'FEMergeElement', |
+ 'FEMergeNodeElement', |
+ 'FEMorphologyElement', |
+ 'FEOffsetElement', |
+ 'FEPointLightElement', |
+ 'FESpecularLightingElement', |
+ 'FESpotLightElement', |
+ 'FETileElement', |
+ 'FETurbulenceElement', |
+ 'FilterElement', |
+ 'FilterPrimitiveStandardAttributes', |
+ 'FitToViewBox', |
+ 'ForeignObjectElement', |
+ 'GElement', |
+ 'GeometryElement', |
+ 'GraphicsElement', |
+ 'ImageElement', |
+ 'Length', |
+ 'LengthList', |
+ 'LineElement', |
+ 'LinearGradientElement', |
+ 'MarkerElement', |
+ 'MaskElement', |
+ 'Matrix', |
+ 'MetadataElement', |
+ 'Number', |
+ 'NumberList', |
+ 'PathElement', |
+ 'PathSeg', |
+ 'PathSegArcAbs', |
+ 'PathSegArcRel', |
+ 'PathSegClosePath', |
+ 'PathSegCurvetoCubicAbs', |
+ 'PathSegCurvetoCubicRel', |
+ 'PathSegCurvetoCubicSmoothAbs', |
+ 'PathSegCurvetoCubicSmoothRel', |
+ 'PathSegCurvetoQuadraticAbs', |
+ 'PathSegCurvetoQuadraticRel', |
+ 'PathSegCurvetoQuadraticSmoothAbs', |
+ 'PathSegCurvetoQuadraticSmoothRel', |
+ 'PathSegLinetoAbs', |
+ 'PathSegLinetoHorizontalAbs', |
+ 'PathSegLinetoHorizontalRel', |
+ 'PathSegLinetoRel', |
+ 'PathSegLinetoVerticalAbs', |
+ 'PathSegLinetoVerticalRel', |
+ 'PathSegList', |
+ 'PathSegMovetoAbs', |
+ 'PathSegMovetoRel', |
+ 'PatternElement', |
+ 'Point', |
+ 'PointList', |
+ 'PolygonElement', |
+ 'PolylineElement', |
+ 'PreserveAspectRatio', |
+ 'RadialGradientElement', |
+ 'Rect', |
+ 'RectElement', |
+ 'RenderingIntent', |
+ 'ScriptElement', |
+ 'SetElement', |
+ 'StopElement', |
+ 'StringList', |
+ 'StyleElement', |
+ 'SvgElement', |
+ 'SvgSvgElement', |
+ 'SwitchElement', |
+ 'SymbolElement', |
+ 'TSpanElement', |
+ 'Tests', |
+ 'TextContentElement', |
+ 'TextElement', |
+ 'TextPathElement', |
+ 'TextPositioningElement', |
+ 'TitleElement', |
+ 'Transform', |
+ 'TransformList', |
+ 'UnitTypes', |
+ 'UriReference', |
+ 'UseElement', |
+ 'ViewElement', |
+ 'ViewSpec', |
+ 'ZoomAndPan', |
+ 'ZoomEvent', |
+ '_GradientElement', |
+ '_SVGAltGlyphDefElement', |
+ '_SVGAltGlyphItemElement', |
+ '_SVGComponentTransferFunctionElement', |
+ '_SVGCursorElement', |
+ '_SVGFEDropShadowElement', |
+ '_SVGFontElement', |
+ '_SVGFontFaceElement', |
+ '_SVGFontFaceFormatElement', |
+ '_SVGFontFaceNameElement', |
+ '_SVGFontFaceSrcElement', |
+ '_SVGFontFaceUriElement', |
+ '_SVGGlyphElement', |
+ '_SVGGlyphRefElement', |
+ '_SVGHKernElement', |
+ '_SVGMPathElement', |
+ '_SVGMissingGlyphElement', |
+ '_SVGVKernElement' |
+ ], |
+ 'dart:web_audio': [ |
+ 'AnalyserNode', |
+ 'AudioBuffer', |
+ 'AudioBufferSourceNode', |
+ 'AudioContext', |
+ 'AudioDestinationNode', |
+ 'AudioListener', |
+ 'AudioNode', |
+ 'AudioParam', |
+ 'AudioProcessingEvent', |
+ 'AudioSourceNode', |
+ 'BiquadFilterNode', |
+ 'ChannelMergerNode', |
+ 'ChannelSplitterNode', |
+ 'ConvolverNode', |
+ 'DelayNode', |
+ 'DynamicsCompressorNode', |
+ 'GainNode', |
+ 'MediaElementAudioSourceNode', |
+ 'MediaStreamAudioDestinationNode', |
+ 'MediaStreamAudioSourceNode', |
+ 'OfflineAudioCompletionEvent', |
+ 'OfflineAudioContext', |
+ 'OscillatorNode', |
+ 'PannerNode', |
+ 'PeriodicWave', |
+ 'ScriptProcessorNode', |
+ 'WaveShaperNode' |
+ ], |
+ 'dart:web_gl': [ |
+ 'ActiveInfo', |
+ 'AngleInstancedArrays', |
+ 'Buffer', |
+ 'CompressedTextureAtc', |
+ 'CompressedTextureETC1', |
+ 'CompressedTexturePvrtc', |
+ 'CompressedTextureS3TC', |
+ 'ContextAttributes', |
+ 'ContextEvent', |
+ 'DebugRendererInfo', |
+ 'DebugShaders', |
+ 'DepthTexture', |
+ 'DrawBuffers', |
+ 'ExtBlendMinMax', |
+ 'ExtFragDepth', |
+ 'ExtShaderTextureLod', |
+ 'ExtTextureFilterAnisotropic', |
+ 'Framebuffer', |
+ 'LoseContext', |
+ 'OesElementIndexUint', |
+ 'OesStandardDerivatives', |
+ 'OesTextureFloat', |
+ 'OesTextureFloatLinear', |
+ 'OesTextureHalfFloat', |
+ 'OesTextureHalfFloatLinear', |
+ 'OesVertexArrayObject', |
+ 'Program', |
+ 'Renderbuffer', |
+ 'RenderingContext', |
+ 'Shader', |
+ 'ShaderPrecisionFormat', |
+ 'Texture', |
+ 'UniformLocation', |
+ 'VertexArrayObject' |
+ ], |
+ 'dart:web_sql': [ |
+ 'SqlDatabase', |
+ 'SqlError', |
+ 'SqlResultSet', |
+ 'SqlResultSetRowList', |
+ 'SqlTransaction' |
+ ] |
+ }; |
+} |