2015-11-23 14:58:18 -05:00
|
|
|
'use strict';
|
2020-03-29 00:01:29 -05:00
|
|
|
// Flags: --expose-internals
|
2015-11-23 14:58:18 -05:00
|
|
|
|
2017-07-17 15:33:46 -07:00
|
|
|
require('../common');
|
2015-11-23 14:58:18 -05:00
|
|
|
const assert = require('assert');
|
2017-07-17 15:33:46 -07:00
|
|
|
const fixtures = require('../common/fixtures');
|
2018-09-03 11:16:48 -04:00
|
|
|
const { internalBinding } = require('internal/test/binding');
|
2015-11-23 14:58:18 -05:00
|
|
|
|
2017-10-26 21:34:15 -07:00
|
|
|
const {
|
|
|
|
getHiddenValue,
|
|
|
|
setHiddenValue,
|
2018-12-16 03:13:12 +08:00
|
|
|
arrow_message_private_symbol: kArrowMessagePrivateSymbolIndex
|
2018-09-03 11:16:48 -04:00
|
|
|
} = internalBinding('util');
|
2016-05-31 19:58:31 +02:00
|
|
|
|
2017-10-26 21:34:15 -07:00
|
|
|
assert.strictEqual(
|
|
|
|
getHiddenValue({}, kArrowMessagePrivateSymbolIndex),
|
2017-07-25 10:37:08 -07:00
|
|
|
undefined);
|
2015-11-23 14:58:18 -05:00
|
|
|
|
2015-12-15 03:55:35 -05:00
|
|
|
const obj = {};
|
2016-05-31 19:58:31 +02:00
|
|
|
assert.strictEqual(
|
2017-10-26 21:34:15 -07:00
|
|
|
setHiddenValue(obj, kArrowMessagePrivateSymbolIndex, 'bar'),
|
2017-07-25 10:37:08 -07:00
|
|
|
true);
|
2016-05-31 19:58:31 +02:00
|
|
|
assert.strictEqual(
|
2017-10-26 21:34:15 -07:00
|
|
|
getHiddenValue(obj, kArrowMessagePrivateSymbolIndex),
|
2017-07-25 10:37:08 -07:00
|
|
|
'bar');
|
2015-12-15 03:55:35 -05:00
|
|
|
|
2015-11-23 14:58:18 -05:00
|
|
|
let arrowMessage;
|
|
|
|
|
|
|
|
try {
|
2017-07-17 15:33:46 -07:00
|
|
|
require(fixtures.path('syntax', 'bad_syntax'));
|
2015-11-23 14:58:18 -05:00
|
|
|
} catch (err) {
|
2016-05-31 19:58:31 +02:00
|
|
|
arrowMessage =
|
2017-10-26 21:34:15 -07:00
|
|
|
getHiddenValue(err, kArrowMessagePrivateSymbolIndex);
|
2015-11-23 14:58:18 -05:00
|
|
|
}
|
|
|
|
|
|
|
|
assert(/bad_syntax\.js:1/.test(arrowMessage));
|