mirror of https://github.com/tc39/test262.git
39 lines
1.1 KiB
JavaScript
39 lines
1.1 KiB
JavaScript
// Copyright 2011 Google Inc. All rights reserved.
|
|
// This code is governed by the BSD license found in the LICENSE file.
|
|
|
|
/*---
|
|
info: |
|
|
If a particular API exists (document.createElement, as happens to
|
|
exist in a browser environment), check if the form objects it makes
|
|
obey the constraints that even host objects must obey. In this
|
|
case, that if defineProperty seems to have successfully installed a
|
|
non-configurable getter, that it is still there.
|
|
es5id: 15.2.3.6_A1
|
|
description: Do getters on HTMLFormElements disappear?
|
|
---*/
|
|
|
|
function getter() {
|
|
return 'gotten';
|
|
}
|
|
|
|
if (typeof document !== 'undefined' &&
|
|
typeof document.createElement === 'function') {
|
|
var f = document.createElement("form");
|
|
var refused = false;
|
|
try {
|
|
Object.defineProperty(f, 'foo', {
|
|
get: getter,
|
|
set: void 0
|
|
});
|
|
} catch (err) {
|
|
// A host object may refuse to install the getter
|
|
refused = true;
|
|
}
|
|
if (!refused) {
|
|
var desc = Object.getOwnPropertyDescriptor(f, 'foo');
|
|
if (desc.get !== getter) {
|
|
$ERROR('Getter on HTMLFormElement disappears');
|
|
}
|
|
}
|
|
}
|