summaryrefslogtreecommitdiff
path: root/test/parallel/test-module-prototype-mutation.js
blob: b21dba87b6aa409c9073b261279f86303c47be6c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
'use strict';
const common = require('../common');
const fixtures = require('../common/fixtures');
const assert = require('assert');

Object.defineProperty(Object.prototype, 'name', {
  __proto__: null,
  get: common.mustNotCall('get %Object.prototype%.name'),
  set: common.mustNotCall('set %Object.prototype%.name'),
  enumerable: false,
});
Object.defineProperty(Object.prototype, 'main', {
  __proto__: null,
  get: common.mustNotCall('get %Object.prototype%.main'),
  set: common.mustNotCall('set %Object.prototype%.main'),
  enumerable: false,
});
Object.defineProperty(Object.prototype, 'type', {
  __proto__: null,
  get: common.mustNotCall('get %Object.prototype%.type'),
  set: common.mustNotCall('set %Object.prototype%.type'),
  enumerable: false,
});
Object.defineProperty(Object.prototype, 'exports', {
  __proto__: null,
  get: common.mustNotCall('get %Object.prototype%.exports'),
  set: common.mustNotCall('set %Object.prototype%.exports'),
  enumerable: false,
});
Object.defineProperty(Object.prototype, 'imports', {
  __proto__: null,
  get: common.mustNotCall('get %Object.prototype%.imports'),
  set: common.mustNotCall('set %Object.prototype%.imports'),
  enumerable: false,
});

assert.strictEqual(
  require(fixtures.path('es-module-specifiers', 'node_modules', 'no-main-field')),
  'no main field'
);

import(fixtures.fileURL('es-module-specifiers', 'index.mjs'))
  .then(common.mustCall((module) => assert.strictEqual(module.noMain, 'no main field')));