// Copyright (c) 2011 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. package org.chromium.sdk; /** * Exposes additional data if variable is a property of object and its property descriptor * is available. */ public interface JsObjectProperty extends JsVariable { /** * @return whether property described as 'writable' */ boolean isWritable(); /** * @return property getter value (function or undefined) or null if not an accessor property */ JsValue getGetter(); /** * @return {@link #getGetter()} result as function or null if cannot cast */ JsFunction getGetterAsFunction(); /** * @return property setter value (function or undefined) or null if not an accessor property */ JsValue getSetter(); /** * @return whether property described as 'configurable' */ boolean isConfigurable(); /** * @return whether property described as 'enumerable' */ boolean isEnumerable(); /** * Asynchronously evaluates property getter and returns property value. Must only be used * if {@link #getGetterAsFunction()} returns not null; otherwise behavior is undefined and * implementation-specific. */ RelayOk evaluateGet(JsEvaluateContext.EvaluateCallback callback, SyncCallback syncCallback); }