Skip to content

Commit 266b618

Browse files
author
Guy Bedford
authored
Update to latest StarlingMonkey (#813)
1 parent e621dc9 commit 266b618

File tree

232 files changed

+17951
-185
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

232 files changed

+17951
-185
lines changed

.github/workflows/starlingmonkey.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -107,7 +107,7 @@ jobs:
107107
108108
- name: Run tests
109109
timeout-minutes: 20
110-
run: node ./tests/wpt-harness/run-wpt.mjs -vv
110+
run: node ./tests/wpt-harness/run-wpt.mjs --starlingmonkey -vv
111111

112112
sdktest:
113113
if: github.ref != 'refs/heads/main'

integration-tests/js-compute/fixtures/app/src/cache-core.js

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -464,12 +464,12 @@ let error;
464464
routes.set("/core-cache/constructor/called-as-regular-function", () => {
465465
error = assertThrows(() => {
466466
CoreCache()
467-
}, TypeError, `Illegal constructor`)
467+
}, TypeError)
468468
if (error) { return error }
469469
return pass("ok")
470470
});
471471
routes.set("/core-cache/constructor/throws", () => {
472-
error = assertThrows(() => new CoreCache(), TypeError, `Illegal constructor`)
472+
error = assertThrows(() => new CoreCache(), TypeError)
473473
if (error) { return error }
474474
return pass("ok")
475475
});
@@ -1559,12 +1559,12 @@ let error;
15591559
routes.set("/cache-entry/constructor/called-as-regular-function", () => {
15601560
error = assertThrows(() => {
15611561
CacheEntry()
1562-
}, TypeError, `Illegal constructor`)
1562+
}, TypeError)
15631563
if (error) { return error }
15641564
return pass("ok")
15651565
});
15661566
routes.set("/cache-entry/constructor/throws", () => {
1567-
error = assertThrows(() => new CacheEntry(), TypeError, `Illegal constructor`)
1567+
error = assertThrows(() => new CacheEntry(), TypeError)
15681568
if (error) { return error }
15691569
return pass("ok")
15701570
});
@@ -1582,7 +1582,7 @@ let error;
15821582
routes.set("/cache-entry/close/called-unbound", () => {
15831583
let error = assertThrows(() => {
15841584
CacheEntry.prototype.close.call(undefined)
1585-
}, Error, "Method close called on receiver that's not an instance of CacheEntry")
1585+
}, Error)
15861586
if (error) { return error }
15871587
return pass("ok")
15881588
});
@@ -1612,7 +1612,7 @@ let error;
16121612
routes.set("/cache-entry/state/called-unbound", () => {
16131613
let error = assertThrows(() => {
16141614
CacheEntry.prototype.state.call(undefined)
1615-
}, Error, "Method state called on receiver that's not an instance of CacheEntry")
1615+
}, Error)
16161616
if (error) { return error }
16171617
return pass("ok")
16181618
});
@@ -1644,7 +1644,7 @@ let error;
16441644
routes.set("/cache-entry/userMetadata/called-unbound", () => {
16451645
let error = assertThrows(() => {
16461646
CacheEntry.prototype.userMetadata.call(undefined)
1647-
}, Error, "Method userMetadata called on receiver that's not an instance of CacheEntry")
1647+
}, Error)
16481648
if (error) { return error }
16491649
return pass("ok")
16501650
});
@@ -1697,7 +1697,7 @@ let error;
16971697
routes.set("/cache-entry/body/called-unbound", () => {
16981698
let error = assertThrows(() => {
16991699
CacheEntry.prototype.body.call(undefined)
1700-
}, Error, "Method body called on receiver that's not an instance of CacheEntry")
1700+
}, Error)
17011701
if (error) { return error }
17021702
return pass("ok")
17031703
});
@@ -1875,7 +1875,7 @@ let error;
18751875
routes.set("/cache-entry/length/called-unbound", () => {
18761876
let error = assertThrows(() => {
18771877
CacheEntry.prototype.length.call(undefined)
1878-
}, Error, "Method length called on receiver that's not an instance of CacheEntry")
1878+
}, Error)
18791879
if (error) { return error }
18801880
return pass("ok")
18811881
});
@@ -1910,7 +1910,7 @@ let error;
19101910
routes.set("/cache-entry/maxAge/called-unbound", () => {
19111911
let error = assertThrows(() => {
19121912
CacheEntry.prototype.maxAge.call(undefined)
1913-
}, Error, "Method maxAge called on receiver that's not an instance of CacheEntry")
1913+
}, Error)
19141914
if (error) { return error }
19151915
return pass("ok")
19161916
});
@@ -1940,7 +1940,7 @@ let error;
19401940
routes.set("/cache-entry/staleWhileRevalidate/called-unbound", () => {
19411941
let error = assertThrows(() => {
19421942
CacheEntry.prototype.staleWhileRevalidate.call(undefined)
1943-
}, Error, "Method staleWhileRevalidate called on receiver that's not an instance of CacheEntry")
1943+
}, Error)
19441944
if (error) { return error }
19451945
return pass("ok")
19461946
});
@@ -1972,7 +1972,7 @@ let error;
19721972
routes.set("/cache-entry/age/called-unbound", () => {
19731973
let error = assertThrows(() => {
19741974
CacheEntry.prototype.age.call(undefined)
1975-
}, Error, "Method age called on receiver that's not an instance of CacheEntry")
1975+
}, Error)
19761976
if (error) { return error }
19771977
return pass("ok")
19781978
});
@@ -2008,7 +2008,7 @@ let error;
20082008
routes.set("/cache-entry/hits/called-unbound", () => {
20092009
let error = assertThrows(() => {
20102010
CacheEntry.prototype.hits.call(undefined)
2011-
}, Error, "Method hits called on receiver that's not an instance of CacheEntry")
2011+
}, Error)
20122012
if (error) { return error }
20132013
return pass("ok")
20142014
});

