21eb2029d0
Bug: v8:7791 Change-Id: I0df79f39c6f60b3cfbdc0161f7c085c635659d81 Reviewed-on: https://chromium-review.googlesource.com/1075054 Reviewed-by: Sigurd Schneider <sigurds@chromium.org> Commit-Queue: Georg Neis <neis@chromium.org> Cr-Commit-Position: refs/heads/master@{#53385}
121 lines
2.2 KiB
JavaScript
121 lines
2.2 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.
|
|
|
|
"use strict";
|
|
|
|
|
|
// Data property last.
|
|
|
|
{
|
|
const o = {
|
|
get foo() { return 666 },
|
|
foo: 42,
|
|
};
|
|
assertEquals(42, Object.getOwnPropertyDescriptor(o, 'foo').value);
|
|
}
|
|
|
|
{
|
|
const o = {
|
|
set foo(_) { },
|
|
foo: 42,
|
|
};
|
|
assertEquals(42, Object.getOwnPropertyDescriptor(o, 'foo').value);
|
|
}
|
|
|
|
{
|
|
const o = {
|
|
get foo() { return 666 },
|
|
set foo(_) { },
|
|
foo: 42,
|
|
};
|
|
assertEquals(42, Object.getOwnPropertyDescriptor(o, 'foo').value);
|
|
}
|
|
|
|
{
|
|
const o = {
|
|
get foo() { return 666 },
|
|
set ['foo'.slice()](_) { },
|
|
foo: 42,
|
|
};
|
|
assertEquals(42, Object.getOwnPropertyDescriptor(o, 'foo').value);
|
|
}
|
|
|
|
{
|
|
const o = {
|
|
get ['foo'.slice()]() { return 666 },
|
|
set ['foo'.slice()](_) { },
|
|
foo: 42,
|
|
};
|
|
assertEquals(42, Object.getOwnPropertyDescriptor(o, 'foo').value);
|
|
}
|
|
|
|
|
|
// Data property first.
|
|
|
|
{
|
|
const o = {
|
|
foo: 666,
|
|
get foo() { return 42 },
|
|
};
|
|
assertEquals(42, Object.getOwnPropertyDescriptor(o, 'foo').get());
|
|
}
|
|
|
|
{
|
|
const o = {
|
|
foo: 666,
|
|
set foo(_) { },
|
|
};
|
|
assertEquals(undefined, Object.getOwnPropertyDescriptor(o, 'foo').get);
|
|
assertEquals(undefined, Object.getOwnPropertyDescriptor(o, 'foo').value);
|
|
}
|
|
|
|
{
|
|
const o = {
|
|
foo: 666,
|
|
get foo() { return 42 },
|
|
set foo(_) { },
|
|
};
|
|
assertEquals(42, Object.getOwnPropertyDescriptor(o, 'foo').get());
|
|
}
|
|
|
|
{
|
|
const o = {
|
|
foo: 666,
|
|
get ['foo'.slice()]() { return 42 },
|
|
set foo(_) { },
|
|
};
|
|
assertEquals(42, Object.getOwnPropertyDescriptor(o, 'foo').get());
|
|
}
|
|
|
|
{
|
|
const o = {
|
|
foo: 666,
|
|
get ['foo'.slice()]() { return 42 },
|
|
set ['foo'](_) { },
|
|
};
|
|
assertEquals(42, Object.getOwnPropertyDescriptor(o, 'foo').get());
|
|
}
|
|
|
|
|
|
// Data property in the middle.
|
|
|
|
{
|
|
const o = {
|
|
get foo() { return 42 },
|
|
foo: 666,
|
|
set foo(_) { },
|
|
};
|
|
assertEquals(undefined, Object.getOwnPropertyDescriptor(o, 'foo').get);
|
|
assertEquals(undefined, Object.getOwnPropertyDescriptor(o, 'foo').set());
|
|
}
|
|
|
|
{
|
|
const o = {
|
|
set foo(_) { },
|
|
foo: 666,
|
|
get foo() { return 42 },
|
|
};
|
|
assertEquals(42, Object.getOwnPropertyDescriptor(o, 'foo').get());
|
|
}
|