-
Notifications
You must be signed in to change notification settings - Fork 57
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
JS C@E build error "too much recursion" #361
Comments
I believe the problem stems from the I've rewritten this file to not do reassignments and it now compiles |
This is the smallest reproducible example I can make. If you remove one of the /// <reference types="@fastly/js-compute" />
addEventListener('fetch', async function handleRequest() {
let ua = "";
let family;
let result;
if (result = /a/.exec(ua)) { family = result[1];
} else if (result = /a/.exec(ua)) { family = Math.random();
} else if (result = /a/.exec(ua)) { family = result[1];
} else if (result = /a/.exec(ua)) { family = Math.random();
} else if (result = /a/.exec(ua)) { family = result[1];
} else if (result = /a/.exec(ua)) { family = Math.random();
} else if (result = /a/.exec(ua)) { family = result[1];
} else if (result = /a/.exec(ua)) { family = Math.random();
} else if (result = /a/.exec(ua)) { family = result[1];
} else if (result = /a/.exec(ua)) { family = Math.random();
} else if (result = /a/.exec(ua)) { family = result[1];
} else if (result = /a/.exec(ua)) { family = Math.random();
} else if (result = /a/.exec(ua)) { family = result[1];
} else if (result = /a/.exec(ua)) { family = Math.random();
} else if (result = /a/.exec(ua)) { family = result[1];
} else if (result = /a/.exec(ua)) { family = Math.random();
} else if (result = /a/.exec(ua)) { family = result[1];
} else if (result = /a/.exec(ua)) { family = Math.random();
} else if (result = /a/.exec(ua)) { family = result[1];
} else if (result = /a/.exec(ua)) { family = Math.random();
} else if (result = /a/.exec(ua)) { family = result[1];
} else if (result = /a/.exec(ua)) { family = Math.random();
} else if (result = /a/.exec(ua)) { family = result[1];
} else if (result = /a/.exec(ua)) { family = Math.random();
} else if (result = /a/.exec(ua)) { family = result[1];
} else if (result = /a/.exec(ua)) { family = Math.random();
} else if (result = /a/.exec(ua)) { family = result[1];
} else if (result = /a/.exec(ua)) { family = Math.random();
} else if (result = /a/.exec(ua)) { family = result[1];
} else if (result = /a/.exec(ua)) { family = Math.random();
} else if (result = /a/.exec(ua)) { family = result[1];
} else if (result = /a/.exec(ua)) { family = Math.random();
} else if (result = /a/.exec(ua)) { family = result[1];
} else if (result = /a/.exec(ua)) { family = Math.random();
} else if (result = /a/.exec(ua)) { family = result[1];
} else if (result = /a/.exec(ua)) { family = Math.random();
} else if (result = /a/.exec(ua)) { family = result[1];
} else if (result = /a/.exec(ua)) { family = Math.random();
} else if (result = /a/.exec(ua)) { family = result[1];
} else if (result = /a/.exec(ua)) { family = Math.random();
} else if (result = /a/.exec(ua)) { family = result[1];
} else if (result = /a/.exec(ua)) { family = Math.random();
} else if (result = /a/.exec(ua)) { family = result[1];
} else if (result = /a/.exec(ua)) { family = Math.random();
} else if (result = /a/.exec(ua)) { family = result[1];
} else if (result = /a/.exec(ua)) { family = Math.random();
} else if (result = /a/.exec(ua)) { family = result[1];
} else if (result = /a/.exec(ua)) { family = Math.random();
} else if (result = /a/.exec(ua)) { family = result[1];
} else if (result = /a/.exec(ua)) { family = Math.random();
} else if (result = /a/.exec(ua)) { family = result[1];
} else if (result = /a/.exec(ua)) { family = Math.random();
} else if (result = /a/.exec(ua)) { family = result[1];
} else if (result = /a/.exec(ua)) { family = Math.random();
} else if (result = /a/.exec(ua)) { family = result[1];
} else if (result = /a/.exec(ua)) { family = Math.random();
} else if (result = /a/.exec(ua)) { family = result[1];
} else if (result = /a/.exec(ua)) { family = Math.random();
} else if (result = /a/.exec(ua)) { family = result[1];
} else if (result = /a/.exec(ua)) { family = Math.random();
} else if (result = /a/.exec(ua)) { family = result[1];
} else if (result = /a/.exec(ua)) { family = Math.random();
} else if (result = /a/.exec(ua)) { family = result[1];
} else if (result = /a/.exec(ua)) { family = Math.random();
} else if (result = /a/.exec(ua)) { family = result[1];
} else if (result = /a/.exec(ua)) { family = Math.random();
} else if (result = /a/.exec(ua)) { family = result[1];
} else if (result = /a/.exec(ua)) { family = Math.random();
} else if (result = /a/.exec(ua)) { family = result[1];
} else if (result = /a/.exec(ua)) { family = Math.random();
} else if (result = /a/.exec(ua)) { family = result[1];
} else if (result = /a/.exec(ua)) { family = Math.random();
} else if (result = /a/.exec(ua)) { family = result[1];
} else if (result = /a/.exec(ua)) { family = Math.random();
} else if (result = /a/.exec(ua)) { family = result[1];
} else if (result = /a/.exec(ua)) { family = Math.random();
} else if (result = /a/.exec(ua)) { family = result[1];
} else if (result = /a/.exec(ua)) { family = Math.random();
} else if (result = /a/.exec(ua)) { family = result[1];
} else if (result = /a/.exec(ua)) { family = Math.random();
} else if (result = /a/.exec(ua)) { family = result[1];
} else if (result = /a/.exec(ua)) { family = Math.random();
} else if (result = /a/.exec(ua)) { family = result[1];
} else if (result = /a/.exec(ua)) { family = Math.random();
} else if (result = /a/.exec(ua)) { family = result[1];
} else if (result = /a/.exec(ua)) { family = Math.random();
} else if (result = /a/.exec(ua)) { family = result[1];
} else if (result = /a/.exec(ua)) { family = Math.random();
} else if (result = /a/.exec(ua)) { family = result[1];
} else if (result = /a/.exec(ua)) { family = Math.random();
} else if (result = /a/.exec(ua)) { family = result[1];
} else if (result = /a/.exec(ua)) { family = Math.random();
} else if (result = /a/.exec(ua)) { family = result[1];
} else if (result = /a/.exec(ua)) { family = Math.random();
} else if (result = /a/.exec(ua)) { family = result[1];
} else if (result = /a/.exec(ua)) { family = Math.random();
} else if (result = /a/.exec(ua)) { family = result[1];
} else if (result = /a/.exec(ua)) { family = Math.random();
} else if (result = /a/.exec(ua)) { family = result[1];
} else if (result = /a/.exec(ua)) { family = Math.random();
} else if (result = /a/.exec(ua)) { family = result[1];
} else if (result = /a/.exec(ua)) { family = Math.random();
} else if (result = /a/.exec(ua)) { family = result[1];
} else if (result = /a/.exec(ua)) { family = Math.random();
} else if (result = /a/.exec(ua)) { family = result[1];
} else if (result = /a/.exec(ua)) { family = Math.random();
} else if (result = /a/.exec(ua)) { family = result[1];
} else if (result = /a/.exec(ua)) { family = Math.random();
} else if (result = /a/.exec(ua)) { family = result[1];
} else if (result = /a/.exec(ua)) { family = Math.random();
} else if (result = /a/.exec(ua)) { family = result[1];
} else if (result = /a/.exec(ua)) { family = Math.random();
} else if (result = /a/.exec(ua)) { family = result[1];
} else if (result = /a/.exec(ua)) { family = Math.random();
} else if (result = /a/.exec(ua)) { family = result[1];
} else if (result = /a/.exec(ua)) { family = Math.random();
} else if (result = /a/.exec(ua)) { family = result[1];
} else if (result = /a/.exec(ua)) { family = Math.random();
} else if (result = /a/.exec(ua)) { family = result[1];
} else if (result = /a/.exec(ua)) { family = Math.random();
} else if (result = /a/.exec(ua)) { family = result[1];
} else if (result = /a/.exec(ua)) { family = Math.random();
} else if (result = /a/.exec(ua)) { family = result[1];
} else if (result = /a/.exec(ua)) { family = Math.random();
} else if (result = /a/.exec(ua)) { family = result[1];
} else if (result = /a/.exec(ua)) { family = Math.random();
} else if (result = /a/.exec(ua)) { family = result[1];
} else if (result = /a/.exec(ua)) { family = Math.random();
} else if (result = /a/.exec(ua)) { family = result[1];
} else if (result = /a/.exec(ua)) { family = Math.random();
} else if (result = /a/.exec(ua)) { family = result[1];
} else if (result = /a/.exec(ua)) { family = Math.random();
} else if (result = /a/.exec(ua)) { family = result[1];
} else if (result = /a/.exec(ua)) { family = Math.random();
} else if (result = /a/.exec(ua)) { family = result[1];
} else if (result = /a/.exec(ua)) { family = Math.random();
} else if (result = /a/.exec(ua)) { family = result[1];
} else if (result = /a/.exec(ua)) { family = Math.random();
} else if (result = /a/.exec(ua)) { family = result[1];
} else if (result = /a/.exec(ua)) { family = Math.random();
} else if (result = /a/.exec(ua)) { family = result[1];
} else if (result = /a/.exec(ua)) { family = Math.random();
} else if (result = /a/.exec(ua)) { family = result[1];
} else if (result = /a/.exec(ua)) { family = Math.random();
} else if (result = /a/.exec(ua)) { family = result[1];
} else if (result = /a/.exec(ua)) { family = Math.random();
} else if (result = /a/.exec(ua)) { family = result[1];
} else if (result = /a/.exec(ua)) { family = Math.random();
} else if (result = /a/.exec(ua)) { family = result[1];
} else if (result = /a/.exec(ua)) { family = Math.random();
} else if (result = /a/.exec(ua)) { family = result[1];
} else if (result = /a/.exec(ua)) { family = Math.random();
} else if (result = /a/.exec(ua)) { family = result[1];
} else if (result = /a/.exec(ua)) { family = Math.random();
} else if (result = /a/.exec(ua)) { family = result[1];
} else if (result = /a/.exec(ua)) { family = Math.random();
} else if (result = /a/.exec(ua)) { family = result[1];
} else if (result = /a/.exec(ua)) { family = Math.random();
} else if (result = /a/.exec(ua)) { family = result[1];
} else if (result = /a/.exec(ua)) { family = Math.random();
} else if (result = /a/.exec(ua)) { family = result[1];
} else if (result = /a/.exec(ua)) { family = Math.random();
} else if (result = /a/.exec(ua)) { family = result[1];
}
return;
}); |
Thanks @JakeChampion I'll investigate why the CLI didn't stop the 'build' process once Wiser had reported an error, but I believe the rest of the comments in that issue are best discussed here >> fastly/js-compute-runtime#1 |
Similar issue there, when I run
|
@JakeChampion just circling back around to this and it looks like a bunch of build refactoring and logic changes I made over the last few months may have incidentally resolved the issue with compilation errors not causing the build to fail. For example, using your example: import * as UA from "@financial-times/polyfill-useragent-normaliser";
const normalizeUserAgent = UA.normalize;
addEventListener('fetch', async function handleRequest(event) {
// Get the client request from the event
let req = event.request;
let headers = new Headers();
headers.set('Content-Type', 'text/html; charset=utf-8');
headers.set('normalized-user-agent', normalizeUserAgent(req.headers.get('user-agent')));
let response = new Response(normalizeUserAgent(req.headers.get('user-agent')), {
status: 200,
headers
});
// Send the response back to the client.
event.respondWith(response);
return;
}); The output I see now with latest |
@Integralist it looks to compile correctly for me now when using the latest fastly cli
|
Awesome. I'm going to close of this issue for now. Thanks. |
Version
Please paste the output of
fastly version
here.What happened
I ran
fastly compute serve --verbose
and expected the project to build but instead came across this error:The code which caused this error to occur is this:
The text was updated successfully, but these errors were encountered: