Skip to content

Commit d1c81fd

Browse files
authored
fix: remove getVmContext from node env on older versions of n… (#9708)
1 parent a679390 commit d1c81fd

3 files changed

Lines changed: 15 additions & 1 deletion

File tree

CHANGELOG.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@
44

55
### Fixes
66

7+
- `[jest-environment-node]` Remove `getVmContext` from Node env on older versions of Node ([#9706](https://github.com/facebook/jest/pull/9706))
8+
79
### Chore & Maintenance
810

911
### Performance

packages/jest-environment-node/package.json

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,11 @@
2121
"@jest/fake-timers": "^25.2.1",
2222
"@jest/types": "^25.2.1",
2323
"jest-mock": "^25.2.1",
24-
"jest-util": "^25.2.1"
24+
"jest-util": "^25.2.1",
25+
"semver": "^6.3.0"
26+
},
27+
"devDependencies": {
28+
"@types/semver": "^6.2.1"
2529
},
2630
"engines": {
2731
"node": ">= 8.3"

packages/jest-environment-node/src/index.ts

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ import {
1414
LolexFakeTimers,
1515
} from '@jest/fake-timers';
1616
import type {JestEnvironment} from '@jest/environment';
17+
import {lt as semverLt} from 'semver';
1718

1819
type Timer = {
1920
id: number;
@@ -121,4 +122,11 @@ class NodeEnvironment implements JestEnvironment {
121122
}
122123
}
123124

125+
// node 10 had a bug in `vm.compileFunction` that was fixed in https://github.com/nodejs/node/pull/23206.
126+
// Let's just pretend the env doesn't support the function.
127+
// Make sure engine requirement is high enough when we drop node 8 so we can remove this condition
128+
if (semverLt(process.version, '10.14.2')) {
129+
delete NodeEnvironment.prototype.getVmContext;
130+
}
131+
124132
export = NodeEnvironment;

0 commit comments

Comments
 (0)