Skip to content

Commit

Permalink
Port remaining StarlingMonkey builtins (#790)
Browse files Browse the repository at this point in the history
  • Loading branch information
guybedford committed May 23, 2024
1 parent 34c05eb commit b38dd94
Show file tree
Hide file tree
Showing 43 changed files with 4,284 additions and 333 deletions.
40 changes: 18 additions & 22 deletions integration-tests/js-compute/fixtures/app/src/cache-core.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,8 @@

import { pass, assert, assertDoesNotThrow, assertThrows, sleep, streamToString, assertResolves } from "./assertions.js";
import { routes } from "./routes.js";
import { CoreCache, CacheEntry } from 'fastly:cache';
import * as fastlyCache from 'fastly:cache';
import * as fastlyBody from "fastly:body";

const { CacheState, TransactionCacheEntry } = fastlyCache;
const { FastlyBody } = fastlyBody;
import { CoreCache, CacheEntry, CacheState, TransactionCacheEntry } from 'fastly:cache';
import { FastlyBody } from "fastly:body";

let error;

Expand Down Expand Up @@ -485,7 +481,7 @@ let error;
routes.set("/core-cache/lookup/called-as-constructor", () => {
let error = assertThrows(() => {
new CoreCache.lookup('1')
}, TypeError, `CoreCache.lookup is not a constructor`)
}, TypeError)
if (error) { return error }
return pass("ok")
});
Expand Down Expand Up @@ -631,7 +627,7 @@ let error;
routes.set("/core-cache/insert/called-as-constructor", () => {
let error = assertThrows(() => {
new CoreCache.insert('1', { maxAge: 1 })
}, TypeError, `CoreCache.insert is not a constructor`)
}, TypeError)
if (error) { return error }
return pass("ok")
});
Expand Down Expand Up @@ -1033,7 +1029,7 @@ let error;
routes.set("/core-cache/transactionLookup/called-as-constructor", () => {
let error = assertThrows(() => {
new CoreCache.transactionLookup('1')
}, TypeError, `CoreCache.transactionLookup is not a constructor`)
}, TypeError)
if (error) { return error }
return pass("ok")
});
Expand Down Expand Up @@ -1579,7 +1575,7 @@ let error;
routes.set("/cache-entry/close/called-as-constructor", () => {
let error = assertThrows(() => {
new CacheEntry.prototype.close()
}, TypeError, `CacheEntry.prototype.close is not a constructor`)
}, TypeError)
if (error) { return error }
return pass("ok")
});
Expand Down Expand Up @@ -1609,7 +1605,7 @@ let error;
routes.set("/cache-entry/state/called-as-constructor", () => {
let error = assertThrows(() => {
new CacheEntry.prototype.state()
}, TypeError, `CacheEntry.prototype.state is not a constructor`)
}, TypeError)
if (error) { return error }
return pass("ok")
});
Expand Down Expand Up @@ -1641,7 +1637,7 @@ let error;
routes.set("/cache-entry/userMetadata/called-as-constructor", () => {
let error = assertThrows(() => {
new CacheEntry.prototype.userMetadata()
}, TypeError, `CacheEntry.prototype.userMetadata is not a constructor`)
}, TypeError)
if (error) { return error }
return pass("ok")
});
Expand Down Expand Up @@ -1694,7 +1690,7 @@ let error;
routes.set("/cache-entry/body/called-as-constructor", () => {
let error = assertThrows(() => {
new CacheEntry.prototype.body()
}, TypeError, `CacheEntry.prototype.body is not a constructor`)
}, TypeError)
if (error) { return error }
return pass("ok")
});
Expand Down Expand Up @@ -1872,7 +1868,7 @@ let error;
routes.set("/cache-entry/length/called-as-constructor", () => {
let error = assertThrows(() => {
new CacheEntry.prototype.length()
}, TypeError, `CacheEntry.prototype.length is not a constructor`)
}, TypeError)
if (error) { return error }
return pass("ok")
});
Expand Down Expand Up @@ -1907,7 +1903,7 @@ let error;
routes.set("/cache-entry/maxAge/called-as-constructor", () => {
let error = assertThrows(() => {
new CacheEntry.prototype.maxAge()
}, TypeError, `CacheEntry.prototype.maxAge is not a constructor`)
}, TypeError)
if (error) { return error }
return pass("ok")
});
Expand Down Expand Up @@ -1937,7 +1933,7 @@ let error;
routes.set("/cache-entry/staleWhileRevalidate/called-as-constructor", () => {
let error = assertThrows(() => {
new CacheEntry.prototype.staleWhileRevalidate()
}, TypeError, `CacheEntry.prototype.staleWhileRevalidate is not a constructor`)
}, TypeError)
if (error) { return error }
return pass("ok")
});
Expand Down Expand Up @@ -1969,7 +1965,7 @@ let error;
routes.set("/cache-entry/age/called-as-constructor", () => {
let error = assertThrows(() => {
new CacheEntry.prototype.age()
}, TypeError, `CacheEntry.prototype.age is not a constructor`)
}, TypeError)
if (error) { return error }
return pass("ok")
});
Expand Down Expand Up @@ -2005,7 +2001,7 @@ let error;
routes.set("/cache-entry/hits/called-as-constructor", () => {
let error = assertThrows(() => {
new CacheEntry.prototype.hits()
}, TypeError, `CacheEntry.prototype.hits is not a constructor`)
}, TypeError)
if (error) { return error }
return pass("ok")
});
Expand Down Expand Up @@ -2264,7 +2260,7 @@ let error;
let error = assertThrows(() => {
let entry = CoreCache.transactionLookup('1')
new entry.insert({maxAge: 1})
}, TypeError, `entry.insert is not a constructor`)
}, TypeError)
if (error) { return error }
return pass("ok")
});
Expand Down Expand Up @@ -2526,7 +2522,7 @@ let error;
let error = assertThrows(() => {
let entry = CoreCache.transactionLookup(path)
new entry.insertAndStreamBack({maxAge: 1})
}, TypeError, `entry.insertAndStreamBack is not a constructor`)
}, TypeError)
if (error) { return error }
return pass("ok")
});
Expand Down Expand Up @@ -2834,7 +2830,7 @@ let error;
let error = assertThrows(() => {
let entry = CoreCache.transactionLookup(path)
new entry.update({maxAge: 1})
}, TypeError, `entry.update is not a constructor`)
}, TypeError)
if (error) { return error }
return pass("ok")
});
Expand Down Expand Up @@ -3161,7 +3157,7 @@ let error;
let error = assertThrows(() => {
let entry = CoreCache.transactionLookup(path)
new entry.cancel()
}, TypeError, `entry.cancel is not a constructor`)
}, TypeError)
if (error) { return error }
return pass("ok")
});
Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,8 @@
/* eslint-env serviceworker */
import { pass, assert } from "./assertions.js";
import * as configStore from 'fastly:config-store'
import { ConfigStore } from 'fastly:config-store'
import { routes } from "./routes.js";

const { ConfigStore } = configStore;

routes.set("/config-store", () => {
let config = new ConfigStore("testconfig");
let twitterValue = config.get("twitter");
Expand Down
2 changes: 1 addition & 1 deletion integration-tests/js-compute/fixtures/app/src/device.js
Original file line number Diff line number Diff line change
Expand Up @@ -169,7 +169,7 @@ routes.set("/device/interface", () => {
routes.set("/device/lookup/called-as-constructor", () => {
let error = assertThrows(() => {
new Device.lookup('1')
}, TypeError, `Device.lookup is not a constructor`)
}, TypeError)
if (error) { return error }
return pass('ok')
});
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -93,7 +93,7 @@ import { routes } from "./routes.js";
routes.set("/dictionary/get/called-as-constructor", () => {
let error = assertThrows(() => {
new Dictionary.prototype.get('1')
}, TypeError, `Dictionary.prototype.get is not a constructor`)
}, TypeError)
if (error) { return error }
return pass()
});
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -256,7 +256,7 @@ let error;
routes.set("/rate-counter/increment/called-as-constructor", () => {
error = assertThrows(() => {
new RateCounter.prototype.increment('entry', 1)
}, Error, `RateCounter.prototype.increment is not a constructor`)
}, Error)
if (error) { return error }
return pass('ok')
});
Expand Down Expand Up @@ -344,7 +344,7 @@ let error;
routes.set("/rate-counter/lookupRate/called-as-constructor", () => {
error = assertThrows(() => {
new RateCounter.prototype.lookupRate('entry', 1)
}, Error, `RateCounter.prototype.lookupRate is not a constructor`)
}, Error)
if (error) { return error }
return pass('ok')
});
Expand Down Expand Up @@ -438,7 +438,7 @@ let error;
routes.set("/rate-counter/lookupCount/called-as-constructor", () => {
error = assertThrows(() => {
new RateCounter.prototype.lookupCount('entry', 1)
}, Error, `RateCounter.prototype.lookupCount is not a constructor`)
}, Error)
if (error) { return error }
return pass('ok')
});
Expand Down Expand Up @@ -750,7 +750,7 @@ let error;
routes.set("/penalty-box/has/called-as-constructor", () => {
error = assertThrows(() => {
new PenaltyBox.prototype.has('entry')
}, Error, `PenaltyBox.prototype.has is not a constructor`)
}, Error)
if (error) { return error }
return pass('ok')
});
Expand Down Expand Up @@ -806,7 +806,7 @@ let error;
routes.set("/penalty-box/add/called-as-constructor", () => {
error = assertThrows(() => {
new PenaltyBox.prototype.add('entry', 1)
}, Error, `PenaltyBox.prototype.add is not a constructor`)
}, Error)
if (error) { return error }
return pass('ok')
});
Expand Down Expand Up @@ -1064,7 +1064,7 @@ let error;
routes.set("/edge-rate-limiter/checkRate/called-as-constructor", () => {
error = assertThrows(() => {
new EdgeRateLimiter.prototype.checkRate('entry')
}, Error, `EdgeRateLimiter.prototype.checkRate is not a constructor`)
}, Error)
if (error) { return error }
return pass('ok')
});
Expand Down
2 changes: 1 addition & 1 deletion integration-tests/js-compute/fixtures/app/src/fanout.js
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ routes.set("/createFanoutHandoff", () => {
error = assert(result instanceof Response, true, 'result instanceof Response');
if (error) { return error; }

error = assertThrows(() => new createFanoutHandoff(new Request('.'), 'hello'), TypeError, `createFanoutHandoff is not a constructor`)
error = assertThrows(() => new createFanoutHandoff(new Request('.'), 'hello'), TypeError)
if (error) { return error }

error = assertDoesNotThrow(() => {
Expand Down
4 changes: 1 addition & 3 deletions integration-tests/js-compute/fixtures/app/src/logger.js
Original file line number Diff line number Diff line change
@@ -1,8 +1,6 @@
import * as logger from "fastly:logger";
import { Logger } from "fastly:logger";
import { routes, isRunningLocally } from "./routes";

const { Logger } = logger;

routes.set("/logger", () => {
if (isRunningLocally()) {
let logger = new Logger("ComputeLog");
Expand Down
9 changes: 5 additions & 4 deletions integration-tests/js-compute/fixtures/app/src/react-byob.js
Original file line number Diff line number Diff line change
Expand Up @@ -2106,11 +2106,12 @@ routes.set("/react-byob", async () => {
});

function App() {
return q("html", {
children: [q("title", {
const qq = typeof jsx !== 'undefined' ? jsx : q;
return qq("html", {
children: [qq("title", {
children: "My app"
}), q("body", {
children: q("h1", {
}), qq("body", {
children: qq("h1", {
children: "App"
})
})]
Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,9 @@
/* eslint-env serviceworker */
import * as secretStore from 'fastly:secret-store'
import { SecretStore, SecretStoreEntry } from 'fastly:secret-store'
import { pass, assert, assertThrows, assertRejects } from "./assertions.js";
import { routes } from "./routes.js";
import fc from './fast-check.js';

const { SecretStore, SecretStoreEntry } = secretStore;

// SecretStore
{
routes.set("/secret-store/exposed-as-global", () => {
Expand Down

0 comments on commit b38dd94

Please sign in to comment.