happy-dom 19.0.2 → 20.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of happy-dom might be problematic. Click here for more details.

Files changed (65) hide show
  1. package/lib/PropertySymbol.d.ts +2 -0
  2. package/lib/PropertySymbol.d.ts.map +1 -1
  3. package/lib/PropertySymbol.js +2 -0
  4. package/lib/PropertySymbol.js.map +1 -1
  5. package/lib/browser/DefaultBrowserSettings.d.ts.map +1 -1
  6. package/lib/browser/DefaultBrowserSettings.js +3 -0
  7. package/lib/browser/DefaultBrowserSettings.js.map +1 -1
  8. package/lib/browser/types/IBrowserSettings.d.ts +22 -1
  9. package/lib/browser/types/IBrowserSettings.d.ts.map +1 -1
  10. package/lib/browser/types/IOptionalBrowserSettings.d.ts +22 -1
  11. package/lib/browser/types/IOptionalBrowserSettings.d.ts.map +1 -1
  12. package/lib/browser/utilities/BrowserFrameNavigator.js +3 -3
  13. package/lib/browser/utilities/BrowserFrameNavigator.js.map +1 -1
  14. package/lib/html-parser/HTMLParser.d.ts.map +1 -1
  15. package/lib/html-parser/HTMLParser.js +3 -2
  16. package/lib/html-parser/HTMLParser.js.map +1 -1
  17. package/lib/module/ECMAScriptModuleCompiler.d.ts.map +1 -1
  18. package/lib/module/ECMAScriptModuleCompiler.js +6 -2
  19. package/lib/module/ECMAScriptModuleCompiler.js.map +1 -1
  20. package/lib/nodes/element/ElementEventAttributeUtility.d.ts.map +1 -1
  21. package/lib/nodes/element/ElementEventAttributeUtility.js +5 -4
  22. package/lib/nodes/element/ElementEventAttributeUtility.js.map +1 -1
  23. package/lib/nodes/html-link-element/HTMLLinkElement.d.ts +1 -1
  24. package/lib/nodes/html-link-element/HTMLLinkElement.d.ts.map +1 -1
  25. package/lib/nodes/html-link-element/HTMLLinkElement.js +4 -4
  26. package/lib/nodes/html-link-element/HTMLLinkElement.js.map +1 -1
  27. package/lib/nodes/html-media-element/TextTrackList.d.ts +1 -0
  28. package/lib/nodes/html-media-element/TextTrackList.d.ts.map +1 -1
  29. package/lib/nodes/html-media-element/TextTrackList.js.map +1 -1
  30. package/lib/nodes/html-script-element/HTMLScriptElement.d.ts +1 -1
  31. package/lib/nodes/html-script-element/HTMLScriptElement.d.ts.map +1 -1
  32. package/lib/nodes/html-script-element/HTMLScriptElement.js +47 -37
  33. package/lib/nodes/html-script-element/HTMLScriptElement.js.map +1 -1
  34. package/lib/nodes/html-select-element/HTMLSelectElement.d.ts +1 -0
  35. package/lib/nodes/html-select-element/HTMLSelectElement.d.ts.map +1 -1
  36. package/lib/nodes/html-select-element/HTMLSelectElement.js.map +1 -1
  37. package/lib/version.js +1 -1
  38. package/lib/window/BrowserWindow.d.ts +15 -0
  39. package/lib/window/BrowserWindow.d.ts.map +1 -1
  40. package/lib/window/BrowserWindow.js +49 -0
  41. package/lib/window/BrowserWindow.js.map +1 -1
  42. package/lib/window/GlobalWindow.d.ts +7 -1
  43. package/lib/window/GlobalWindow.d.ts.map +1 -1
  44. package/lib/window/GlobalWindow.js +10 -1
  45. package/lib/window/GlobalWindow.js.map +1 -1
  46. package/lib/xml-parser/XMLParser.d.ts +0 -3
  47. package/lib/xml-parser/XMLParser.d.ts.map +1 -1
  48. package/lib/xml-parser/XMLParser.js +0 -3
  49. package/lib/xml-parser/XMLParser.js.map +1 -1
  50. package/package.json +1 -1
  51. package/src/PropertySymbol.ts +4 -0
  52. package/src/browser/DefaultBrowserSettings.ts +3 -0
  53. package/src/browser/types/IBrowserSettings.ts +25 -1
  54. package/src/browser/types/IOptionalBrowserSettings.ts +25 -1
  55. package/src/browser/utilities/BrowserFrameNavigator.ts +3 -3
  56. package/src/html-parser/HTMLParser.ts +3 -2
  57. package/src/module/ECMAScriptModuleCompiler.ts +6 -2
  58. package/src/nodes/element/ElementEventAttributeUtility.ts +5 -4
  59. package/src/nodes/html-link-element/HTMLLinkElement.ts +4 -4
  60. package/src/nodes/html-media-element/TextTrackList.ts +3 -0
  61. package/src/nodes/html-script-element/HTMLScriptElement.ts +51 -42
  62. package/src/nodes/html-select-element/HTMLSelectElement.ts +3 -0
  63. package/src/window/BrowserWindow.ts +57 -0
  64. package/src/window/GlobalWindow.ts +14 -1
  65. package/src/xml-parser/XMLParser.ts +0 -3
