mirror of
https://github.com/dart-lang/sdk
synced 2024-09-21 07:21:29 +00:00
Switch IDB Database.transaction to use a template to do the right type conversions
BUG= Review URL: https://codereview.chromium.org/1473443003 .
This commit is contained in:
parent
670db50707
commit
d2b1388ed1
|
@ -31921,9 +31921,9 @@ class Window extends EventTarget implements WindowEventHandlers, WindowBase, Glo
|
|||
*
|
||||
* ## Other resources
|
||||
*
|
||||
* * [Loading web pages]
|
||||
* (http://www.whatwg.org/specs/web-apps/current-work/multipage/browsers.html)
|
||||
* from WHATWG.
|
||||
* * [Loading web
|
||||
* pages](https://html.spec.whatwg.org/multipage/browsers.html)
|
||||
* from WHATWG.
|
||||
*/
|
||||
Document get document => JS('Document', '#.document', this);
|
||||
|
||||
|
@ -31937,10 +31937,10 @@ class Window extends EventTarget implements WindowEventHandlers, WindowBase, Glo
|
|||
*
|
||||
* ## Other resources
|
||||
*
|
||||
* * [Window.open]
|
||||
* (https://developer.mozilla.org/en-US/docs/Web/API/Window.open) from MDN.
|
||||
* * [Window open]
|
||||
* (http://docs.webplatform.org/wiki/dom/methods/open) from WebPlatform.org.
|
||||
* * [Window.open](https://developer.mozilla.org/en-US/docs/Web/API/Window.open)
|
||||
* from MDN.
|
||||
* * [Window open](http://docs.webplatform.org/wiki/dom/methods/open)
|
||||
* from WebPlatform.org.
|
||||
*/
|
||||
WindowBase open(String url, String name, [String options]) {
|
||||
if (options == null) {
|
||||
|
@ -32002,8 +32002,8 @@ class Window extends EventTarget implements WindowEventHandlers, WindowBase, Glo
|
|||
*
|
||||
* ## Other resources
|
||||
*
|
||||
* * [Window.cancelAnimationFrame]
|
||||
* (https://developer.mozilla.org/en-US/docs/Web/API/Window.cancelAnimationFrame) from MDN.
|
||||
* * [Window.cancelAnimationFrame](https://developer.mozilla.org/en-US/docs/Web/API/Window.cancelAnimationFrame)
|
||||
* from MDN.
|
||||
*/
|
||||
void cancelAnimationFrame(int id) {
|
||||
_ensureRequestAnimationFrame();
|
||||
|
@ -33772,10 +33772,10 @@ class Window extends EventTarget implements WindowEventHandlers, WindowBase, Glo
|
|||
*
|
||||
* ## Other resources
|
||||
*
|
||||
* * [Window.moveTo]
|
||||
* (https://developer.mozilla.org/en-US/docs/Web/API/Window.moveTo) from MDN.
|
||||
* * [Window.moveTo]
|
||||
* (http://dev.w3.org/csswg/cssom-view/#dom-window-moveto) from W3C.
|
||||
* * [Window.moveTo](https://developer.mozilla.org/en-US/docs/Web/API/Window.moveTo)
|
||||
* from MDN.
|
||||
* * [Window.moveTo](http://dev.w3.org/csswg/cssom-view/#dom-window-moveto)
|
||||
* from W3C.
|
||||
*/
|
||||
void moveTo(Point p) {
|
||||
_moveTo(p.x, p.y);
|
||||
|
@ -33794,10 +33794,10 @@ class Window extends EventTarget implements WindowEventHandlers, WindowBase, Glo
|
|||
*
|
||||
* ## Other resources
|
||||
*
|
||||
* * [The Screen interface specification]
|
||||
* (http://www.w3.org/TR/cssom-view/#screen) from W3C.
|
||||
* * [scrollX]
|
||||
* (https://developer.mozilla.org/en-US/docs/Web/API/Window.scrollX) from MDN.
|
||||
* * [The Screen interface
|
||||
* specification](http://www.w3.org/TR/cssom-view/#screen) from W3C.
|
||||
* * [scrollX](https://developer.mozilla.org/en-US/docs/Web/API/Window.scrollX)
|
||||
* from MDN.
|
||||
*/
|
||||
@DomName('Window.scrollX')
|
||||
@DocsEditable()
|
||||
|
@ -33810,10 +33810,10 @@ class Window extends EventTarget implements WindowEventHandlers, WindowBase, Glo
|
|||
*
|
||||
* ## Other resources
|
||||
*
|
||||
* * [The Screen interface specification]
|
||||
* (http://www.w3.org/TR/cssom-view/#screen) from W3C.
|
||||
* * [scrollY]
|
||||
* (https://developer.mozilla.org/en-US/docs/Web/API/Window.scrollY) from MDN.
|
||||
* * [The Screen interface
|
||||
* specification](http://www.w3.org/TR/cssom-view/#screen) from W3C.
|
||||
* * [scrollY](https://developer.mozilla.org/en-US/docs/Web/API/Window.scrollY)
|
||||
* from MDN.
|
||||
*/
|
||||
@DomName('Window.scrollY')
|
||||
@DocsEditable()
|
||||
|
|
|
@ -40454,10 +40454,10 @@ class Window extends EventTarget implements WindowEventHandlers, WindowBase, Glo
|
|||
*
|
||||
* ## Other resources
|
||||
*
|
||||
* * [Window.moveTo]
|
||||
* (https://developer.mozilla.org/en-US/docs/Web/API/Window.moveTo) from MDN.
|
||||
* * [Window.moveTo]
|
||||
* (http://dev.w3.org/csswg/cssom-view/#dom-window-moveto) from W3C.
|
||||
* * [Window.moveTo](https://developer.mozilla.org/en-US/docs/Web/API/Window.moveTo)
|
||||
* from MDN.
|
||||
* * [Window.moveTo](http://dev.w3.org/csswg/cssom-view/#dom-window-moveto)
|
||||
* from W3C.
|
||||
*/
|
||||
void moveTo(Point p) {
|
||||
_moveTo(p.x, p.y);
|
||||
|
|
|
@ -380,7 +380,7 @@ class Database extends EventTarget {
|
|||
List storeNames_1 = convertDartToNative_StringArray(storeNames);
|
||||
return _transaction(storeNames_1, mode);
|
||||
}
|
||||
|
||||
|
||||
Transaction transactionStores(DomStringList storeNames, String mode) {
|
||||
if (mode != 'readonly' && mode != 'readwrite') {
|
||||
throw new ArgumentError(mode);
|
||||
|
|
|
@ -292,6 +292,27 @@ class Database extends EventTarget {
|
|||
return _createObjectStore(name, options);
|
||||
}
|
||||
|
||||
Transaction transaction(storeName_OR_storeNames, String mode) {
|
||||
if (mode != 'readonly' && mode != 'readwrite') {
|
||||
throw new ArgumentError("Invalid transaction mode $mode");
|
||||
}
|
||||
var names;
|
||||
if (storeName_OR_storeNames == null) {
|
||||
throw new ArgumentError("stores may not be null in transaction");
|
||||
} else if (storeName_OR_storeNames is String || storeName_OR_storeNames is DomStringList) {
|
||||
names = unwrap_jso(storeName_OR_storeNames);
|
||||
} else if (storeName_OR_storeNames is List<String>) {
|
||||
names = convertDartToNative_List(storeName_OR_storeNames);
|
||||
} else {
|
||||
throw new ArgumentError("Invalid store(s) $store_Name_OR_storeNames");
|
||||
}
|
||||
|
||||
return wrap_jso(_blink.BlinkIDBDatabase.instance.transaction_Callback_2_(unwrap_jso(this), names, mode));
|
||||
}
|
||||
|
||||
Transaction transactionList(List<String> storeNames, String mode) => transaction(storeNames, mode);
|
||||
Transaction transactionStores(List<String> storeNames, String mode) => transaction(storeNames, mode);
|
||||
Transaction transactionStore(String storeName, String mode) => transaction(storeName, mode);
|
||||
|
||||
// To suppress missing implicit constructor warnings.
|
||||
factory Database._() { throw new UnsupportedError("Not supported"); }
|
||||
|
@ -379,49 +400,6 @@ class Database extends EventTarget {
|
|||
@DocsEditable()
|
||||
void deleteObjectStore(String name) => _blink.BlinkIDBDatabase.instance.deleteObjectStore_Callback_1_(unwrap_jso(this), name);
|
||||
|
||||
Transaction transaction(storeName_OR_storeNames, [String mode]) {
|
||||
if ((storeName_OR_storeNames is String || storeName_OR_storeNames == null) && mode == null) {
|
||||
return wrap_jso(_blink.BlinkIDBDatabase.instance.transaction_Callback_1_(unwrap_jso(this), unwrap_jso(storeName_OR_storeNames)));
|
||||
}
|
||||
if ((mode is String || mode == null) && (storeName_OR_storeNames is String || storeName_OR_storeNames == null)) {
|
||||
return wrap_jso(_blink.BlinkIDBDatabase.instance.transaction_Callback_2_(unwrap_jso(this), unwrap_jso(storeName_OR_storeNames), mode));
|
||||
}
|
||||
if ((storeName_OR_storeNames is List<String> || storeName_OR_storeNames == null) && mode == null) {
|
||||
return wrap_jso(_blink.BlinkIDBDatabase.instance.transaction_Callback_1_(unwrap_jso(this), unwrap_jso(storeName_OR_storeNames)));
|
||||
}
|
||||
if ((mode is String || mode == null) && (storeName_OR_storeNames is List<String> || storeName_OR_storeNames == null)) {
|
||||
return wrap_jso(_blink.BlinkIDBDatabase.instance.transaction_Callback_2_(unwrap_jso(this), unwrap_jso(storeName_OR_storeNames), mode));
|
||||
}
|
||||
if ((storeName_OR_storeNames is DomStringList || storeName_OR_storeNames == null) && mode == null) {
|
||||
return wrap_jso(_blink.BlinkIDBDatabase.instance.transaction_Callback_1_(unwrap_jso(this), unwrap_jso(storeName_OR_storeNames)));
|
||||
}
|
||||
if ((mode is String || mode == null) && (storeName_OR_storeNames is DomStringList || storeName_OR_storeNames == null)) {
|
||||
return wrap_jso(_blink.BlinkIDBDatabase.instance.transaction_Callback_2_(unwrap_jso(this), unwrap_jso(storeName_OR_storeNames), mode));
|
||||
}
|
||||
throw new ArgumentError("Incorrect number or type of arguments");
|
||||
}
|
||||
|
||||
Transaction transactionList(List<String> storeNames, [String mode]) {
|
||||
if (mode != null) {
|
||||
return wrap_jso(_blink.BlinkIDBDatabase.instance.transaction_Callback_2_(unwrap_jso(this), convertDartToNative_StringArray(storeNames), mode));
|
||||
}
|
||||
return wrap_jso(_blink.BlinkIDBDatabase.instance.transaction_Callback_1_(unwrap_jso(this), convertDartToNative_StringArray(storeNames)));
|
||||
}
|
||||
|
||||
Transaction transactionStore(String storeName, [String mode]) {
|
||||
if (mode != null) {
|
||||
return wrap_jso(_blink.BlinkIDBDatabase.instance.transaction_Callback_2_(unwrap_jso(this), storeName, mode));
|
||||
}
|
||||
return wrap_jso(_blink.BlinkIDBDatabase.instance.transaction_Callback_1_(unwrap_jso(this), storeName));
|
||||
}
|
||||
|
||||
Transaction transactionStores(List<String> storeNames, [String mode]) {
|
||||
if (mode != null) {
|
||||
return wrap_jso(_blink.BlinkIDBDatabase.instance.transaction_Callback_2_(unwrap_jso(this), unwrap_jso(storeNames), mode));
|
||||
}
|
||||
return wrap_jso(_blink.BlinkIDBDatabase.instance.transaction_Callback_1_(unwrap_jso(this), unwrap_jso(storeNames)));
|
||||
}
|
||||
|
||||
/// Stream of `abort` events handled by this [Database].
|
||||
@DomName('IDBDatabase.onabort')
|
||||
@DocsEditable()
|
||||
|
|
|
@ -439,12 +439,6 @@ renamed_overloads = monitored.Dict('htmldartgenerator.renamed_overloads', {
|
|||
'DataTransferItemList.add(DOMString data, DOMString type)': 'addData',
|
||||
'FormData.append(DOMString name, Blob value, DOMString filename)':
|
||||
'appendBlob',
|
||||
'IDBDatabase.transaction(DOMStringList storeNames, IDBTransactionMode mode)':
|
||||
'transactionStores',
|
||||
'IDBDatabase.transaction(sequence<DOMString> storeNames, IDBTransactionMode mode)':
|
||||
'transactionList',
|
||||
'IDBDatabase.transaction(DOMString storeName, IDBTransactionMode mode)':
|
||||
'transactionStore',
|
||||
'RTCDataChannel.send(ArrayBuffer data)': 'sendByteBuffer',
|
||||
'RTCDataChannel.send(ArrayBufferView data)': 'sendTypedData',
|
||||
'RTCDataChannel.send(Blob data)': 'sendBlob',
|
||||
|
@ -777,6 +771,7 @@ removed_html_members = monitored.Set('htmlrenamer.removed_html_members', [
|
|||
'HTMLTitleElement.text',
|
||||
'HTMLUListElement.compact',
|
||||
'HTMLUListElement.type',
|
||||
'IDBDatabase.transaction', # We do this in a template without the generated implementation at all.
|
||||
'Location.valueOf',
|
||||
'MessageEvent.ports',
|
||||
'MessageEvent.webkitInitMessageEvent',
|
||||
|
|
|
@ -53,7 +53,7 @@ $if DART2JS
|
|||
List storeNames_1 = convertDartToNative_StringArray(storeNames);
|
||||
return _transaction(storeNames_1, mode);
|
||||
}
|
||||
|
||||
|
||||
Transaction transactionStores(DomStringList storeNames, String mode) {
|
||||
if (mode != 'readonly' && mode != 'readwrite') {
|
||||
throw new ArgumentError(mode);
|
||||
|
@ -63,6 +63,28 @@ $if DART2JS
|
|||
|
||||
@JSName('transaction')
|
||||
Transaction _transaction(stores, mode) native;
|
||||
$else
|
||||
Transaction transaction(storeName_OR_storeNames, String mode) {
|
||||
if (mode != 'readonly' && mode != 'readwrite') {
|
||||
throw new ArgumentError("Invalid transaction mode $mode");
|
||||
}
|
||||
var names;
|
||||
if (storeName_OR_storeNames == null) {
|
||||
throw new ArgumentError("stores may not be null in transaction");
|
||||
} else if (storeName_OR_storeNames is String || storeName_OR_storeNames is DomStringList) {
|
||||
names = unwrap_jso(storeName_OR_storeNames);
|
||||
} else if (storeName_OR_storeNames is List<String>) {
|
||||
names = convertDartToNative_List(storeName_OR_storeNames);
|
||||
} else {
|
||||
throw new ArgumentError("Invalid store(s) $store_Name_OR_storeNames");
|
||||
}
|
||||
|
||||
return wrap_jso(_blink.BlinkIDBDatabase.instance.transaction_Callback_2_(unwrap_jso(this), names, mode));
|
||||
}
|
||||
|
||||
Transaction transactionList(List<String> storeNames, String mode) => transaction(storeNames, mode);
|
||||
Transaction transactionStores(List<String> storeNames, String mode) => transaction(storeNames, mode);
|
||||
Transaction transactionStore(String storeName, String mode) => transaction(storeName, mode);
|
||||
$endif
|
||||
|
||||
$!MEMBERS}
|
||||
|
|
Loading…
Reference in a new issue