JavaScript Feature Reference: Object Literal Accessor Property Syntax Web Browser Support Test

Last reviewed/updated: 17 Dec 2017 | Published: 16 Dec 2017 | Status: Active
Web browser support: Internet Explorer 10+, Edge 12+, Firefox 6+, Chrome 30+, Opera 17+

1. Introduction

In this web page there are two web browser JavaScript feature support tests; 1.) a feature implementation test, and 2.) a feature capability test. First, the implementation test is run. The implementation test determines if the web browser recognizes the JavaScript object literal accessor property syntax. The implementation test is a simple test for the presence of web browser support, and a definitive test for the absence of web browser support. If the web browser does not recognize the JavaScript object literal accessor property syntax, the testing is stopped and the implementation test reports: Fail (no support): The web browser does not recognize the JavaScript object literal accessor property syntax. The web browser does not support the JavaScript object literal accessor property syntax.

If the web browser recognizes the JavaScript object literal accessor property syntax, the capability test is run. The capability test determines if the web browser's implementation of the JavaScript object literal accessor property syntax includes support for at least one object literal accessor property syntax capability. The capability test is a more definitive, albeit not an all inclusive, test for the presence of web browser support. If the web browser's implementation of the JavaScript object literal accessor property syntax includes support for the tested capability, the capability test reports: Pass (at least partial/possibly full support): The web browser recognizes the JavaScript object literal accessor property syntax, and supports at least one object literal accessor property syntax capability. The web browser at least partially/possibly fully supports the JavaScript object literal accessor property syntax. Positive determination of full web browser support is beyond the scope of this test. If the web browser's implementation of the JavaScript object literal accessor property syntax does not include support for the tested capability, the capability test reports: Pass/Fail (partial support): The web browser recognizes the JavaScript object literal accessor property syntax, but does not support at least one object literal accessor property syntax capability. The web browser partially supports the JavaScript object literal accessor property syntax.

The web browser support test source code is shown in Section 2.1. The web browser support test source code is run in Section 2.2, which shows the web browser support test result.

1.1. Object Literal Accessor Property Syntax Web Browser Support

Pass (at least partial/possibly full support): IE9+, ED12+, FF1.5+, SF3.1+, CH2+, OP9.50+.

1.2. Abbreviations

  • IE = Internet Explorer.
  • ED = Edge Legacy 12 - 18 (EdgeHTML based) and Edge 79+ (Chromium based).
  • FF = Firefox.
  • SF = Safari.
  • CH = Chrome.
  • OP = Opera.

2. Object Literal Accessor Property Syntax Web Browser Support Test

2.1. Web Browser Support Test Source Code

<p id='testId'><b>Fail</b> (no support): The web browser does not recognize the JavaScript object literal accessor property syntax. The web browser does not support the JavaScript object literal accessor property syntax.</p><!-- Hard code Fail because web browser no support error stops JavaScript execution. -->

<script>
var objectLiteral = {
 propertyOne: "propertyOne value", // Data property.
 propertyTwo: "propertyTwo value", // Data property.
 get getterAndSetterFunction(){ // Accessor property. Getter function. IE8 error: Expected ':'.
  return this.propertyOne;
 },
 set getterAndSetterFunction(value){ // Accessor property. Setter function.
  this.propertyTwo += " with " + value;
 }
};
// console.log(objectLiteral.getterAndSetterFunction); // "propertyOne value". Read from accessor property triggers getter. Return value set on accessor property.
objectLiteral.getterAndSetterFunction = "passed value"; // Write to accessor property triggers setter. Assigned value passed as argument to setter function.
if (objectLiteral.getterAndSetterFunction){
 var element = document.getElementById("testId");
 if ((objectLiteral.getterAndSetterFunction === "propertyOne value") && (objectLiteral.propertyTwo === "propertyTwo value with passed value")){
  element.innerHTML = "<b>Pass</b> (at least partial/possibly full support): The web browser recognizes the JavaScript object literal accessor property syntax, and supports at least one object literal accessor property syntax capability. The web browser at least partially/possibly fully supports the JavaScript object literal accessor property syntax. Positive determination of full web browser support is beyond the scope of this test.";
 } else {
  element.innerHTML = "<b>Pass/Fail</b> (partial support): The web browser recognizes the JavaScript object literal accessor property syntax, but does not support at least one object literal accessor property syntax capability. The web browser partially supports the JavaScript object literal accessor property syntax.";
 }
}
</script>

2.2. Web Browser Support Test Result

Fail (no support): The web browser does not recognize the JavaScript object literal accessor property syntax. The web browser does not support the JavaScript object literal accessor property syntax.


3. Resources And Additional Information