@@ -86,9 +86,6 @@ export default class XMLParser {
86
86
  * Constructor.
87
87
  *
88
88
  * @param window Window.
89
- * @param [options] Options.
90
- * @param [options.mode] Mode. Defaults to "htmlFragment".
91
- * @param [options.evaluateScripts] Set to "true" to enable script execution
92
89
  */
93
90
  constructor(window) {
94
91
  this.window = window;
@@ -1 +1 @@
1
- {"version":3,"file":"XMLParser.js","sourceRoot":"","sources":["../../src/xml-parser/XMLParser.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"XMLParser.js","sourceRoot":"","sources":["../../src/xml-parser/XMLParser.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "happy-dom",
3
- "version": "19.0.2",
3
+ "version": "20.0.1",
4
4
  "license": "MIT",
5
5
  "homepage": "https://github.com/capricorn86/happy-dom",
6
6
  "repository": "https://github.com/capricorn86/happy-dom",
@@ -404,3 +404,7 @@ export const cssRule = Symbol('cssRule');
404
404
  export const rulePrefix = Symbol('rulePrefix');
405
405
  export const virtualServerFile = Symbol('virtualServerFile');
406
406
  export const frames = Symbol('frames');
407
+ export const disableEvaluation = Symbol('disableEvaluation');
408
+ export const validateJavaScriptExecutionEnvironment = Symbol(
409
+ 'validateJavaScriptExecutionEnvironment'
410
+ );
@@ -5,6 +5,7 @@ import IBrowserSettings from './types/IBrowserSettings.js';
5
5
 
6
6
  export default <IBrowserSettings>{
7
7
  disableJavaScriptEvaluation: false,
8
+ enableJavaScriptEvaluation: false,
8
9
  disableJavaScriptFileLoading: false,
9
10
  disableCSSFileLoading: false,
10
11
  disableIframePageLoading: false,
@@ -13,6 +14,8 @@ export default <IBrowserSettings>{
13
14
  disableErrorCapturing: false,
14
15
  errorCapture: BrowserErrorCaptureEnum.tryAndCatch,
15
16
  enableFileSystemHttpRequests: false,
17
+ suppressCodeGenerationFromStringsWarning: false,
18
+ suppressInsecureJavaScriptEnvironmentWarning: false,
16
19
  timer: {
17
20
  maxTimeout: -1,
18
21
  maxIntervalTime: -1,
@@ -11,9 +11,23 @@ import BrowserWindow from '../../window/BrowserWindow.js';
11
11
  * Browser settings.
12
12
  */
13
13
  export default interface IBrowserSettings {
14
- /** Disables JavaScript evaluation. */
14
+ /**
15
+ * Disables JavaScript evaluation.
16
+ *
17
+ * @deprecated Javascript evaluation is now disabled by default. Use "enableJavaScriptEvaluation" if you want to enable it.
18
+ */
15
19
  disableJavaScriptEvaluation: boolean;
16
20
 
21
+ /**
22
+ * Enables JavaScript evaluation.
23
+ *
24
+ * A VM Context is not an isolated environment, and if you run untrusted code you are at risk of RCE (Remote Code Execution) attacks.
25
+ * It is recommended to disable code generation at process level by running node with the "--disallow-code-generation-from-strings" flag enabled to protect against these types of attacks.
26
+ *
27
+ * @see https://github.com/capricorn86/happy-dom/wiki/Code-Generation-From-Strings-Warning
28
+ */
29
+ enableJavaScriptEvaluation: boolean;
30
+
17
31
  /** Disables JavaScript file loading. */
18
32
  disableJavaScriptFileLoading: boolean;
19
33
 
@@ -26,6 +40,16 @@ export default interface IBrowserSettings {
26
40
  /** Handle disabled resource loading as success */
27
41
  handleDisabledFileLoadingAsSuccess: boolean;
28
42
 
43
+ /**
44
+ * Suppresses the warning that is printed when code generation from strings is enabled at process level.
45
+ *
46
+ * @deprecated Use "suppressInsecureJavaScriptEnvironmentWarning" instead.
47
+ */
48
+ suppressCodeGenerationFromStringsWarning: boolean;
49
+
50
+ /** Suppresses the warning that is printed when the JavaScript execution environment is insecure. */
51
+ suppressInsecureJavaScriptEnvironmentWarning: boolean;
52
+
29
53
  /**
30
54
  * Settings for timers
31
55
  */
@@ -8,9 +8,23 @@ import IOptionalTimerLoopsLimit from '../../window/IOptionalTimerLoopsLimit.js';
8
8
  import BrowserWindow from '../../window/BrowserWindow.js';
9
9
 
10
10
  export default interface IOptionalBrowserSettings {
11
- /** Disables JavaScript evaluation. */
11
+ /**
12
+ * Disables JavaScript evaluation.
13
+ *
14
+ * @deprecated Javascript evaluation is now disabled by default. Use "enableJavaScriptEvaluation" if you want to enable it.
15
+ */
12
16
  disableJavaScriptEvaluation?: boolean;
13
17
 
18
+ /**
19
+ * Enables JavaScript evaluation.
20
+ *
21
+ * A VM Context is not an isolated environment, and if you run untrusted code you are at risk of RCE (Remote Code Execution) attacks.
22
+ * It is recommended to disable code generation at process level by running node with the "--disallow-code-generation-from-strings" flag enabled to protect against these types of attacks.
23
+ *
24
+ * @see https://github.com/capricorn86/happy-dom/wiki/Code-Generation-From-Strings-Warning
25
+ */
26
+ enableJavaScriptEvaluation?: boolean;
27
+
14
28
  /** Disables JavaScript file loading. */
15
29
  disableJavaScriptFileLoading?: boolean;
16
30
 
@@ -23,6 +37,16 @@ export default interface IOptionalBrowserSettings {
23
37
  /** Handle disabled file loading as success */
24
38
  handleDisabledFileLoadingAsSuccess?: boolean;
25
39
 
40
+ /**
41
+ * Suppresses the warning that is printed when code generation from strings is enabled at process level.
42
+ *
43
+ * @deprecated Use "suppressInsecureJavaScriptEnvironmentWarning" instead.
44
+ */
45
+ suppressCodeGenerationFromStringsWarning?: boolean;
46
+
47
+ /** Suppresses the warning that is printed when the JavaScript execution environment is insecure. */
48
+ suppressInsecureJavaScriptEnvironmentWarning?: boolean;
49
+
26
50
  /** Settings for timers */
27
51
  timer?: {
28
52
  maxTimeout?: number;
@@ -89,12 +89,12 @@ export default class BrowserFrameNavigator {
89
89
 
90
90
  // Javascript protocol
91
91
  if (targetURL.protocol === 'javascript:') {
92
- if (frame && !frame.page.context.browser.settings.disableJavaScriptEvaluation) {
92
+ if (frame && frame.page.context.browser.settings.enableJavaScriptEvaluation) {
93
93
  const readyStateManager = frame.window[PropertySymbol.readyStateManager];
94
94
  const asyncTaskManager = frame[PropertySymbol.asyncTaskManager];
95
95
 
96
96
  const taskID = readyStateManager.startTask();
97
- const code = `${targetURL.href.replace('javascript:', '')}\n//# sourceURL=${frame.url}`;
97
+ const code = targetURL.href.replace('javascript:', '');
98
98
 
99
99
  // The browser will wait for the next tick before executing the script.
100
100
  // Fixes issue where evaluating the response can throw an error.
@@ -110,7 +110,7 @@ export default class BrowserFrameNavigator {
110
110
  clearImmediate(immediate);
111
111
  resolve(null);
112
112
  });
113
- frame.window.eval(code);
113
+ frame.window[PropertySymbol.evaluateScript](code, { filename: frame.url });
114
114
  });
115
115
  });
116
116
 
@@ -776,10 +776,11 @@ export default class HTMLParser {
776
776
  // However, they are allowed to be executed when document.write() is used.
777
777
  // See: https://developer.mozilla.org/en-US/docs/Web/API/HTMLScriptElement
778
778
  if (upperTagName === 'SCRIPT') {
779
- (<HTMLScriptElement>this.currentNode)[PropertySymbol.evaluateScript] = this.evaluateScripts;
779
+ (<HTMLScriptElement>this.currentNode)[PropertySymbol.disableEvaluation] =
780
+ !this.evaluateScripts;
780
781
  } else if (upperTagName === 'LINK') {
781
782
  // An assumption that the same rule should be applied for the HTMLLinkElement is made here.
782
- (<HTMLLinkElement>this.currentNode)[PropertySymbol.evaluateCSS] = this.evaluateScripts;
783
+ (<HTMLLinkElement>this.currentNode)[PropertySymbol.disableEvaluation] = !this.evaluateScripts;
783
784
  }
784
785
 
785
786
  // Plain text elements such as <script> and <style> should only contain text.
@@ -401,10 +401,14 @@ export default class ECMAScriptModuleCompiler {
401
401
  }
402
402
 
403
403
  newCode += '})';
404
- newCode += `\n//# sourceURL=${sourceURL || moduleURL}`;
405
404
 
406
405
  try {
407
- return { imports, execute: this.window.eval(newCode) };
406
+ return {
407
+ imports,
408
+ execute: this.window[PropertySymbol.evaluateScript](newCode, {
409
+ filename: sourceURL || moduleURL
410
+ })
411
+ };
408
412
  } catch (e) {
409
413
  const errorMessage = this.getError(moduleURL, code, sourceURL) || (<Error>e).message;
410
414
  const error = new this.window.SyntaxError(
@@ -32,7 +32,7 @@ export default class ElementEventAttributeUtility {
32
32
 
33
33
  const browserSettings = new WindowBrowserContext(window).getSettings();
34
34
 
35
- if (!browserSettings) {
35
+ if (!browserSettings || !browserSettings.enableJavaScriptEvaluation) {
36
36
  return null;
37
37
  }
38
38
 
@@ -63,13 +63,14 @@ export default class ElementEventAttributeUtility {
63
63
  }
64
64
 
65
65
  newCode += '})';
66
- newCode += `\n//# sourceURL=${window.location.href}`;
67
66
 
68
67
  let listener: ((event: Event) => void) | null = null;
69
68
 
70
69
  try {
71
- listener = window.eval(newCode).bind(element, {
72
- dispatchError: window[PropertySymbol.dispatchError]
70
+ listener = window[PropertySymbol.evaluateScript](newCode, {
71
+ filename: window.location.href
72
+ }).bind(element, {
73
+ dispatchError: window[PropertySymbol.dispatchError].bind(window)
73
74
  });
74
75
  } catch (e) {
75
76
  const error = new window.SyntaxError(
@@ -24,7 +24,7 @@ import IResourceFetchResponse from '../../fetch/types/IResourceFetchResponse.js'
24
24
  export default class HTMLLinkElement extends HTMLElement {
25
25
  // Internal properties
26
26
  public [PropertySymbol.sheet]: CSSStyleSheet | null = null;
27
- public [PropertySymbol.evaluateCSS] = true;
27
+ public [PropertySymbol.disableEvaluation] = false;
28
28
  public [PropertySymbol.relList]: DOMTokenList | null = null;
29
29
  #loadedStyleSheetURL: string | null = null;
30
30
 
@@ -305,7 +305,7 @@ export default class HTMLLinkElement extends HTMLElement {
305
305
  !browserSettings ||
306
306
  !this[PropertySymbol.isConnected] ||
307
307
  browserSettings.disableJavaScriptFileLoading ||
308
- browserSettings.disableJavaScriptEvaluation
308
+ !browserSettings.enableJavaScriptEvaluation
309
309
  ) {
310
310
  return;
311
311
  }
@@ -351,7 +351,7 @@ export default class HTMLLinkElement extends HTMLElement {
351
351
 
352
352
  if (
353
353
  as === 'script' &&
354
- (browserSettings.disableJavaScriptFileLoading || browserSettings.disableJavaScriptEvaluation)
354
+ (browserSettings.disableJavaScriptFileLoading || !browserSettings.enableJavaScriptEvaluation)
355
355
  ) {
356
356
  return;
357
357
  }
@@ -422,7 +422,7 @@ export default class HTMLLinkElement extends HTMLElement {
422
422
 
423
423
  const browserSettings = browserFrame.page.context.browser.settings;
424
424
 
425
- if (!this[PropertySymbol.evaluateCSS] || !this[PropertySymbol.isConnected]) {
425
+ if (this[PropertySymbol.disableEvaluation] || !this[PropertySymbol.isConnected]) {
426
426
  return;
427
427
  }
428
428
 
@@ -9,6 +9,9 @@ import ClassMethodBinder from '../../utilities/ClassMethodBinder.js';
9
9
  * @see https://developer.mozilla.org/en-US/docs/Web/API/TextTrackList
10
10
  */
11
11
  export default class TextTrackList extends EventTarget {
12
+ // Index signature
13
+ [index: number]: TextTrack | undefined;
14
+
12
15
  // Internal properties
13
16
  public [PropertySymbol.items]: TextTrack[] = [];
14
17
 
@@ -25,7 +25,7 @@ export default class HTMLScriptElement extends HTMLElement {
25
25
  public declare cloneNode: (deep?: boolean) => HTMLScriptElement;
26
26
 
27
27
  // Internal properties
28
- public [PropertySymbol.evaluateScript] = true;
28
+ public [PropertySymbol.disableEvaluation] = false;
29
29
  public [PropertySymbol.blocking]: DOMTokenList | null = null;
30
30
 
31
31
  // Private properties
@@ -349,32 +349,34 @@ export default class HTMLScriptElement extends HTMLElement {
349
349
 
350
350
  super[PropertySymbol.connectedToDocument]();
351
351
 
352
- if (this[PropertySymbol.evaluateScript]) {
353
- const src = this.getAttribute('src');
352
+ if (this[PropertySymbol.disableEvaluation]) {
353
+ return;
354
+ }
354
355
 
355
- if (src !== null) {
356
- if (this.getAttribute('type') === 'module') {
357
- this.#loadModule(src);
358
- } else {
359
- this.#loadScript(src);
360
- }
361
- } else if (browserSettings && !browserSettings.disableJavaScriptEvaluation) {
362
- const source = this.textContent;
363
- const type = this.getAttribute('type');
364
-
365
- if (source) {
366
- if (type === 'module') {
367
- this.#evaluateModule(source);
368
- } else if (type === 'importmap') {
369
- this.#evaluateImportMap(source);
370
- } else if (
371
- type === null ||
372
- type === 'application/x-ecmascript' ||
373
- type === 'application/x-javascript' ||
374
- type.startsWith('text/javascript')
375
- ) {
376
- this.#evaluateScript(source);
377
- }
356
+ const src = this.getAttribute('src');
357
+
358
+ if (src !== null) {
359
+ if (this.getAttribute('type') === 'module') {
360
+ this.#loadModule(src);
361
+ } else {
362
+ this.#loadScript(src);
363
+ }
364
+ } else if (browserSettings && browserSettings.enableJavaScriptEvaluation) {
365
+ const source = this.textContent;
366
+ const type = this.getAttribute('type');
367
+
368
+ if (source) {
369
+ if (type === 'module') {
370
+ this.#evaluateModule(source);
371
+ } else if (type === 'importmap') {
372
+ this.#evaluateImportMap(source);
373
+ } else if (
374
+ type === null ||
375
+ type === 'application/x-ecmascript' ||
376
+ type === 'application/x-javascript' ||
377
+ type.startsWith('text/javascript')
378
+ ) {
379
+ this.#evaluateScript(source);
378
380
  }
379
381
  }
380
382
  }
@@ -413,7 +415,7 @@ export default class HTMLScriptElement extends HTMLElement {
413
415
  const browserSettings = new WindowBrowserContext(window).getSettings();
414
416
  const browserFrame = new WindowBrowserContext(window).getBrowserFrame();
415
417
 
416
- if (!browserFrame || !browserSettings) {
418
+ if (!browserFrame || !browserSettings || !browserSettings.enableJavaScriptEvaluation) {
417
419
  return;
418
420
  }
419
421
 
@@ -446,7 +448,12 @@ export default class HTMLScriptElement extends HTMLElement {
446
448
  const browserSettings = new WindowBrowserContext(window).getSettings();
447
449
  const browserFrame = new WindowBrowserContext(window).getBrowserFrame();
448
450
 
449
- if (!browserFrame || !browserSettings || window[PropertySymbol.moduleImportMap]) {
451
+ if (
452
+ !browserFrame ||
453
+ !browserSettings ||
454
+ window[PropertySymbol.moduleImportMap] ||
455
+ !browserSettings.enableJavaScriptEvaluation
456
+ ) {
450
457
  return;
451
458
  }
452
459
 
@@ -510,9 +517,9 @@ export default class HTMLScriptElement extends HTMLElement {
510
517
  /**
511
518
  * Evaluates a script.
512
519
  *
513
- * @param source Source.
520
+ * @param code Code.
514
521
  */
515
- #evaluateScript(source: string): void {
522
+ #evaluateScript(code: string): void {
516
523
  const window = this[PropertySymbol.window];
517
524
  const browserSettings = new WindowBrowserContext(window).getSettings();
518
525
 
@@ -522,16 +529,18 @@ export default class HTMLScriptElement extends HTMLElement {
522
529
 
523
530
  this[PropertySymbol.ownerDocument][PropertySymbol.currentScript] = this;
524
531
 
525
- const code = `${source}\n//# sourceURL=${this[PropertySymbol.ownerDocument].location.href}`;
526
-
527
532
  if (
528
533
  browserSettings.disableErrorCapturing ||
529
534
  browserSettings.errorCapture !== BrowserErrorCaptureEnum.tryAndCatch
530
535
  ) {
531
- window.eval(code);
536
+ window[PropertySymbol.evaluateScript](code, {
537
+ filename: this[PropertySymbol.ownerDocument].location.href
538
+ });
532
539
  } else {
533
540
  try {
534
- window.eval(code);
541
+ window[PropertySymbol.evaluateScript](code, {
542
+ filename: this[PropertySymbol.ownerDocument].location.href
543
+ });
535
544
  } catch (error) {
536
545
  window[PropertySymbol.dispatchError](<Error>error);
537
546
  }
@@ -560,7 +569,7 @@ export default class HTMLScriptElement extends HTMLElement {
560
569
 
561
570
  if (
562
571
  browserSettings &&
563
- (browserSettings.disableJavaScriptFileLoading || browserSettings.disableJavaScriptEvaluation)
572
+ (browserSettings.disableJavaScriptFileLoading || !browserSettings.enableJavaScriptEvaluation)
564
573
  ) {
565
574
  if (browserSettings.handleDisabledFileLoadingAsSuccess) {
566
575
  this.dispatchEvent(new Event('load'));
@@ -639,7 +648,7 @@ export default class HTMLScriptElement extends HTMLElement {
639
648
 
640
649
  if (
641
650
  browserSettings &&
642
- (browserSettings.disableJavaScriptFileLoading || browserSettings.disableJavaScriptEvaluation)
651
+ (browserSettings.disableJavaScriptFileLoading || !browserSettings.enableJavaScriptEvaluation)
643
652
  ) {
644
653
  if (browserSettings.handleDisabledFileLoadingAsSuccess) {
645
654
  this.dispatchEvent(new Event('load'));
@@ -693,18 +702,18 @@ export default class HTMLScriptElement extends HTMLElement {
693
702
 
694
703
  this[PropertySymbol.ownerDocument][PropertySymbol.currentScript] = this;
695
704
 
696
- const code = `${response.content}\n//# sourceURL=${
697
- response.virtualServerFile || absoluteURLString
698
- }`;
699
-
700
705
  if (
701
706
  browserSettings.disableErrorCapturing ||
702
707
  browserSettings.errorCapture !== BrowserErrorCaptureEnum.tryAndCatch
703
708
  ) {
704
- this[PropertySymbol.window].eval(code);
709
+ this[PropertySymbol.window][PropertySymbol.evaluateScript](response.content, {
710
+ filename: response.virtualServerFile || absoluteURLString
711
+ });
705
712
  } else {
706
713
  try {
707
- this[PropertySymbol.window].eval(code);
714
+ this[PropertySymbol.window][PropertySymbol.evaluateScript](response.content, {
715
+ filename: response.virtualServerFile || absoluteURLString
716
+ });
708
717
  } catch (error) {
709
718
  this[PropertySymbol.ownerDocument][PropertySymbol.currentScript] = null;
710
719
  window[PropertySymbol.dispatchError](<Error>error);
@@ -25,6 +25,9 @@ import BrowserWindow from '../../window/BrowserWindow.js';
25
25
  * https://developer.mozilla.org/en-US/docs/Web/API/HTMLSelectElement.
26
26
  */
27
27
  export default class HTMLSelectElement extends HTMLElement {
28
+ // Index signature
29
+ [index: number]: HTMLOptionElement | undefined;
30
+
28
31
  // Injected by WindowContextClassExtender
29
32
  protected declare [PropertySymbol.window]: BrowserWindow;
30
33
 
@@ -331,6 +331,26 @@ const TIMER = {
331
331
 
332
332
  const IS_NODE_JS_TIMEOUT_ENVIRONMENT = setTimeout.toString().includes('new Timeout');
333
333
 
334
+ const IS_CODE_GENERATION_FROM_STRINGS_ENVIRONMENT = (() => {
335
+ try {
336
+ // eslint-disable-next-line no-new-func
337
+ new Function('return true;')();
338
+ return true;
339
+ } catch {
340
+ return false;
341
+ }
342
+ })();
343
+
344
+ const IS_UNFROZEN_INTRINSICS_ENVIRONMENT = (() => {
345
+ try {
346
+ (<any>globalThis.Function)['$UNFROZEN$'] = true;
347
+ delete (<any>globalThis.Function)['$UNFROZEN$'];
348
+ return true;
349
+ } catch {
350
+ return false;
351
+ }
352
+ })();
353
+
334
354
  /**
335
355
  * Class for PerformanceObserverEntryList as it is only available as an interface from Node.js.
336
356
  */
@@ -779,6 +799,7 @@ export default class BrowserWindow extends EventTarget implements INodeJSGlobal
779
799
  public declare encodeURI: typeof encodeURI;
780
800
  public declare encodeURIComponent: typeof encodeURIComponent;
781
801
  public declare eval: typeof eval;
802
+
782
803
  /**
783
804
  * @deprecated
784
805
  */
@@ -849,6 +870,8 @@ export default class BrowserWindow extends EventTarget implements INodeJSGlobal
849
870
 
850
871
  this.#browserFrame = browserFrame;
851
872
 
873
+ this[PropertySymbol.validateJavaScriptExecutionEnvironment]();
874
+
852
875
  this.console = browserFrame.page.console;
853
876
 
854
877
  this[PropertySymbol.readyStateManager] = new DocumentReadyStateManager(browserFrame);
@@ -1806,6 +1829,18 @@ export default class BrowserWindow extends EventTarget implements INodeJSGlobal
1806
1829
  this.dispatchEvent(new ErrorEvent('error', { message: error.message, error }));
1807
1830
  }
1808
1831
 
1832
+ /**
1833
+ * Evaluates code in a VM context.
1834
+ *
1835
+ * @param code Code.
1836
+ * @param [options] Options.
1837
+ * @param [options.filename] Filename.
1838
+ * @returns any.
1839
+ */
1840
+ public [PropertySymbol.evaluateScript](code: string, options?: { filename?: string }): any {
1841
+ return new VM.Script(code, options).runInContext(this);
1842
+ }
1843
+
1809
1844
  /**
1810
1845
  * Setup of VM context.
1811
1846
  */
@@ -1819,6 +1854,28 @@ export default class BrowserWindow extends EventTarget implements INodeJSGlobal
1819
1854
  }
1820
1855
  }
1821
1856
 
1857
+ /**
1858
+ * Checks if the JavaScript execution environment is secure and outputs a warning if not.
1859
+ */
1860
+ protected [PropertySymbol.validateJavaScriptExecutionEnvironment](): void {
1861
+ const browserFrame = this.#browserFrame;
1862
+ if (
1863
+ (IS_CODE_GENERATION_FROM_STRINGS_ENVIRONMENT || IS_UNFROZEN_INTRINSICS_ENVIRONMENT) &&
1864
+ browserFrame.page.context.browser.settings.enableJavaScriptEvaluation &&
1865
+ !browserFrame.page.context.browser.settings.suppressInsecureJavaScriptEnvironmentWarning &&
1866
+ !browserFrame.page.context.browser.settings.suppressCodeGenerationFromStringsWarning
1867
+ ) {
1868
+ // eslint-disable-next-line no-console
1869
+ console.warn(
1870
+ '\nWarning! Happy DOM has JavaScript evaluation enabled and is running in an insecure environment.' +
1871
+ '\n\nA VM Context is not an isolated environment, and if you run untrusted code you are at risk of RCE (Remote Code Execution) attacks. The attacker can escape the VM and run code at process level.' +
1872
+ '\n\nIt is recommended to disable code generation and freeze all builtins at process level by running node with the flags "--disallow-code-generation-from-strings" and "--frozen-intrinsics".' +
1873
+ ' You can suppress this warning by setting "suppressInsecureJavaScriptEnvironmentWarning" to "true" at your own risk.' +
1874
+ '\n\nFor more information, see https://github.com/capricorn86/happy-dom/wiki/JavaScript-Evaluation-Warning\n\n'
1875
+ );
1876
+ }
1877
+ }
1878
+
1822
1879
  /**
1823
1880
  * Destroys the window.
1824
1881
  */