Consider:
async function* f() {
const x = Promise.resolve(1);
const y = Promise.resolve(2);
const fromX = yield x;
return y;
}
// Current spec | |
function finally(onFinally) { | |
let C = SpeciesConstructor(this); | |
return this.then( | |
x => new C(r => r(onFinally())).then(() => x), | |
e => new C(r => r(onFinally())).then(() => { throw e; }) | |
); | |
} | |
// Proposed, but rejected (potentially because of a miscommunication) spec |
Consider:
async function* f() {
const x = Promise.resolve(1);
const y = Promise.resolve(2);
const fromX = yield x;
return y;
}
"use strict"; | |
const conversions = require("webidl-conversions"); | |
const utils = require("./utils.js"); | |
const Impl = require(".//URL-impl.js"); | |
const impl = utils.implSymbol; | |
function URL(url) { | |
if (!this || this[impl] || !(this instanceof URL)) { |
"use strict"; | |
const worker = new Worker("worker.js"); | |
self.onfetch = e => { | |
e.respondWith(new Promise(resolve => { | |
const guid = generateGUID(); | |
worker.addEventListener("message", function messageListener({ data: { readableStream, messageId } }) { | |
if (messageId !== guid) { |
"use strict"; | |
const worker = new Worker("worker.js"); | |
self.onfetch = e => { | |
const transform = new TransformStream(); // creates an identity transform | |
e.respondWith(new Response(transform.readable)); | |
// Give the worker the writable end. An identity transform stream will just shuffle | |
// bytes written there into transform.readable. |
You have a repository, call it alice/repo
. You would like to transfer it to the user bob
, so it will become bob/repo
.
However, you make heavy use of the GitHub Pages feature, so that people are often accessing https://alice.github.io/repo/
. GitHub will helpfully redirect all of your repository stuff hosted on github.com after the move, but will not redirect the GitHub Pages hosted on github.io.
What is a subset of HTML's reflection rules which we should make easy for web components?
HTML's reflection algorithms include:
Web IDL (which is used for writing web specs) would like to introduce a concept of "mixins", which work by adding properties and methods to the mixin target. Currently this is accomplished by
interface MixinTarget { };
[NoInterfaceObject]
interface Mixin { };
MixinTarget implements Mixin;
adoptedCallback(oldDocument, newDocument) { | |
const newWindow = newDocument.defaultView; | |
if (newWindow) { | |
// newDocument belongs to a window | |
const otherConstructor = newWindow.customElements.get(this.localName); | |
if (otherConstructor && otherConstructor._isFromPolymer) { | |
Object.setPrototypeOf(this, otherConstructor.prototype); | |
// Now any customizations that newWindow code has applied to the |
"use strict"; | |
var pending = { then: function () {} }; | |
// operation must accept as its first argument a cancel token | |
// if your operation does not support cancelation, use a shim: | |
// last((_, ...args) => realOp(...args)); | |
module.exports = operation => { | |
let latestPromise = null; | |
let previousCancel = null; |