Allow multiple tags in native clause.

This simplifies, but does not allow us to get rid of, the typeNameOf
functions.

The '*' is no longer necessary, so
  native "*DOMWindow"
becomes
  native  "Window,DOMWindow".

Review URL: https://codereview.chromium.org//14051007

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@21843 260f80e4-7a28-3924-810f-c04153c831b5
This commit is contained in:
sra@google.com
2013-04-22 21:41:35 +00:00
parent d6d7b02ff7
commit fb5b910c07
13 changed files with 569 additions and 582 deletions
@@ -735,7 +735,7 @@ abstract class Compiler implements DiagnosticListener {
// TODO(ngeoffray): Enable annotations on these classes.
ClassElement cls =
isolateHelperLibrary.find(const SourceString('_WorkerStub'));
cls.setNative('"*Worker"');
cls.setNative('"Worker"');
assertMethod = jsHelperLibrary.find(const SourceString('assertHelper'));
identicalFunction = coreLibrary.find(const SourceString('identical'));
@@ -99,18 +99,9 @@ class NativeEmitter {
return backend.namer.isolateAccess(element);
}
bool isNativeGlobal(String quotedName) {
return identical(quotedName[1], '@');
}
String toNativeTag(ClassElement cls) {
List<String> nativeTagsOfClass(ClassElement cls) {
String quotedName = cls.nativeTagInfo.slowToString();
if (isNativeGlobal(quotedName)) {
// Global object, just be like the other types for now.
return quotedName.substring(3, quotedName.length - 1);
} else {
return quotedName.substring(2, quotedName.length - 1);
}
return quotedName.substring(1, quotedName.length - 1).split(',');
}
/**
@@ -185,8 +176,8 @@ class NativeEmitter {
// proto chain.
// TODO(9907): Fix DOM generation. We might need an annotation.
if (classElement.isNative()) {
String nativeTag = toNativeTag(classElement);
if (nativeTag == 'HTMLElement') {
List<String> nativeTags = nativeTagsOfClass(classElement);
if (nativeTags.contains('HTMLElement')) {
nonleafClasses.add(classElement);
needed = true;
}
@@ -207,12 +198,12 @@ class NativeEmitter {
new Map<ClassElement, Set<String>>();
for (ClassElement classElement in classes) {
String nativeTag = toNativeTag(classElement);
List<String> nativeTags = nativeTagsOfClass(classElement);
if (nonleafClasses.contains(classElement)) {
nonleafTags
.putIfAbsent(classElement, () => new Set<String>())
.add(nativeTag);
.addAll(nativeTags);
} else {
ClassElement sufficingInterceptor = classElement;
while (!neededClasses.contains(sufficingInterceptor)) {
@@ -223,7 +214,7 @@ class NativeEmitter {
}
leafTags
.putIfAbsent(sufficingInterceptor, () => new Set<String>())
.add(nativeTag);
.addAll(nativeTags);
}
}
@@ -359,7 +350,6 @@ class NativeEmitter {
// foo(null, y).
ClassElement classElement = member.enclosingElement;
String nativeTagInfo = classElement.nativeTagInfo.slowToString();
List<jsAst.Statement> statements = <jsAst.Statement>[];
potentiallyConvertDartClosuresToJs(statements, member, stubParameters);
@@ -17,9 +17,7 @@ String typeNameInSafari(obj) {
String typeNameInWebKitCommon(tag) {
String name = JS('String', '#', tag);
if (name == 'Window') return 'DOMWindow';
if (name == 'CanvasPixelArray') return 'Uint8ClampedArray';
if (name == 'WebKitMutationObserver') return 'MutationObserver';
if (name == 'AudioChannelMerger') return 'ChannelMergerNode';
if (name == 'AudioChannelSplitter') return 'ChannelSplitterNode';
if (name == 'AudioGainNode') return 'GainNode';
@@ -28,27 +26,21 @@ String typeNameInWebKitCommon(tag) {
if (name == 'Oscillator') return 'OscillatorNode';
if (name == 'RealtimeAnalyserNode') return 'AnalyserNode';
if (name == 'IDBVersionChangeRequest') return 'IDBOpenDBRequest';
if (name == 'WebKitTransitionEvent') return 'TransitionEvent';
return name;
}
String typeNameInOpera(obj) {
String name = JS('String', '#', constructorNameFallback(obj));
if (name == 'Window') return 'DOMWindow';
if (name == 'ApplicationCache') return 'DOMApplicationCache';
return name;
}
String typeNameInFirefox(obj) {
String name = JS('String', '#', constructorNameFallback(obj));
if (name == 'Window') return 'DOMWindow';
if (name == 'BeforeUnloadEvent') return 'Event';
if (name == 'CSS2Properties') return 'CSSStyleDeclaration';
if (name == 'DataTransfer') return 'Clipboard';
if (name == 'DragEvent') return 'MouseEvent';
if (name == 'GeoGeolocation') return 'Geolocation';
if (name == 'MouseScrollEvent') return 'WheelEvent';
if (name == 'OfflineResourceList') return 'DOMApplicationCache';
if (name == 'WorkerMessageEvent') return 'MessageEvent';
if (name == 'XMLDocument') return 'Document';
return name;
@@ -56,14 +48,12 @@ String typeNameInFirefox(obj) {
String typeNameInIE(obj) {
String name = JS('String', '#', constructorNameFallback(obj));
if (name == 'Window') return 'DOMWindow';
if (name == 'Document') {
// IE calls both HTML and XML documents 'Document', so we check for the
// xmlVersion property, which is the empty string on HTML documents.
if (JS('bool', '!!#.xmlVersion', obj)) return 'Document';
return 'HTMLDocument';
}
if (name == 'ApplicationCache') return 'DOMApplicationCache';
if (name == 'BeforeUnloadEvent') return 'Event';
if (name == 'CanvasPixelArray') return 'Uint8ClampedArray';
if (name == 'DataTransfer') return 'Clipboard';
@@ -74,7 +64,6 @@ String typeNameInIE(obj) {
if (name == 'HTMLTableHeaderCellElement') return 'HTMLTableCellElement';
if (name == 'HTMLPhraseElement') return 'HTMLElement';
if (name == 'MSStyleCSSProperties') return 'CSSStyleDeclaration';
if (name == 'MouseWheelEvent') return 'WheelEvent';
if (name == 'Position') return 'Geoposition';
// Patches for types which report themselves as Objects.
File diff suppressed because it is too large Load Diff
@@ -138,7 +138,7 @@ const _annotation_Returns_IDBKey = const Returns(_idbKey);
@DomName('IDBCursor')
class Cursor native "*IDBCursor" {
class Cursor native "IDBCursor" {
@DomName('IDBCursor.delete')
Future delete() {
try {
@@ -209,7 +209,7 @@ class Cursor native "*IDBCursor" {
@DocsEditable
@DomName('IDBCursorWithValue')
class CursorWithValue extends Cursor native "*IDBCursorWithValue" {
class CursorWithValue extends Cursor native "IDBCursorWithValue" {
dynamic get value => _convertNativeToDart_IDBAny(this._get_value);
@JSName('value')
@@ -230,7 +230,7 @@ class CursorWithValue extends Cursor native "*IDBCursorWithValue" {
@SupportedBrowser(SupportedBrowser.FIREFOX, '15')
@SupportedBrowser(SupportedBrowser.IE, '10')
@Experimental
class Database extends EventTarget native "*IDBDatabase" {
class Database extends EventTarget native "IDBDatabase" {
@DomName('IDBDatabase.createObjectStore')
@DocsEditable
ObjectStore createObjectStore(String name,
@@ -352,7 +352,7 @@ class Database extends EventTarget native "*IDBDatabase" {
@SupportedBrowser(SupportedBrowser.FIREFOX, '15')
@SupportedBrowser(SupportedBrowser.IE, '10')
@Experimental
class IdbFactory native "*IDBFactory" {
class IdbFactory native "IDBFactory" {
/**
* Checks to see if Indexed DB is supported on the current platform.
*/
@@ -481,7 +481,7 @@ Future _completeRequest(Request request) {
@DomName('IDBIndex')
class Index native "*IDBIndex" {
class Index native "IDBIndex" {
@DomName('IDBIndex.count')
Future<int> count([key_OR_range]) {
try {
@@ -639,7 +639,7 @@ class Index native "*IDBIndex" {
@DomName('IDBKeyRange')
class KeyRange native "*IDBKeyRange" {
class KeyRange native "IDBKeyRange" {
@DomName('IDBKeyRange.only')
factory KeyRange.only(/*Key*/ value) =>
_KeyRangeFactoryProvider.createKeyRange_only(value);
@@ -702,7 +702,7 @@ class KeyRange native "*IDBKeyRange" {
@DomName('IDBObjectStore')
class ObjectStore native "*IDBObjectStore" {
class ObjectStore native "IDBObjectStore" {
@DomName('IDBObjectStore.add')
Future add(value, [key]) {
@@ -1030,7 +1030,7 @@ class ObjectStore native "*IDBObjectStore" {
@DocsEditable
@DomName('IDBOpenDBRequest')
class OpenDBRequest extends Request implements EventTarget native "*IDBOpenDBRequest" {
class OpenDBRequest extends Request implements EventTarget native "IDBOpenDBRequest" {
@DomName('IDBOpenDBRequest.blockedEvent')
@DocsEditable
@@ -1055,7 +1055,7 @@ class OpenDBRequest extends Request implements EventTarget native "*IDBOpenDBReq
@DocsEditable
@DomName('IDBRequest')
class Request extends EventTarget native "*IDBRequest" {
class Request extends EventTarget native "IDBRequest" {
@DomName('IDBRequest.errorEvent')
@DocsEditable
@@ -1125,7 +1125,7 @@ class Request extends EventTarget native "*IDBRequest" {
@DomName('IDBTransaction')
class Transaction extends EventTarget native "*IDBTransaction" {
class Transaction extends EventTarget native "IDBTransaction" {
/**
* Provides a Future which will be completed once the transaction has
@@ -1227,7 +1227,7 @@ class Transaction extends EventTarget native "*IDBTransaction" {
@DocsEditable
@DomName('IDBVersionChangeEvent')
class VersionChangeEvent extends Event native "*IDBVersionChangeEvent" {
class VersionChangeEvent extends Event native "IDBVersionChangeEvent" {
@DomName('IDBVersionChangeEvent.newVersion')
@DocsEditable
@@ -1244,5 +1244,5 @@ class VersionChangeEvent extends Event native "*IDBVersionChangeEvent" {
@DocsEditable
@DomName('IDBAny')
abstract class _IDBAny native "*IDBAny" {
abstract class _IDBAny native "IDBAny" {
}
File diff suppressed because it is too large Load Diff
@@ -33,7 +33,7 @@ class Endianness {
@SupportedBrowser(SupportedBrowser.FIREFOX)
@SupportedBrowser(SupportedBrowser.IE, '10')
@SupportedBrowser(SupportedBrowser.SAFARI)
class ByteBuffer native "*ArrayBuffer" {
class ByteBuffer native "ArrayBuffer" {
@JSName('byteLength')
@DomName('ArrayBuffer.byteLength')
@DocsEditable
@@ -45,7 +45,7 @@ class ByteBuffer native "*ArrayBuffer" {
@SupportedBrowser(SupportedBrowser.FIREFOX)
@SupportedBrowser(SupportedBrowser.IE, '10')
@SupportedBrowser(SupportedBrowser.SAFARI)
class TypedData native "*ArrayBufferView" {
class TypedData native "ArrayBufferView" {
@DomName('ArrayBufferView.buffer')
@DocsEditable
@Creates('ByteBuffer')
@@ -68,7 +68,7 @@ class TypedData native "*ArrayBufferView" {
@DocsEditable
@DomName('DataView')
class ByteData extends TypedData native "*DataView" {
class ByteData extends TypedData native "DataView" {
@DomName('DataView.DataView')
@DocsEditable
factory ByteData(int length) => JS('ByteData', 'new DataView(#)', length);
@@ -211,7 +211,7 @@ class ByteData extends TypedData native "*DataView" {
@DocsEditable
@DomName('Float32Array')
class Float32List extends TypedData implements JavaScriptIndexingBehavior, List<double> native "*Float32Array" {
class Float32List extends TypedData implements JavaScriptIndexingBehavior, List<double> native "Float32Array" {
@DomName('Float32Array.Float32Array')
@DocsEditable
factory Float32List(int length) =>
@@ -434,7 +434,7 @@ class Float32List extends TypedData implements JavaScriptIndexingBehavior, List<
@DocsEditable
@DomName('Float64Array')
class Float64List extends TypedData implements JavaScriptIndexingBehavior, List<double> native "*Float64Array" {
class Float64List extends TypedData implements JavaScriptIndexingBehavior, List<double> native "Float64Array" {
@DomName('Float64Array.Float64Array')
@DocsEditable
@@ -658,7 +658,7 @@ class Float64List extends TypedData implements JavaScriptIndexingBehavior, List<
@DocsEditable
@DomName('Int16Array')
class Int16List extends TypedData implements JavaScriptIndexingBehavior, List<int> native "*Int16Array" {
class Int16List extends TypedData implements JavaScriptIndexingBehavior, List<int> native "Int16Array" {
@DomName('Int16Array.Int16Array')
@DocsEditable
@@ -881,7 +881,7 @@ class Int16List extends TypedData implements JavaScriptIndexingBehavior, List<in
@DocsEditable
@DomName('Int32Array')
class Int32List extends TypedData implements JavaScriptIndexingBehavior, List<int> native "*Int32Array" {
class Int32List extends TypedData implements JavaScriptIndexingBehavior, List<int> native "Int32Array" {
@DomName('Int32Array.Int32Array')
@DocsEditable
@@ -1104,7 +1104,7 @@ class Int32List extends TypedData implements JavaScriptIndexingBehavior, List<in
@DocsEditable
@DomName('Int8Array')
class Int8List extends TypedData implements JavaScriptIndexingBehavior, List<int> native "*Int8Array" {
class Int8List extends TypedData implements JavaScriptIndexingBehavior, List<int> native "Int8Array" {
@DomName('Int8Array.Int8Array')
@DocsEditable
@@ -1327,7 +1327,7 @@ class Int8List extends TypedData implements JavaScriptIndexingBehavior, List<int
@DocsEditable
@DomName('Uint16Array')
class Uint16List extends TypedData implements JavaScriptIndexingBehavior, List<int> native "*Uint16Array" {
class Uint16List extends TypedData implements JavaScriptIndexingBehavior, List<int> native "Uint16Array" {
@DomName('Uint16Array.Uint16Array')
@DocsEditable
@@ -1550,7 +1550,7 @@ class Uint16List extends TypedData implements JavaScriptIndexingBehavior, List<i
@DocsEditable
@DomName('Uint32Array')
class Uint32List extends TypedData implements JavaScriptIndexingBehavior, List<int> native "*Uint32Array" {
class Uint32List extends TypedData implements JavaScriptIndexingBehavior, List<int> native "Uint32Array" {
@DomName('Uint32Array.Uint32Array')
@DocsEditable
@@ -1773,7 +1773,7 @@ class Uint32List extends TypedData implements JavaScriptIndexingBehavior, List<i
@DocsEditable
@DomName('Uint8ClampedArray')
class Uint8ClampedList extends Uint8List implements JavaScriptIndexingBehavior, List<int> native "*Uint8ClampedArray" {
class Uint8ClampedList extends Uint8List implements JavaScriptIndexingBehavior, List<int> native "Uint8ClampedArray" {
@DomName('Uint8ClampedArray.Uint8ClampedArray')
@DocsEditable
@@ -1993,7 +1993,7 @@ class Uint8ClampedList extends Uint8List implements JavaScriptIndexingBehavior,
@DocsEditable
@DomName('Uint8Array')
class Uint8List extends TypedData implements JavaScriptIndexingBehavior, List<int> native "*Uint8Array" {
class Uint8List extends TypedData implements JavaScriptIndexingBehavior, List<int> native "Uint8Array" {
@DomName('Uint8Array.Uint8Array')
@DocsEditable
@@ -22,7 +22,7 @@ import 'dart:_foreign_helper' show JS;
@DocsEditable
@DomName('AnalyserNode')
class AnalyserNode extends AudioNode native "*AnalyserNode" {
class AnalyserNode extends AudioNode native "AnalyserNode" {
@DomName('AnalyserNode.fftSize')
@DocsEditable
@@ -63,7 +63,7 @@ class AnalyserNode extends AudioNode native "*AnalyserNode" {
@DocsEditable
@DomName('AudioBuffer')
class AudioBuffer native "*AudioBuffer" {
class AudioBuffer native "AudioBuffer" {
@DomName('AudioBuffer.duration')
@DocsEditable
@@ -105,7 +105,7 @@ typedef void AudioBufferCallback(AudioBuffer audioBuffer);
@DomName('AudioBufferSourceNode')
class AudioBufferSourceNode extends AudioSourceNode native "*AudioBufferSourceNode" {
class AudioBufferSourceNode extends AudioSourceNode native "AudioBufferSourceNode" {
// TODO(efortuna): Remove these methods when Chrome stable also uses start
// instead of noteOn.
@@ -180,7 +180,7 @@ class AudioBufferSourceNode extends AudioSourceNode native "*AudioBufferSourceNo
@DomName('AudioContext')
class AudioContext extends EventTarget native "*AudioContext" {
class AudioContext extends EventTarget native "AudioContext" {
@DomName('AudioContext.completeEvent')
@DocsEditable
@@ -319,7 +319,7 @@ class AudioContext extends EventTarget native "*AudioContext" {
@DocsEditable
@DomName('AudioDestinationNode')
class AudioDestinationNode extends AudioNode native "*AudioDestinationNode" {
class AudioDestinationNode extends AudioNode native "AudioDestinationNode" {
@DomName('AudioDestinationNode.maxChannelCount')
@DocsEditable
@@ -332,7 +332,7 @@ class AudioDestinationNode extends AudioNode native "*AudioDestinationNode" {
@DocsEditable
@DomName('AudioListener')
class AudioListener native "*AudioListener" {
class AudioListener native "AudioListener" {
@DomName('AudioListener.dopplerFactor')
@DocsEditable
@@ -361,7 +361,7 @@ class AudioListener native "*AudioListener" {
@DocsEditable
@DomName('AudioNode')
class AudioNode native "*AudioNode" {
class AudioNode native "AudioNode" {
@DomName('AudioNode.channelCount')
@DocsEditable
@@ -402,7 +402,7 @@ class AudioNode native "*AudioNode" {
@DocsEditable
@DomName('AudioParam')
class AudioParam native "*AudioParam" {
class AudioParam native "AudioParam" {
@DomName('AudioParam.defaultValue')
@DocsEditable
@@ -459,7 +459,7 @@ class AudioParam native "*AudioParam" {
@DocsEditable
@DomName('AudioProcessingEvent')
class AudioProcessingEvent extends Event native "*AudioProcessingEvent" {
class AudioProcessingEvent extends Event native "AudioProcessingEvent" {
@DomName('AudioProcessingEvent.inputBuffer')
@DocsEditable
@@ -476,7 +476,7 @@ class AudioProcessingEvent extends Event native "*AudioProcessingEvent" {
@DocsEditable
@DomName('AudioSourceNode')
class AudioSourceNode extends AudioNode native "*AudioSourceNode" {
class AudioSourceNode extends AudioNode native "AudioSourceNode" {
}
// Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
@@ -485,7 +485,7 @@ class AudioSourceNode extends AudioNode native "*AudioSourceNode" {
@DocsEditable
@DomName('BiquadFilterNode')
class BiquadFilterNode extends AudioNode native "*BiquadFilterNode" {
class BiquadFilterNode extends AudioNode native "BiquadFilterNode" {
static const int ALLPASS = 7;
@@ -534,7 +534,7 @@ class BiquadFilterNode extends AudioNode native "*BiquadFilterNode" {
@DocsEditable
@DomName('ChannelMergerNode')
class ChannelMergerNode extends AudioNode native "*ChannelMergerNode" {
class ChannelMergerNode extends AudioNode native "ChannelMergerNode" {
}
// Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
@@ -543,7 +543,7 @@ class ChannelMergerNode extends AudioNode native "*ChannelMergerNode" {
@DocsEditable
@DomName('ChannelSplitterNode')
class ChannelSplitterNode extends AudioNode native "*ChannelSplitterNode" {
class ChannelSplitterNode extends AudioNode native "ChannelSplitterNode" {
}
// Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
@@ -552,7 +552,7 @@ class ChannelSplitterNode extends AudioNode native "*ChannelSplitterNode" {
@DocsEditable
@DomName('ConvolverNode')
class ConvolverNode extends AudioNode native "*ConvolverNode" {
class ConvolverNode extends AudioNode native "ConvolverNode" {
@DomName('ConvolverNode.buffer')
@DocsEditable
@@ -569,7 +569,7 @@ class ConvolverNode extends AudioNode native "*ConvolverNode" {
@DocsEditable
@DomName('DelayNode')
class DelayNode extends AudioNode native "*DelayNode" {
class DelayNode extends AudioNode native "DelayNode" {
@DomName('DelayNode.delayTime')
@DocsEditable
@@ -582,7 +582,7 @@ class DelayNode extends AudioNode native "*DelayNode" {
@DocsEditable
@DomName('DynamicsCompressorNode')
class DynamicsCompressorNode extends AudioNode native "*DynamicsCompressorNode" {
class DynamicsCompressorNode extends AudioNode native "DynamicsCompressorNode" {
@DomName('DynamicsCompressorNode.attack')
@DocsEditable
@@ -615,7 +615,7 @@ class DynamicsCompressorNode extends AudioNode native "*DynamicsCompressorNode"
@DocsEditable
@DomName('GainNode')
class GainNode extends AudioNode native "*GainNode" {
class GainNode extends AudioNode native "GainNode" {
@DomName('GainNode.gain')
@DocsEditable
@@ -628,7 +628,7 @@ class GainNode extends AudioNode native "*GainNode" {
@DocsEditable
@DomName('MediaElementAudioSourceNode')
class MediaElementAudioSourceNode extends AudioSourceNode native "*MediaElementAudioSourceNode" {
class MediaElementAudioSourceNode extends AudioSourceNode native "MediaElementAudioSourceNode" {
@DomName('MediaElementAudioSourceNode.mediaElement')
@DocsEditable
@@ -641,7 +641,7 @@ class MediaElementAudioSourceNode extends AudioSourceNode native "*MediaElementA
@DocsEditable
@DomName('MediaStreamAudioDestinationNode')
class MediaStreamAudioDestinationNode extends AudioSourceNode native "*MediaStreamAudioDestinationNode" {
class MediaStreamAudioDestinationNode extends AudioSourceNode native "MediaStreamAudioDestinationNode" {
@DomName('MediaStreamAudioDestinationNode.stream')
@DocsEditable
@@ -654,7 +654,7 @@ class MediaStreamAudioDestinationNode extends AudioSourceNode native "*MediaStre
@DocsEditable
@DomName('MediaStreamAudioSourceNode')
class MediaStreamAudioSourceNode extends AudioSourceNode native "*MediaStreamAudioSourceNode" {
class MediaStreamAudioSourceNode extends AudioSourceNode native "MediaStreamAudioSourceNode" {
@DomName('MediaStreamAudioSourceNode.mediaStream')
@DocsEditable
@@ -667,7 +667,7 @@ class MediaStreamAudioSourceNode extends AudioSourceNode native "*MediaStreamAud
@DocsEditable
@DomName('OfflineAudioCompletionEvent')
class OfflineAudioCompletionEvent extends Event native "*OfflineAudioCompletionEvent" {
class OfflineAudioCompletionEvent extends Event native "OfflineAudioCompletionEvent" {
@DomName('OfflineAudioCompletionEvent.renderedBuffer')
@DocsEditable
@@ -680,7 +680,7 @@ class OfflineAudioCompletionEvent extends Event native "*OfflineAudioCompletionE
@DocsEditable
@DomName('OfflineAudioContext')
class OfflineAudioContext extends AudioContext implements EventTarget native "*OfflineAudioContext" {
class OfflineAudioContext extends AudioContext implements EventTarget native "OfflineAudioContext" {
@DomName('OfflineAudioContext.OfflineAudioContext')
@DocsEditable
@@ -696,7 +696,7 @@ class OfflineAudioContext extends AudioContext implements EventTarget native "*O
@DocsEditable
@DomName('OscillatorNode')
class OscillatorNode extends AudioSourceNode native "*OscillatorNode" {
class OscillatorNode extends AudioSourceNode native "OscillatorNode" {
static const int CUSTOM = 4;
@@ -751,7 +751,7 @@ class OscillatorNode extends AudioSourceNode native "*OscillatorNode" {
@DocsEditable
@DomName('PannerNode')
class PannerNode extends AudioNode native "*PannerNode" {
class PannerNode extends AudioNode native "PannerNode" {
static const int EQUALPOWER = 0;
@@ -815,7 +815,7 @@ class PannerNode extends AudioNode native "*PannerNode" {
@DomName('ScriptProcessorNode')
class ScriptProcessorNode extends AudioNode native "*ScriptProcessorNode" {
class ScriptProcessorNode extends AudioNode native "ScriptProcessorNode" {
Stream<AudioProcessingEvent> _eventStream;
/**
@@ -861,7 +861,7 @@ class ScriptProcessorNode extends AudioNode native "*ScriptProcessorNode" {
@DocsEditable
@DomName('WaveShaperNode')
class WaveShaperNode extends AudioNode native "*WaveShaperNode" {
class WaveShaperNode extends AudioNode native "WaveShaperNode" {
@DomName('WaveShaperNode.curve')
@DocsEditable
@@ -876,5 +876,5 @@ class WaveShaperNode extends AudioNode native "*WaveShaperNode" {
@DocsEditable
@DomName('WaveTable')
class WaveTable native "*WaveTable" {
class WaveTable native "WaveTable" {
}
+27 -27
View File
@@ -323,7 +323,7 @@ const int ZERO = RenderingContext.ZERO;
@DocsEditable
@DomName('WebGLActiveInfo')
class ActiveInfo native "*WebGLActiveInfo" {
class ActiveInfo native "WebGLActiveInfo" {
@DomName('WebGLActiveInfo.name')
@DocsEditable
@@ -344,7 +344,7 @@ class ActiveInfo native "*WebGLActiveInfo" {
@DocsEditable
@DomName('WebGLBuffer')
class Buffer native "*WebGLBuffer" {
class Buffer native "WebGLBuffer" {
}
// Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
@@ -353,7 +353,7 @@ class Buffer native "*WebGLBuffer" {
@DocsEditable
@DomName('WebGLCompressedTextureATC')
class CompressedTextureAtc native "*WebGLCompressedTextureATC" {
class CompressedTextureAtc native "WebGLCompressedTextureATC" {
static const int COMPRESSED_RGBA_ATC_EXPLICIT_ALPHA_WEBGL = 0x8C93;
@@ -368,7 +368,7 @@ class CompressedTextureAtc native "*WebGLCompressedTextureATC" {
@DocsEditable
@DomName('WebGLCompressedTexturePVRTC')
class CompressedTexturePvrtc native "*WebGLCompressedTexturePVRTC" {
class CompressedTexturePvrtc native "WebGLCompressedTexturePVRTC" {
static const int COMPRESSED_RGBA_PVRTC_2BPPV1_IMG = 0x8C03;
@@ -385,7 +385,7 @@ class CompressedTexturePvrtc native "*WebGLCompressedTexturePVRTC" {
@DocsEditable
@DomName('WebGLCompressedTextureS3TC')
class CompressedTextureS3TC native "*WebGLCompressedTextureS3TC" {
class CompressedTextureS3TC native "WebGLCompressedTextureS3TC" {
static const int COMPRESSED_RGBA_S3TC_DXT1_EXT = 0x83F1;
@@ -402,7 +402,7 @@ class CompressedTextureS3TC native "*WebGLCompressedTextureS3TC" {
@DocsEditable
@DomName('WebGLContextAttributes')
class ContextAttributes native "*WebGLContextAttributes" {
class ContextAttributes native "WebGLContextAttributes" {
@DomName('WebGLContextAttributes.alpha')
@DocsEditable
@@ -435,7 +435,7 @@ class ContextAttributes native "*WebGLContextAttributes" {
@DocsEditable
@DomName('WebGLContextEvent')
class ContextEvent extends Event native "*WebGLContextEvent" {
class ContextEvent extends Event native "WebGLContextEvent" {
@DomName('WebGLContextEvent.statusMessage')
@DocsEditable
@@ -448,7 +448,7 @@ class ContextEvent extends Event native "*WebGLContextEvent" {
@DocsEditable
@DomName('WebGLDebugRendererInfo')
class DebugRendererInfo native "*WebGLDebugRendererInfo" {
class DebugRendererInfo native "WebGLDebugRendererInfo" {
static const int UNMASKED_RENDERER_WEBGL = 0x9246;
@@ -461,7 +461,7 @@ class DebugRendererInfo native "*WebGLDebugRendererInfo" {
@DocsEditable
@DomName('WebGLDebugShaders')
class DebugShaders native "*WebGLDebugShaders" {
class DebugShaders native "WebGLDebugShaders" {
@DomName('WebGLDebugShaders.getTranslatedShaderSource')
@DocsEditable
@@ -474,7 +474,7 @@ class DebugShaders native "*WebGLDebugShaders" {
@DocsEditable
@DomName('WebGLDepthTexture')
class DepthTexture native "*WebGLDepthTexture" {
class DepthTexture native "WebGLDepthTexture" {
static const int UNSIGNED_INT_24_8_WEBGL = 0x84FA;
}
@@ -485,7 +485,7 @@ class DepthTexture native "*WebGLDepthTexture" {
@DocsEditable
@DomName('EXTDrawBuffers')
class ExtDrawBuffers native "*EXTDrawBuffers" {
class ExtDrawBuffers native "EXTDrawBuffers" {
static const int COLOR_ATTACHMENT0_EXT = 0x8CE0;
@@ -562,7 +562,7 @@ class ExtDrawBuffers native "*EXTDrawBuffers" {
@DocsEditable
@DomName('EXTTextureFilterAnisotropic')
class ExtTextureFilterAnisotropic native "*EXTTextureFilterAnisotropic" {
class ExtTextureFilterAnisotropic native "EXTTextureFilterAnisotropic" {
static const int MAX_TEXTURE_MAX_ANISOTROPY_EXT = 0x84FF;
@@ -575,7 +575,7 @@ class ExtTextureFilterAnisotropic native "*EXTTextureFilterAnisotropic" {
@DocsEditable
@DomName('WebGLFramebuffer')
class Framebuffer native "*WebGLFramebuffer" {
class Framebuffer native "WebGLFramebuffer" {
}
// Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
@@ -584,7 +584,7 @@ class Framebuffer native "*WebGLFramebuffer" {
@DocsEditable
@DomName('WebGLLoseContext')
class LoseContext native "*WebGLLoseContext" {
class LoseContext native "WebGLLoseContext" {
@DomName('WebGLLoseContext.loseContext')
@DocsEditable
@@ -601,7 +601,7 @@ class LoseContext native "*WebGLLoseContext" {
@DocsEditable
@DomName('OESElementIndexUint')
class OesElementIndexUint native "*OESElementIndexUint" {
class OesElementIndexUint native "OESElementIndexUint" {
}
// Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
@@ -610,7 +610,7 @@ class OesElementIndexUint native "*OESElementIndexUint" {
@DocsEditable
@DomName('OESStandardDerivatives')
class OesStandardDerivatives native "*OESStandardDerivatives" {
class OesStandardDerivatives native "OESStandardDerivatives" {
static const int FRAGMENT_SHADER_DERIVATIVE_HINT_OES = 0x8B8B;
}
@@ -621,7 +621,7 @@ class OesStandardDerivatives native "*OESStandardDerivatives" {
@DocsEditable
@DomName('OESTextureFloat')
class OesTextureFloat native "*OESTextureFloat" {
class OesTextureFloat native "OESTextureFloat" {
}
// Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
@@ -630,7 +630,7 @@ class OesTextureFloat native "*OESTextureFloat" {
@DocsEditable
@DomName('OESTextureHalfFloat')
class OesTextureHalfFloat native "*OESTextureHalfFloat" {
class OesTextureHalfFloat native "OESTextureHalfFloat" {
}
// Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
@@ -639,7 +639,7 @@ class OesTextureHalfFloat native "*OESTextureHalfFloat" {
@DocsEditable
@DomName('OESVertexArrayObject')
class OesVertexArrayObject native "*OESVertexArrayObject" {
class OesVertexArrayObject native "OESVertexArrayObject" {
static const int VERTEX_ARRAY_BINDING_OES = 0x85B5;
@@ -670,7 +670,7 @@ class OesVertexArrayObject native "*OESVertexArrayObject" {
@DocsEditable
@DomName('WebGLProgram')
class Program native "*WebGLProgram" {
class Program native "WebGLProgram" {
}
// Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
@@ -679,7 +679,7 @@ class Program native "*WebGLProgram" {
@DocsEditable
@DomName('WebGLRenderbuffer')
class Renderbuffer native "*WebGLRenderbuffer" {
class Renderbuffer native "WebGLRenderbuffer" {
}
// Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
@@ -691,7 +691,7 @@ class Renderbuffer native "*WebGLRenderbuffer" {
@SupportedBrowser(SupportedBrowser.CHROME)
@SupportedBrowser(SupportedBrowser.FIREFOX)
@Experimental
class RenderingContext extends CanvasRenderingContext native "*WebGLRenderingContext" {
class RenderingContext extends CanvasRenderingContext native "WebGLRenderingContext" {
/// Checks if this type is supported on the current platform.
static bool get supported => JS('bool', '!!(window.WebGLRenderingContext)');
@@ -1939,7 +1939,7 @@ class RenderingContext extends CanvasRenderingContext native "*WebGLRenderingCon
@DocsEditable
@DomName('WebGLShader')
class Shader native "*WebGLShader" {
class Shader native "WebGLShader" {
}
// Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
@@ -1948,7 +1948,7 @@ class Shader native "*WebGLShader" {
@DocsEditable
@DomName('WebGLShaderPrecisionFormat')
class ShaderPrecisionFormat native "*WebGLShaderPrecisionFormat" {
class ShaderPrecisionFormat native "WebGLShaderPrecisionFormat" {
@DomName('WebGLShaderPrecisionFormat.precision')
@DocsEditable
@@ -1969,7 +1969,7 @@ class ShaderPrecisionFormat native "*WebGLShaderPrecisionFormat" {
@DocsEditable
@DomName('WebGLTexture')
class Texture native "*WebGLTexture" {
class Texture native "WebGLTexture" {
}
// Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
@@ -1978,7 +1978,7 @@ class Texture native "*WebGLTexture" {
@DocsEditable
@DomName('WebGLUniformLocation')
class UniformLocation native "*WebGLUniformLocation" {
class UniformLocation native "WebGLUniformLocation" {
}
// Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
@@ -1987,5 +1987,5 @@ class UniformLocation native "*WebGLUniformLocation" {
@DocsEditable
@DomName('WebGLVertexArrayObjectOES')
class VertexArrayObject native "*WebGLVertexArrayObjectOES" {
class VertexArrayObject native "WebGLVertexArrayObjectOES" {
}
+7 -7
View File
@@ -66,7 +66,7 @@ typedef void SqlTransactionErrorCallback(SqlError error);
@SupportedBrowser(SupportedBrowser.CHROME)
@SupportedBrowser(SupportedBrowser.SAFARI)
@Experimental
class SqlDatabase native "*Database" {
class SqlDatabase native "Database" {
/// Checks if this type is supported on the current platform.
static bool get supported => JS('bool', '!!(window.openDatabase)');
@@ -106,7 +106,7 @@ class SqlDatabase native "*Database" {
@DocsEditable
@DomName('SQLError')
class SqlError native "*SQLError" {
class SqlError native "SQLError" {
static const int CONSTRAINT_ERR = 6;
@@ -139,7 +139,7 @@ class SqlError native "*SQLError" {
@DocsEditable
@DomName('SQLException')
class SqlException native "*SQLException" {
class SqlException native "SQLException" {
static const int CONSTRAINT_ERR = 6;
@@ -172,7 +172,7 @@ class SqlException native "*SQLException" {
@DocsEditable
@DomName('SQLResultSet')
class SqlResultSet native "*SQLResultSet" {
class SqlResultSet native "SQLResultSet" {
@DomName('SQLResultSet.insertId')
@DocsEditable
@@ -193,7 +193,7 @@ class SqlResultSet native "*SQLResultSet" {
@DocsEditable
@DomName('SQLResultSetRowList')
class SqlResultSetRowList implements JavaScriptIndexingBehavior, List<Map> native "*SQLResultSetRowList" {
class SqlResultSetRowList implements JavaScriptIndexingBehavior, List<Map> native "SQLResultSetRowList" {
@DomName('SQLResultSetRowList.length')
@DocsEditable
@@ -421,7 +421,7 @@ class SqlResultSetRowList implements JavaScriptIndexingBehavior, List<Map> nativ
@SupportedBrowser(SupportedBrowser.CHROME)
@SupportedBrowser(SupportedBrowser.SAFARI)
@Experimental
class SqlTransaction native "*SQLTransaction" {
class SqlTransaction native "SQLTransaction" {
@DomName('SQLTransaction.executeSql')
@DocsEditable
@@ -437,5 +437,5 @@ class SqlTransaction native "*SQLTransaction" {
@SupportedBrowser(SupportedBrowser.CHROME)
@SupportedBrowser(SupportedBrowser.SAFARI)
@Experimental
abstract class _SQLTransactionSync native "*SQLTransactionSync" {
abstract class _SQLTransactionSync native "SQLTransactionSync" {
}
+14 -6
View File
@@ -77,12 +77,20 @@ interface_factories = monitored.Dict('generator.interface_factories', {
#
_dart2js_dom_custom_native_specs = monitored.Dict(
'generator._dart2js_dom_custom_native_specs', {
# Decorate the singleton Console object, if present (workers do not have a
# console).
'Console': "=(typeof console == 'undefined' ? {} : console)",
# DOMWindow aliased with global scope.
'Window': '@*DOMWindow',
# Nodes with different tags in different browsers can be listed as multiple
# tags here provided there is not conflict in usage (e.g. browser X has tag
# T and no other browser has tag T).
'DOMApplicationCache':
'ApplicationCache,DOMApplicationCache,OfflineResourceList',
'MutationObserver': 'MutationObserver,WebkitMutationObserver',
'TransitionEvent': 'TransitionEvent,WebkitTransitionEvent',
'WheelEvent': 'WheelEvent,MouseWheelEvent,MouseScrollEvent',
}, dart2jsOnly=True)
def IsRegisteredType(type_name):
@@ -94,7 +102,7 @@ def MakeNativeSpec(javascript_binding_name):
else:
# Make the class 'hidden' so it is dynamically patched at runtime. This
# is useful for browser compat.
return '*' + javascript_binding_name
return javascript_binding_name
def MatchSourceFilter(thing):
@@ -74,7 +74,7 @@ List<Element> queryAll(String selector) => document.queryAll(selector);
// Workaround for tags like <cite> that lack their own Element subclass --
// Dart issue 1990.
class _HTMLElement extends Element native "*HTMLElement" {
class _HTMLElement extends Element native "HTMLElement" {
}
// Support for Send/ReceivePortSync.
@@ -5,7 +5,7 @@
part of $LIBRARYNAME;
$if DART2JS
$(ANNOTATIONS)class $CLASSNAME$EXTENDS$IMPLEMENTS native "@*DOMWindow" {
$(ANNOTATIONS)class $CLASSNAME$EXTENDS$IMPLEMENTS native "Window,DOMWindow" {
$else
$(ANNOTATIONS)class $CLASSNAME$EXTENDS$IMPLEMENTS$NATIVESPEC {
$endif