ca489d39da
Proposal repo: https://github.com/tc39/proposal-symbol-description Add new Builtin SymbolPrototypeDescriptionGetter. Bug: v8:7807 Cq-Include-Trybots: luci.v8.try:v8_linux_noi18n_rel_ng Change-Id: I7353bd00b172e91d8624e3373d2a4b55aced8b5c Reviewed-on: https://chromium-review.googlesource.com/1088871 Commit-Queue: Sathya Gunasekaran <gsathya@chromium.org> Reviewed-by: Sathya Gunasekaran <gsathya@chromium.org> Cr-Commit-Position: refs/heads/master@{#53592}
54 lines
1.3 KiB
JavaScript
54 lines
1.3 KiB
JavaScript
// Copyright 2018 the V8 project authors. All rights reserved.
|
|
// Use of this source code is governed by a BSD-style license that can be
|
|
// found in the LICENSE file.
|
|
|
|
// Flags: --harmony-symbol-description
|
|
|
|
{
|
|
let desc = Object.getOwnPropertyDescriptor(Symbol.prototype, 'description');
|
|
assertEquals(desc.set, undefined);
|
|
assertEquals(desc.writable, undefined);
|
|
assertFalse(desc.enumerable);
|
|
assertTrue(desc.configurable);
|
|
}
|
|
|
|
{
|
|
const empty = Symbol();
|
|
assertEquals(empty.description, undefined);
|
|
|
|
const symbol = Symbol('test');
|
|
assertEquals(symbol.description, 'test');
|
|
assertFalse(symbol.hasOwnProperty('description'));
|
|
}
|
|
|
|
{
|
|
const empty = Object(Symbol());
|
|
assertEquals(empty.description, undefined);
|
|
|
|
const symbol = Object(Symbol('test'));
|
|
assertEquals(symbol.description, 'test');
|
|
assertFalse(symbol.hasOwnProperty('description'));
|
|
}
|
|
|
|
{
|
|
assertThrows(function() {
|
|
const proxy = new Proxy({}, {});
|
|
Symbol.prototype.description.call(proxy);
|
|
}, TypeError);
|
|
|
|
assertThrows(function() {
|
|
const smi = 123;
|
|
Symbol.prototype.description.call(smi);
|
|
}, TypeError);
|
|
|
|
assertThrows(function() {
|
|
const str = 'string';
|
|
Symbol.prototype.description.call(string);
|
|
}, TypeError);
|
|
|
|
assertThrows(function() {
|
|
const obj = { prop: 'test' };
|
|
Symbol.prototype.description.call(obj);
|
|
}, TypeError);
|
|
}
|