Automated feature flag update (#3153)

This commit is contained in:
Rick Waldron 2021-09-02 14:07:50 -04:00 committed by GitHub
parent 47ab262658
commit 9382febd80
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
43 changed files with 43 additions and 43 deletions

View File

@ -14,7 +14,7 @@ info: |
4. If requestedMaxByteLength is empty, then 4. If requestedMaxByteLength is empty, then
a. [...] a. [...]
5. If byteLength > requestedMaxByteLength, throw a RangeError exception. 5. If byteLength > requestedMaxByteLength, throw a RangeError exception.
features: [resizable-arraybuffer] features: [SharedArrayBuffer, resizable-arraybuffer]
---*/ ---*/
assert.throws(RangeError, function() { assert.throws(RangeError, function() {

View File

@ -19,7 +19,7 @@ info: |
2. Let maxByteLength be ? Get(options, "maxByteLength"). 2. Let maxByteLength be ? Get(options, "maxByteLength").
3. If maxByteLength is undefined, return empty. 3. If maxByteLength is undefined, return empty.
4. Return ? ToIndex(maxByteLength). 4. Return ? ToIndex(maxByteLength).
features: [resizable-arraybuffer] features: [SharedArrayBuffer, resizable-arraybuffer]
---*/ ---*/
assert.throws(RangeError, function() { assert.throws(RangeError, function() {

View File

@ -17,7 +17,7 @@ info: |
2. Let maxByteLength be ? Get(options, "maxByteLength"). 2. Let maxByteLength be ? Get(options, "maxByteLength").
3. If maxByteLength is undefined, return empty. 3. If maxByteLength is undefined, return empty.
4. Return ? ToIndex(maxByteLength). 4. Return ? ToIndex(maxByteLength).
features: [resizable-arraybuffer] features: [SharedArrayBuffer, resizable-arraybuffer]
---*/ ---*/
assert.throws(RangeError, function() { assert.throws(RangeError, function() {

View File

@ -19,7 +19,7 @@ info: |
2. Let maxByteLength be ? Get(options, "maxByteLength"). 2. Let maxByteLength be ? Get(options, "maxByteLength").
3. If maxByteLength is undefined, return empty. 3. If maxByteLength is undefined, return empty.
4. Return ? ToIndex(maxByteLength). 4. Return ? ToIndex(maxByteLength).
features: [resizable-arraybuffer] features: [SharedArrayBuffer, resizable-arraybuffer]
---*/ ---*/
var log = []; var log = [];

View File

@ -15,7 +15,7 @@ info: |
1. If Type(options) is not Object, return empty. 1. If Type(options) is not Object, return empty.
2. Let maxByteLength be ? Get(options, "maxByteLength"). 2. Let maxByteLength be ? Get(options, "maxByteLength").
features: [resizable-arraybuffer] features: [SharedArrayBuffer, resizable-arraybuffer]
---*/ ---*/
var options = { var options = {

View File

@ -17,7 +17,7 @@ info: |
1. If Type(options) is not Object, return empty. 1. If Type(options) is not Object, return empty.
2. Let maxByteLength be ? Get(options, "maxByteLength"). 2. Let maxByteLength be ? Get(options, "maxByteLength").
3. If maxByteLength is undefined, return empty. 3. If maxByteLength is undefined, return empty.
features: [resizable-arraybuffer] features: [SharedArrayBuffer, resizable-arraybuffer]
---*/ ---*/
assert.sameValue(new SharedArrayBuffer(0, {}).growable, false); assert.sameValue(new SharedArrayBuffer(0, {}).growable, false);

View File

@ -15,7 +15,7 @@ info: |
1.1.5 GetArrayBufferMaxByteLengthOption ( options ) 1.1.5 GetArrayBufferMaxByteLengthOption ( options )
1. If Type(options) is not Object, return empty. 1. If Type(options) is not Object, return empty.
features: [resizable-arraybuffer] features: [BigInt, SharedArrayBuffer, Symbol, resizable-arraybuffer]
---*/ ---*/
assert.sameValue(new SharedArrayBuffer(0, null).growable, false, 'null'); assert.sameValue(new SharedArrayBuffer(0, null).growable, false, 'null');

View File

@ -18,7 +18,7 @@ info: |
1. Let obj be ? OrdinaryCreateFromConstructor(constructor, "%SharedArrayBufferPrototype%", 1. Let obj be ? OrdinaryCreateFromConstructor(constructor, "%SharedArrayBufferPrototype%",
«[[ArrayBufferData]], [[ArrayBufferByteLength]]» ). «[[ArrayBufferData]], [[ArrayBufferByteLength]]» ).
... ...
features: [SharedArrayBuffer, Reflect.construct] features: [Reflect, Reflect.construct, SharedArrayBuffer]
---*/ ---*/
var arrayBuffer = Reflect.construct(SharedArrayBuffer, [8], Object); var arrayBuffer = Reflect.construct(SharedArrayBuffer, [8], Object);

View File

@ -12,7 +12,7 @@ info: |
Annex B.2 has the attributes { [[Writable]]: true, [[Enumerable]]: false, Annex B.2 has the attributes { [[Writable]]: true, [[Enumerable]]: false,
[[Configurable]]: true } unless otherwise specified. [[Configurable]]: true } unless otherwise specified.
includes: [propertyHelper.js] includes: [propertyHelper.js]
features: [resizable-arraybuffer] features: [SharedArrayBuffer, resizable-arraybuffer]
---*/ ---*/
verifyProperty(SharedArrayBuffer.prototype, 'grow', { verifyProperty(SharedArrayBuffer.prototype, 'grow', {

View File

@ -9,7 +9,7 @@ info: |
17 ECMAScript Standard Built-in Objects: 17 ECMAScript Standard Built-in Objects:
Unless specified otherwise, the [[Extensible]] internal slot Unless specified otherwise, the [[Extensible]] internal slot
of a built-in object initially has the value true. of a built-in object initially has the value true.
features: [resizable-arraybuffer] features: [SharedArrayBuffer, resizable-arraybuffer]
---*/ ---*/
assert(Object.isExtensible(SharedArrayBuffer.prototype.grow)); assert(Object.isExtensible(SharedArrayBuffer.prototype.grow));

View File

@ -14,7 +14,7 @@ info: |
5. Let hostHandled be ? HostGrowSharedArrayBuffer(O, newByteLength). 5. Let hostHandled be ? HostGrowSharedArrayBuffer(O, newByteLength).
6. If hostHandled is handled, return undefined. 6. If hostHandled is handled, return undefined.
[...] [...]
features: [resizable-arraybuffer] features: [SharedArrayBuffer, resizable-arraybuffer]
---*/ ---*/
var sab = new SharedArrayBuffer(4, {maxByteLength: 5}); var sab = new SharedArrayBuffer(4, {maxByteLength: 5});

View File

@ -14,7 +14,7 @@ info: |
5. Let hostHandled be ? HostGrowSharedArrayBuffer(O, newByteLength). 5. Let hostHandled be ? HostGrowSharedArrayBuffer(O, newByteLength).
6. If hostHandled is handled, return undefined. 6. If hostHandled is handled, return undefined.
[...] [...]
features: [resizable-arraybuffer] features: [SharedArrayBuffer, resizable-arraybuffer]
---*/ ---*/
var sab = new SharedArrayBuffer(4, {maxByteLength: 5}); var sab = new SharedArrayBuffer(4, {maxByteLength: 5});

View File

@ -14,7 +14,7 @@ info: |
5. Let hostHandled be ? HostGrowSharedArrayBuffer(O, newByteLength). 5. Let hostHandled be ? HostGrowSharedArrayBuffer(O, newByteLength).
6. If hostHandled is handled, return undefined. 6. If hostHandled is handled, return undefined.
[...] [...]
features: [resizable-arraybuffer] features: [SharedArrayBuffer, resizable-arraybuffer]
---*/ ---*/
var sab = new SharedArrayBuffer(4, {maxByteLength: 5}); var sab = new SharedArrayBuffer(4, {maxByteLength: 5});

View File

@ -19,7 +19,7 @@ info: |
object has the attributes { [[Writable]]: false, [[Enumerable]]: false, object has the attributes { [[Writable]]: false, [[Enumerable]]: false,
[[Configurable]]: true }. [[Configurable]]: true }.
includes: [propertyHelper.js] includes: [propertyHelper.js]
features: [resizable-arraybuffer] features: [SharedArrayBuffer, resizable-arraybuffer]
---*/ ---*/
verifyProperty(SharedArrayBuffer.prototype.grow, 'length', { verifyProperty(SharedArrayBuffer.prototype.grow, 'length', {

View File

@ -15,7 +15,7 @@ info: |
Unless otherwise specified, the name property of a built-in Function Unless otherwise specified, the name property of a built-in Function
object, if it exists, has the attributes { [[Writable]]: false, object, if it exists, has the attributes { [[Writable]]: false,
[[Enumerable]]: false, [[Configurable]]: true }. [[Enumerable]]: false, [[Configurable]]: true }.
features: [resizable-arraybuffer] features: [SharedArrayBuffer, resizable-arraybuffer]
includes: [propertyHelper.js] includes: [propertyHelper.js]
---*/ ---*/

View File

@ -14,7 +14,7 @@ info: |
5. If newByteLength < 0 or newByteLength > O.[[ArrayBufferMaxByteLength]], 5. If newByteLength < 0 or newByteLength > O.[[ArrayBufferMaxByteLength]],
throw a RangeError exception. throw a RangeError exception.
[...] [...]
features: [resizable-arraybuffer] features: [SharedArrayBuffer, resizable-arraybuffer]
---*/ ---*/
var ab = new SharedArrayBuffer(4, {maxByteLength: 4}); var ab = new SharedArrayBuffer(4, {maxByteLength: 4});

View File

@ -14,7 +14,7 @@ info: |
5. If newByteLength < 0 or newByteLength > O.[[ArrayBufferMaxByteLength]], 5. If newByteLength < 0 or newByteLength > O.[[ArrayBufferMaxByteLength]],
throw a RangeError exception. throw a RangeError exception.
[...] [...]
features: [resizable-arraybuffer] features: [SharedArrayBuffer, resizable-arraybuffer]
---*/ ---*/
var ab = new SharedArrayBuffer(4, {maxByteLength: 4}); var ab = new SharedArrayBuffer(4, {maxByteLength: 4});

View File

@ -11,7 +11,7 @@ info: |
3. If IsSharedArrayBuffer(O) is false, throw a TypeError exception. 3. If IsSharedArrayBuffer(O) is false, throw a TypeError exception.
4. Let newByteLength be ? ToIntegerOrInfinity(newLength). 4. Let newByteLength be ? ToIntegerOrInfinity(newLength).
[...] [...]
features: [resizable-arraybuffer] features: [SharedArrayBuffer, resizable-arraybuffer]
---*/ ---*/
var log = []; var log = [];

View File

@ -11,7 +11,7 @@ info: |
Built-in function objects that are not identified as constructors do not Built-in function objects that are not identified as constructors do not
implement the [[Construct]] internal method unless otherwise specified implement the [[Construct]] internal method unless otherwise specified
in the description of a particular function. in the description of a particular function.
features: [resizable-arraybuffer] features: [SharedArrayBuffer, resizable-arraybuffer]
---*/ ---*/
assert.sameValue( assert.sameValue(

View File

@ -10,7 +10,7 @@ info: |
1. Let O be the this value. 1. Let O be the this value.
2. Perform ? RequireInternalSlot(O, [[ArrayBufferMaxByteLength]]). 2. Perform ? RequireInternalSlot(O, [[ArrayBufferMaxByteLength]]).
[...] [...]
features: [resizable-arraybuffer] features: [SharedArrayBuffer, resizable-arraybuffer]
---*/ ---*/
assert.sameValue(typeof SharedArrayBuffer.prototype.grow, 'function'); assert.sameValue(typeof SharedArrayBuffer.prototype.grow, 'function');

View File

@ -9,7 +9,7 @@ info: |
1. Let O be the this value. 1. Let O be the this value.
2. Perform ? RequireInternalSlot(O, [[ArrayBufferMaxByteLength]]). 2. Perform ? RequireInternalSlot(O, [[ArrayBufferMaxByteLength]]).
[...] [...]
features: [resizable-arraybuffer, Symbol, BigInt] features: [BigInt, SharedArrayBuffer, Symbol, resizable-arraybuffer]
---*/ ---*/
assert.sameValue(typeof SharedArrayBuffer.prototype.grow, "function"); assert.sameValue(typeof SharedArrayBuffer.prototype.grow, "function");

View File

@ -10,7 +10,7 @@ info: |
1. Let O be the this value. 1. Let O be the this value.
2. Perform ? RequireInternalSlot(O, [[ArrayBufferMaxByteLength]]). 2. Perform ? RequireInternalSlot(O, [[ArrayBufferMaxByteLength]]).
[...] [...]
features: [resizable-arraybuffer] features: [SharedArrayBuffer, resizable-arraybuffer]
---*/ ---*/
var ab; var ab;

View File

@ -10,7 +10,7 @@ info: |
2. Perform ? RequireInternalSlot(O, [[ArrayBufferMaxByteLength]]). 2. Perform ? RequireInternalSlot(O, [[ArrayBufferMaxByteLength]]).
3. If IsSharedArrayBuffer(O) is false, throw a TypeError exception. 3. If IsSharedArrayBuffer(O) is false, throw a TypeError exception.
[...] [...]
features: [ArrayBuffer, resizable-arraybuffer] features: [ArrayBuffer, SharedArrayBuffer, resizable-arraybuffer]
---*/ ---*/
var ab = new ArrayBuffer(0); var ab = new ArrayBuffer(0);

View File

@ -9,7 +9,7 @@ info: |
1. Let O be the this value. 1. Let O be the this value.
2. Perform ? RequireInternalSlot(O, [[ArrayBufferData]]). 2. Perform ? RequireInternalSlot(O, [[ArrayBufferData]]).
[...] [...]
features: [resizable-arraybuffer] features: [SharedArrayBuffer, resizable-arraybuffer]
---*/ ---*/
assert.throws(TypeError, function() { assert.throws(TypeError, function() {

View File

@ -9,7 +9,7 @@ info: |
1. Let O be the this value. 1. Let O be the this value.
2. Perform ? RequireInternalSlot(O, [[ArrayBufferData]]). 2. Perform ? RequireInternalSlot(O, [[ArrayBufferData]]).
[...] [...]
features: [resizable-arraybuffer] features: [SharedArrayBuffer, resizable-arraybuffer]
---*/ ---*/
var getter = Object.getOwnPropertyDescriptor( var getter = Object.getOwnPropertyDescriptor(

View File

@ -19,7 +19,7 @@ info: |
object has the attributes { [[Writable]]: false, [[Enumerable]]: false, object has the attributes { [[Writable]]: false, [[Enumerable]]: false,
[[Configurable]]: true }. [[Configurable]]: true }.
includes: [propertyHelper.js] includes: [propertyHelper.js]
features: [resizable-arraybuffer] features: [SharedArrayBuffer, resizable-arraybuffer]
---*/ ---*/
var desc = Object.getOwnPropertyDescriptor(SharedArrayBuffer.prototype, 'growable'); var desc = Object.getOwnPropertyDescriptor(SharedArrayBuffer.prototype, 'growable');

View File

@ -11,7 +11,7 @@ description: >
properties have "get " or "set " prepended to the property name string. properties have "get " or "set " prepended to the property name string.
includes: [propertyHelper.js] includes: [propertyHelper.js]
features: [resizable-arraybuffer] features: [SharedArrayBuffer, resizable-arraybuffer]
---*/ ---*/
var desc = Object.getOwnPropertyDescriptor(SharedArrayBuffer.prototype, 'growable'); var desc = Object.getOwnPropertyDescriptor(SharedArrayBuffer.prototype, 'growable');

View File

@ -11,7 +11,7 @@ info: |
Section 17: Every accessor property described in clauses 18 through 26 and in Section 17: Every accessor property described in clauses 18 through 26 and in
Annex B.2 has the attributes {[[Enumerable]]: false, [[Configurable]]: true } Annex B.2 has the attributes {[[Enumerable]]: false, [[Configurable]]: true }
includes: [propertyHelper.js] includes: [propertyHelper.js]
features: [resizable-arraybuffer] features: [SharedArrayBuffer, resizable-arraybuffer]
---*/ ---*/
var desc = Object.getOwnPropertyDescriptor(SharedArrayBuffer.prototype, 'growable'); var desc = Object.getOwnPropertyDescriptor(SharedArrayBuffer.prototype, 'growable');

View File

@ -17,7 +17,7 @@ info: |
[[ArrayBufferData]] internal slot. [[ArrayBufferData]] internal slot.
2. If buffer has an [[ArrayBufferMaxByteLength]] internal slot, return true. 2. If buffer has an [[ArrayBufferMaxByteLength]] internal slot, return true.
3. Return false. 3. Return false.
features: [resizable-arraybuffer] features: [SharedArrayBuffer, resizable-arraybuffer]
---*/ ---*/
var sab1 = new SharedArrayBuffer(1); var sab1 = new SharedArrayBuffer(1);

View File

@ -11,7 +11,7 @@ info: |
1. Let O be the this value. 1. Let O be the this value.
2. Perform ? RequireInternalSlot(O, [[ArrayBufferData]]). 2. Perform ? RequireInternalSlot(O, [[ArrayBufferData]]).
[...] [...]
features: [DataView, Int8Array, resizable-arraybuffer] features: [DataView, SharedArrayBuffer, TypedArray, resizable-arraybuffer]
---*/ ---*/
var getter = Object.getOwnPropertyDescriptor( var getter = Object.getOwnPropertyDescriptor(

View File

@ -10,7 +10,7 @@ info: |
2. Perform ? RequireInternalSlot(O, [[ArrayBufferData]]). 2. Perform ? RequireInternalSlot(O, [[ArrayBufferData]]).
3. If IsSharedArrayBuffer(O) is false, throw a TypeError exception. 3. If IsSharedArrayBuffer(O) is false, throw a TypeError exception.
[...] [...]
features: [SharedArrayBuffer, resizable-arraybuffer] features: [ArrayBuffer, SharedArrayBuffer, resizable-arraybuffer]
---*/ ---*/
var growable = Object.getOwnPropertyDescriptor( var growable = Object.getOwnPropertyDescriptor(

View File

@ -9,7 +9,7 @@ info: |
1. Let O be the this value. 1. Let O be the this value.
2. Perform ? RequireInternalSlot(O, [[ArrayBufferData]]). 2. Perform ? RequireInternalSlot(O, [[ArrayBufferData]]).
[...] [...]
features: [Symbol, resizable-arraybuffer] features: [SharedArrayBuffer, Symbol, resizable-arraybuffer]
---*/ ---*/
var getter = Object.getOwnPropertyDescriptor( var getter = Object.getOwnPropertyDescriptor(

View File

@ -9,7 +9,7 @@ info: |
1. Let O be the this value. 1. Let O be the this value.
2. Perform ? RequireInternalSlot(O, [[ArrayBufferData]]). 2. Perform ? RequireInternalSlot(O, [[ArrayBufferData]]).
[...] [...]
features: [resizable-arraybuffer] features: [SharedArrayBuffer, resizable-arraybuffer]
---*/ ---*/
assert.throws(TypeError, function() { assert.throws(TypeError, function() {

View File

@ -9,7 +9,7 @@ info: |
1. Let O be the this value. 1. Let O be the this value.
2. Perform ? RequireInternalSlot(O, [[ArrayBufferData]]). 2. Perform ? RequireInternalSlot(O, [[ArrayBufferData]]).
[...] [...]
features: [resizable-arraybuffer] features: [SharedArrayBuffer, resizable-arraybuffer]
---*/ ---*/
var getter = Object.getOwnPropertyDescriptor( var getter = Object.getOwnPropertyDescriptor(

View File

@ -19,7 +19,7 @@ info: |
object has the attributes { [[Writable]]: false, [[Enumerable]]: false, object has the attributes { [[Writable]]: false, [[Enumerable]]: false,
[[Configurable]]: true }. [[Configurable]]: true }.
includes: [propertyHelper.js] includes: [propertyHelper.js]
features: [resizable-arraybuffer] features: [SharedArrayBuffer, resizable-arraybuffer]
---*/ ---*/
var desc = Object.getOwnPropertyDescriptor(SharedArrayBuffer.prototype, 'maxByteLength'); var desc = Object.getOwnPropertyDescriptor(SharedArrayBuffer.prototype, 'maxByteLength');

View File

@ -11,7 +11,7 @@ description: >
properties have "get " or "set " prepended to the property name string. properties have "get " or "set " prepended to the property name string.
includes: [propertyHelper.js] includes: [propertyHelper.js]
features: [resizable-arraybuffer] features: [SharedArrayBuffer, resizable-arraybuffer]
---*/ ---*/
var desc = Object.getOwnPropertyDescriptor(SharedArrayBuffer.prototype, 'maxByteLength'); var desc = Object.getOwnPropertyDescriptor(SharedArrayBuffer.prototype, 'maxByteLength');

View File

@ -11,7 +11,7 @@ info: |
Section 17: Every accessor property described in clauses 18 through 26 and in Section 17: Every accessor property described in clauses 18 through 26 and in
Annex B.2 has the attributes {[[Enumerable]]: false, [[Configurable]]: true } Annex B.2 has the attributes {[[Enumerable]]: false, [[Configurable]]: true }
includes: [propertyHelper.js] includes: [propertyHelper.js]
features: [resizable-arraybuffer] features: [SharedArrayBuffer, resizable-arraybuffer]
---*/ ---*/
var desc = Object.getOwnPropertyDescriptor(SharedArrayBuffer.prototype, 'maxByteLength'); var desc = Object.getOwnPropertyDescriptor(SharedArrayBuffer.prototype, 'maxByteLength');

View File

@ -14,7 +14,7 @@ info: |
5. Else, 5. Else,
[...] [...]
6. Return 𝔽(length). 6. Return 𝔽(length).
features: [resizable-arraybuffer] features: [SharedArrayBuffer, resizable-arraybuffer]
---*/ ---*/
var ab1 = new SharedArrayBuffer(0, { maxByteLength: 0 }); var ab1 = new SharedArrayBuffer(0, { maxByteLength: 0 });

View File

@ -14,7 +14,7 @@ info: |
5. Else, 5. Else,
a. Let length be O.[[ArrayBufferByteLength]]. a. Let length be O.[[ArrayBufferByteLength]].
6. Return 𝔽(length). 6. Return 𝔽(length).
features: [resizable-arraybuffer] features: [SharedArrayBuffer, resizable-arraybuffer]
---*/ ---*/
var ab1 = new SharedArrayBuffer(0); var ab1 = new SharedArrayBuffer(0);

View File

@ -11,7 +11,7 @@ info: |
1. Let O be the this value. 1. Let O be the this value.
2. Perform ? RequireInternalSlot(O, [[ArrayBufferData]]). 2. Perform ? RequireInternalSlot(O, [[ArrayBufferData]]).
[...] [...]
features: [DataView, Int8Array, resizable-arraybuffer] features: [DataView, SharedArrayBuffer, TypedArray, resizable-arraybuffer]
---*/ ---*/
var getter = Object.getOwnPropertyDescriptor( var getter = Object.getOwnPropertyDescriptor(

View File

@ -10,7 +10,7 @@ info: |
2. Perform ? RequireInternalSlot(O, [[ArrayBufferData]]). 2. Perform ? RequireInternalSlot(O, [[ArrayBufferData]]).
3. If IsSharedArrayBuffer(O) is false, throw a TypeError exception. 3. If IsSharedArrayBuffer(O) is false, throw a TypeError exception.
[...] [...]
features: [ArrayBuffer, resizable-arraybuffer] features: [ArrayBuffer, SharedArrayBuffer, resizable-arraybuffer]
---*/ ---*/
var maxByteLength = Object.getOwnPropertyDescriptor( var maxByteLength = Object.getOwnPropertyDescriptor(

View File

@ -9,7 +9,7 @@ info: |
1. Let O be the this value. 1. Let O be the this value.
2. Perform ? RequireInternalSlot(O, [[ArrayBufferData]]). 2. Perform ? RequireInternalSlot(O, [[ArrayBufferData]]).
[...] [...]
features: [Symbol, resizable-arraybuffer] features: [SharedArrayBuffer, Symbol, resizable-arraybuffer]
---*/ ---*/
var getter = Object.getOwnPropertyDescriptor( var getter = Object.getOwnPropertyDescriptor(

View File

@ -5,7 +5,7 @@
esid: sec-sharedarraybuffer.prototype.slice esid: sec-sharedarraybuffer.prototype.slice
description: > description: >
Throws a TypeError if `this` is an ArrayBuffer Throws a TypeError if `this` is an ArrayBuffer
features: [SharedArrayBuffer] features: [ArrayBuffer, SharedArrayBuffer]
---*/ ---*/
assert.throws(TypeError, function() { assert.throws(TypeError, function() {