1'use strict';
2// Refs: https://github.com/nodejs/node/issues/10223
3
4require('../common');
5const vm = require('vm');
6const assert = require('assert');
7
8const context = vm.createContext({});
9
10let code = `
11   Object.defineProperty(this, 'foo', {value: 5});
12   Object.getOwnPropertyDescriptor(this, 'foo');
13`;
14
15let desc = vm.runInContext(code, context);
16
17assert.strictEqual(desc.writable, false);
18
19// Check that interceptors work for symbols.
20code = `
21   const bar = Symbol('bar');
22   Object.defineProperty(this, bar, {value: 6});
23   Object.getOwnPropertyDescriptor(this, bar);
24`;
25
26desc = vm.runInContext(code, context);
27
28assert.strictEqual(desc.value, 6);
29