integration-tests/js-compute/fixtures/app/src/cache-simple.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -234,12 +234,12 @@ routes.set("/simple-cache/interface", () => {
234234
routes.set("/simple-store/constructor/called-as-regular-function", () => {
235235
error = assertThrows(() => {
236236
SimpleCache()
237-
}, TypeError, `Illegal constructor`)
237+
}, TypeError)
238238
if (error) { return error }
239239
return pass()
240240
});
241241
routes.set("/simple-cache/constructor/throws", () => {
242-
error = assertThrows(() => new SimpleCache(), TypeError, `Illegal constructor`)
242+
error = assertThrows(() => new SimpleCache(), TypeError)
243243
if (error) { return error }
244244
return pass()
245245
});

integration-tests/js-compute/fixtures/app/src/crypto.js

Lines changed: 26 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -114,7 +114,7 @@ routes.set("/crypto.subtle", async () => {
114114
routes.set("/crypto.subtle.importKey/called-with-wrong-this", async () => {
115115
error = await assertRejects(async () => {
116116
await crypto.subtle.importKey.call(undefined, 'jwk', publicRsaJsonWebKeyData, rsaJsonWebKeyAlgorithm, publicRsaJsonWebKeyData.ext, publicRsaJsonWebKeyData.key_ops)
117-
}, TypeError, "Method SubtleCrypto.importKey called on receiver that's not an instance of SubtleCrypto")
117+
}, TypeError)
118118
if (error) { return error; }
119119
return pass('ok');
120120
});
@@ -151,7 +151,7 @@ routes.set("/crypto.subtle", async () => {
151151
routes.set("/crypto.subtle.importKey/first-parameter-non-existant-format", async () => {
152152
let error = await assertRejects(async () => {
153153
await crypto.subtle.importKey('jake', publicRsaJsonWebKeyData, rsaJsonWebKeyAlgorithm, publicRsaJsonWebKeyData.ext, publicRsaJsonWebKeyData.key_ops)
154-
}, Error, "Provided format parameter is not supported. Supported formats are: 'spki', 'pkcs8', 'jwk', and 'raw'")
154+
}, Error)
155155
if (error) { return error; }
156156
return pass('ok');
157157
});
@@ -162,7 +162,7 @@ routes.set("/crypto.subtle", async () => {
162162
routes.set("/crypto.subtle.importKey/second-parameter-invalid-format", async () => {
163163
let error = await assertRejects(async () => {
164164
await crypto.subtle.importKey('jwk', Symbol(), rsaJsonWebKeyAlgorithm, publicRsaJsonWebKeyData.ext, publicRsaJsonWebKeyData.key_ops)
165-
}, Error, "The provided value is not of type JsonWebKey")
165+
}, Error)
166166
if (error) { return error; }
167167
return pass('ok');
168168
});
@@ -172,7 +172,7 @@ routes.set("/crypto.subtle", async () => {
172172
let error = await assertRejects(async () => {
173173
delete publicRsaJsonWebKeyData.e;
174174
await crypto.subtle.importKey('jwk', publicRsaJsonWebKeyData, rsaJsonWebKeyAlgorithm, publicRsaJsonWebKeyData.ext, publicRsaJsonWebKeyData.key_ops)
175-
}, DOMException, "Data provided to an operation does not meet requirements")
175+
}, DOMException)
176176
if (error) { return error; }
177177
return pass('ok');
178178
});
@@ -209,15 +209,15 @@ routes.set("/crypto.subtle", async () => {
209209
let error = await assertRejects(async () => {
210210
delete publicRsaJsonWebKeyData.kty;
211211
await crypto.subtle.importKey('jwk', publicRsaJsonWebKeyData, rsaJsonWebKeyAlgorithm, publicRsaJsonWebKeyData.ext, publicRsaJsonWebKeyData.key_ops)
212-
}, Error, "The required JWK member 'kty' was missing")
212+
}, Error)
213213
if (error) { return error; }
214214
return pass('ok');
215215
});
216216
routes.set("/crypto.subtle.importKey/rsa-jwk-public/second-parameter-invalid-kty-field", async () => {
217217
let error = await assertRejects(async () => {
218218
publicRsaJsonWebKeyData.kty = "jake";
219219
await crypto.subtle.importKey('jwk', publicRsaJsonWebKeyData, rsaJsonWebKeyAlgorithm, publicRsaJsonWebKeyData.ext, publicRsaJsonWebKeyData.key_ops)
220-
}, Error, "The JWK 'kty' member was not 'RSA'")
220+
}, Error)
221221
if (error) { return error; }
222222
return pass('ok');
223223
});
@@ -235,7 +235,7 @@ routes.set("/crypto.subtle", async () => {
235235
const key_ops = Array.from(publicRsaJsonWebKeyData.key_ops);
236236
publicRsaJsonWebKeyData.key_ops = "jake";
237237
await crypto.subtle.importKey('jwk', publicRsaJsonWebKeyData, rsaJsonWebKeyAlgorithm, publicRsaJsonWebKeyData.ext, key_ops)
238-
}, Error, "Failed to read the 'key_ops' property from 'JsonWebKey': The provided value cannot be converted to a sequence")
238+
}, Error)
239239
if (error) { return error; }
240240
return pass('ok');
241241
});
@@ -254,7 +254,7 @@ routes.set("/crypto.subtle", async () => {
254254
const key_ops = Array.from(publicRsaJsonWebKeyData.key_ops);
255255
publicRsaJsonWebKeyData.key_ops = ["sign", "sign"];
256256
await crypto.subtle.importKey('jwk', publicRsaJsonWebKeyData, rsaJsonWebKeyAlgorithm, publicRsaJsonWebKeyData.ext, key_ops)
257-
}, Error, "The 'key_ops' member of the JWK dictionary contains duplicate usages")
257+
}, Error)
258258
if (error) { return error; }
259259
return pass('ok');
260260
});
@@ -263,7 +263,7 @@ routes.set("/crypto.subtle", async () => {
263263
const key_ops = Array.from(publicRsaJsonWebKeyData.key_ops);
264264
publicRsaJsonWebKeyData.key_ops = ["sign", "jake"];
265265
await crypto.subtle.importKey('jwk', publicRsaJsonWebKeyData, rsaJsonWebKeyAlgorithm, publicRsaJsonWebKeyData.ext, key_ops)
266-
}, TypeError, "Invalid keyUsages argument")
266+
}, Error)
267267
if (error) { return error; }
268268
return pass('ok');
269269
});
@@ -414,15 +414,15 @@ routes.set("/crypto.subtle", async () => {
414414
let error = await assertRejects(async () => {
415415
delete publicEcdsaJsonWebKeyData.kty;
416416
await crypto.subtle.importKey('jwk', publicEcdsaJsonWebKeyData, ecdsaJsonWebKeyAlgorithm, publicEcdsaJsonWebKeyData.ext, publicEcdsaJsonWebKeyData.key_ops)
417-
}, Error, "The required JWK member 'kty' was missing")
417+
}, Error)
418418
if (error) { return error; }
419419
return pass('ok');
420420
});
421421
routes.set("/crypto.subtle.importKey/ecdsa-jwk-public/second-parameter-invalid-kty-field", async () => {
422422
let error = await assertRejects(async () => {
423423
publicEcdsaJsonWebKeyData.kty = "jake";
424424
await crypto.subtle.importKey('jwk', publicEcdsaJsonWebKeyData, ecdsaJsonWebKeyAlgorithm, publicEcdsaJsonWebKeyData.ext, publicEcdsaJsonWebKeyData.key_ops)
425-
}, Error, "The JWK 'kty' member was not 'EC'")
425+
}, Error)
426426
if (error) { return error; }
427427
return pass('ok');
428428
});
@@ -440,7 +440,7 @@ routes.set("/crypto.subtle", async () => {
440440
const key_ops = Array.from(publicEcdsaJsonWebKeyData.key_ops);
441441
publicEcdsaJsonWebKeyData.key_ops = "jake";
442442
await crypto.subtle.importKey('jwk', publicEcdsaJsonWebKeyData, ecdsaJsonWebKeyAlgorithm, publicEcdsaJsonWebKeyData.ext, key_ops)
443-
}, Error, "Failed to read the 'key_ops' property from 'JsonWebKey': The provided value cannot be converted to a sequence")
443+
}, Error)
444444
if (error) { return error; }
445445
return pass('ok');
446446
});
@@ -459,7 +459,7 @@ routes.set("/crypto.subtle", async () => {
459459
const key_ops = Array.from(publicEcdsaJsonWebKeyData.key_ops);
460460
publicEcdsaJsonWebKeyData.key_ops = ["sign", "sign"];
461461
await crypto.subtle.importKey('jwk', publicEcdsaJsonWebKeyData, ecdsaJsonWebKeyAlgorithm, publicEcdsaJsonWebKeyData.ext, key_ops)
462-
}, Error, "The 'key_ops' member of the JWK dictionary contains duplicate usages")
462+
}, Error)
463463
if (error) { return error; }
464464
return pass('ok');
465465
});
@@ -468,7 +468,7 @@ routes.set("/crypto.subtle", async () => {
468468
const key_ops = Array.from(publicEcdsaJsonWebKeyData.key_ops);
469469
publicEcdsaJsonWebKeyData.key_ops = ["sign", "jake"];
470470
await crypto.subtle.importKey('jwk', publicEcdsaJsonWebKeyData, ecdsaJsonWebKeyAlgorithm, publicEcdsaJsonWebKeyData.ext, key_ops)
471-
}, TypeError, "Invalid keyUsages argument")
471+
}, Error)
472472
if (error) { return error; }
473473
return pass('ok');
474474
});
@@ -566,7 +566,7 @@ routes.set("/crypto.subtle", async () => {
566566
let error = await assertRejects(async () => {
567567
rsaJsonWebKeyAlgorithm.name = "`~!@#@#$Q%^%&^*";
568568
await crypto.subtle.importKey('jwk', publicRsaJsonWebKeyData, rsaJsonWebKeyAlgorithm, publicRsaJsonWebKeyData.ext, publicRsaJsonWebKeyData.key_ops)
569-
}, Error, "Algorithm: Unrecognized name")
569+
}, Error)
570570
if (error) { return error; }
571571
return pass('ok');
572572
});
@@ -605,14 +605,14 @@ routes.set("/crypto.subtle", async () => {
605605
routes.set("/crypto.subtle.importKey/fifth-parameter-undefined", async () => {
606606
let error = await assertRejects(async () => {
607607
await crypto.subtle.importKey('jwk', publicRsaJsonWebKeyData, rsaJsonWebKeyAlgorithm, publicRsaJsonWebKeyData.ext, undefined)
608-
}, Error, "The provided value cannot be converted to a sequence")
608+
}, Error)
609609
if (error) { return error; }
610610
return pass('ok');
611611
});
612612
routes.set("/crypto.subtle.importKey/fifth-parameter-invalid", async () => {
613613
let error = await assertRejects(async () => {
614614
await crypto.subtle.importKey('jwk', publicRsaJsonWebKeyData, rsaJsonWebKeyAlgorithm, publicRsaJsonWebKeyData.ext, ["jake"])
615-
}, Error, "SubtleCrypto.importKey: Invalid keyUsages argument")
615+
}, Error)
616616
if (error) { return error; }
617617
return pass('ok');
618618
});
@@ -787,7 +787,7 @@ routes.set("/crypto.subtle", async () => {
787787
routes.set("/crypto.subtle.digest/called-with-wrong-this", async () => {
788788
error = await assertRejects(async () => {
789789
await crypto.subtle.digest.call(undefined)
790-
}, TypeError, "Method SubtleCrypto.digest called on receiver that's not an instance of SubtleCrypto")
790+
}, TypeError)
791791
if (error) { return error; }
792792
return pass('ok')
793793
});
@@ -835,7 +835,7 @@ routes.set("/crypto.subtle", async () => {
835835
routes.set("/crypto.subtle.digest/second-parameter-undefined", async () => {
836836
let error = await assertRejects(async () => {
837837
await crypto.subtle.digest("sha-1", undefined);
838-
}, Error, "SubtleCrypto.digest: data must be of type ArrayBuffer or ArrayBufferView but got \"\"");
838+
}, Error);
839839
if (error) { return error; }
840840
return pass('ok');
841841
});
@@ -912,7 +912,7 @@ routes.set("/crypto.subtle", async () => {
912912
routes.set("/crypto.subtle.sign/called-with-wrong-this", async () => {
913913
error = await assertRejects(async () => {
914914
await crypto.subtle.sign.call(undefined, rsaJsonWebKeyAlgorithm, publicRsaJsonWebKeyData, data)
915-
}, TypeError, "Method SubtleCrypto.sign called on receiver that's not an instance of SubtleCrypto")
915+
}, TypeError)
916916
if (error) { return error; }
917917
return pass('ok');
918918
});
@@ -961,7 +961,7 @@ routes.set("/crypto.subtle", async () => {
961961
routes.set("/crypto.subtle.sign/second-parameter-invalid-format", async () => {
962962
let error = await assertRejects(async () => {
963963
await crypto.subtle.sign(rsaJsonWebKeyAlgorithm, "jake", data)
964-
}, Error, "parameter 2 is not of type 'CryptoKey'")
964+
}, Error)
965965
if (error) { return error; }
966966
return pass('ok');
967967
});
@@ -980,7 +980,7 @@ routes.set("/crypto.subtle", async () => {
980980
let error = await assertRejects(async () => {
981981
const key = await crypto.subtle.importKey('jwk', publicRsaJsonWebKeyData, rsaJsonWebKeyAlgorithm, publicRsaJsonWebKeyData.ext, publicRsaJsonWebKeyData.key_ops);
982982
await crypto.subtle.sign(rsaJsonWebKeyAlgorithm, key, undefined)
983-
}, Error, "SubtleCrypto.sign: data must be of type ArrayBuffer or ArrayBufferView but got \"\"")
983+
}, Error)
984984
if (error) { return error; }
985985
return pass('ok');
986986
});
@@ -1060,7 +1060,7 @@ routes.set("/crypto.subtle", async () => {
10601060
error = await assertRejects(async () => {
10611061
const key = await crypto.subtle.importKey('jwk', publicRsaJsonWebKeyData, rsaJsonWebKeyAlgorithm, publicRsaJsonWebKeyData.ext, publicRsaJsonWebKeyData.key_ops);
10621062
await crypto.subtle.verify.call(undefined, rsaJsonWebKeyAlgorithm, key, new Uint8Array, new Uint8Array)
1063-
}, TypeError, "Method SubtleCrypto.verify called on receiver that's not an instance of SubtleCrypto")
1063+
}, TypeError)
10641064
if (error) { return error; }
10651065
return pass('ok');
10661066
});
@@ -1109,7 +1109,7 @@ routes.set("/crypto.subtle", async () => {
11091109
routes.set("/crypto.subtle.verify/second-parameter-invalid-format", async () => {
11101110
let error = await assertRejects(async () => {
11111111
await crypto.subtle.verify(rsaJsonWebKeyAlgorithm, "jake", new Uint8Array, new Uint8Array)
1112-
}, Error, "parameter 2 is not of type 'CryptoKey'")
1112+
}, Error)
11131113
if (error) { return error; }
11141114
return pass('ok');
11151115
});
@@ -1128,7 +1128,7 @@ routes.set("/crypto.subtle", async () => {
11281128
let error = await assertRejects(async () => {
11291129
const key = await crypto.subtle.importKey('jwk', publicRsaJsonWebKeyData, rsaJsonWebKeyAlgorithm, publicRsaJsonWebKeyData.ext, publicRsaJsonWebKeyData.key_ops);
11301130
await crypto.subtle.verify(rsaJsonWebKeyAlgorithm, key, undefined, new Uint8Array());
1131-
}, Error, "SubtleCrypto.verify: signature (argument 3) must be of type ArrayBuffer or ArrayBufferView but got \"\"")
1131+
}, Error)
11321132
if (error) { return error; }
11331133
return pass('ok');
11341134
});
@@ -1139,7 +1139,7 @@ routes.set("/crypto.subtle", async () => {
11391139
let error = await assertRejects(async () => {
11401140
const key = await crypto.subtle.importKey('jwk', publicRsaJsonWebKeyData, rsaJsonWebKeyAlgorithm, publicRsaJsonWebKeyData.ext, publicRsaJsonWebKeyData.key_ops);
11411141
await crypto.subtle.verify(rsaJsonWebKeyAlgorithm, key, new Uint8Array(), undefined);
1142-
}, Error, "SubtleCrypto.verify: data (argument 4) must be of type ArrayBuffer or ArrayBufferView but got \"\"")
1142+
}, Error)
11431143
if (error) { return error; }
11441144
return pass('ok');
11451145
});

integration-tests/js-compute/fixtures/app/src/device.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -152,12 +152,12 @@ routes.set("/device/interface", () => {
152152
routes.set("/device/constructor/called-as-regular-function", () => {
153153
error = assertThrows(() => {
154154
Device()
155-
}, TypeError, `Illegal constructor`)
155+
}, TypeError)
156156
if (error) { return error }
157157
return pass('ok')
158158
});
159159
routes.set("/device/constructor/throws", () => {
160-
error = assertThrows(() => new Device(), TypeError, `Illegal constructor`)
160+
error = assertThrows(() => new Device(), TypeError)
161161
if (error) { return error }
162162
return pass('ok')
163163
});

integration-tests/js-compute/fixtures/app/src/dictionary.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,7 @@ import { routes } from "./routes.js";
100100
routes.set("/dictionary/get/called-unbound", () => {
101101
let error = assertThrows(() => {
102102
Dictionary.prototype.get.call(undefined, '1')
103-
}, TypeError, "Method get called on receiver that's not an instance of Dictionary")
103+
}, TypeError)
104104
if (error) { return error }
105105
return pass()
106106
});

0 commit comments

Comments
 (0)