| 'use strict'; |
| // Flags: --expose_internals |
| |
| require('../common'); |
| const assert = require('assert'); |
| const fixtures = require('../common/fixtures'); |
| const { internalBinding } = require('internal/test/binding'); |
| |
| const { |
| getHiddenValue, |
| setHiddenValue, |
| arrow_message_private_symbol: kArrowMessagePrivateSymbolIndex |
| } = internalBinding('util'); |
| |
| assert.strictEqual( |
| getHiddenValue({}, kArrowMessagePrivateSymbolIndex), |
| undefined); |
| |
| const obj = {}; |
| assert.strictEqual( |
| setHiddenValue(obj, kArrowMessagePrivateSymbolIndex, 'bar'), |
| true); |
| assert.strictEqual( |
| getHiddenValue(obj, kArrowMessagePrivateSymbolIndex), |
| 'bar'); |
| |
| let arrowMessage; |
| |
| try { |
| require(fixtures.path('syntax', 'bad_syntax')); |
| } catch (err) { |
| arrowMessage = |
| getHiddenValue(err, kArrowMessagePrivateSymbolIndex); |
| } |
| |
| assert(/bad_syntax\.js:1/.test(arrowMessage)); |