use of com.github.anba.es6draft.runtime.types.builtins.OrdinaryFunction in project es6draft by anba.
the class ScriptRuntime method EvaluateArrowFunction.
/**
* 14.2 Arrow Function Definitions
* <p>
* 14.2.17 Runtime Semantics: Evaluation
* <ul>
* <li>ArrowFunction : ArrowParameters {@literal =>} ConciseBody
* </ul>
*
* @param fd
* the function runtime info object
* @param cx
* the execution context
* @return the new function instance
*/
public static OrdinaryFunction EvaluateArrowFunction(RuntimeInfo.Function fd, ExecutionContext cx) {
/* step 1 (not applicable) */
/* step 2 */
LexicalEnvironment<?> scope = cx.getLexicalEnvironment();
/* step 4 */
OrdinaryFunction closure = FunctionCreate(cx, FunctionKind.Arrow, fd, scope);
/* step 5 */
return closure;
}
use of com.github.anba.es6draft.runtime.types.builtins.OrdinaryFunction in project es6draft by anba.
the class ScriptRuntime method EvaluatePropertyDefinitionSetter.
/**
* 14.3 Method Definitions
* <p>
* 14.3.9 Runtime Semantics: PropertyDefinitionEvaluation
* <ul>
* <li>set PropertyName ( PropertySetParameterList ) { FunctionBody }
* </ul>
*
* @param object
* the script object
* @param propKey
* the property key
* @param enumerable
* the enumerable property attribute
* @param fd
* the function runtime info object
* @param cx
* the execution context
*/
public static void EvaluatePropertyDefinitionSetter(OrdinaryObject object, Symbol propKey, boolean enumerable, RuntimeInfo.Function fd, ExecutionContext cx) {
/* steps 1-3 (generated code) */
/* step 4 */
LexicalEnvironment<?> scope = cx.getLexicalEnvironment();
/* step 5 */
OrdinaryFunction closure = FunctionCreate(cx, FunctionKind.Method, fd, scope);
/* step 6 */
MakeMethod(closure, object);
/* steps 7-8 */
SetFunctionName(closure, propKey, "set");
/* step 9 */
PropertyDescriptor desc = AccessorPropertyDescriptor(null, closure, enumerable, true);
/* step 10 */
DefinePropertyOrThrow(cx, object, propKey, desc);
}
use of com.github.anba.es6draft.runtime.types.builtins.OrdinaryFunction in project es6draft by anba.
the class ScriptRuntime method EvaluatePropertyDefinition.
/**
* 14.3 Method Definitions
* <p>
* 14.3.9 Runtime Semantics: PropertyDefinitionEvaluation
* <ul>
* <li>PropertyName ( StrictFormalParameters ) { FunctionBody }
* </ul>
*
* @param object
* the script object
* @param propKey
* the property key
* @param enumerable
* the enumerable property attribute
* @param fd
* the function runtime info object
* @param cx
* the execution context
*/
public static void EvaluatePropertyDefinition(OrdinaryObject object, String propKey, boolean enumerable, RuntimeInfo.Function fd, ExecutionContext cx) {
/* steps 1-2 (DefineMethod) */
/* DefineMethod: steps 1-3 (generated code) */
/* DefineMethod: step 4 */
LexicalEnvironment<?> scope = cx.getLexicalEnvironment();
/* DefineMethod: steps 5-6 */
OrdinaryFunction closure = FunctionCreate(cx, FunctionKind.Method, fd, scope);
/* DefineMethod: step 7 */
MakeMethod(closure, object);
/* step 3 */
SetFunctionName(closure, propKey);
/* step 4 */
PropertyDescriptor desc = new PropertyDescriptor(closure, true, enumerable, true);
/* step 5 */
DefinePropertyOrThrow(cx, object, propKey, desc);
}
use of com.github.anba.es6draft.runtime.types.builtins.OrdinaryFunction in project es6draft by anba.
the class ScriptRuntime method EvaluatePropertyDefinition.
/**
* 14.3 Method Definitions
* <p>
* 14.3.9 Runtime Semantics: PropertyDefinitionEvaluation
* <ul>
* <li>PropertyName ( StrictFormalParameters ) { FunctionBody }
* </ul>
*
* @param object
* the script object
* @param propKey
* the property key
* @param enumerable
* the enumerable property attribute
* @param fd
* the function runtime info object
* @param cx
* the execution context
*/
public static void EvaluatePropertyDefinition(OrdinaryObject object, Symbol propKey, boolean enumerable, RuntimeInfo.Function fd, ExecutionContext cx) {
/* steps 1-2 (Call DefineMethod) */
/* DefineMethod: steps 1-3 (generated code) */
/* DefineMethod: step 4 */
LexicalEnvironment<?> scope = cx.getLexicalEnvironment();
/* DefineMethod: steps 5-6 */
OrdinaryFunction closure = FunctionCreate(cx, FunctionKind.Method, fd, scope);
/* DefineMethod: step 7 */
MakeMethod(closure, object);
/* step 3 */
SetFunctionName(closure, propKey);
/* step 4 */
PropertyDescriptor desc = new PropertyDescriptor(closure, true, enumerable, true);
/* step 5 */
DefinePropertyOrThrow(cx, object, propKey, desc);
}
use of com.github.anba.es6draft.runtime.types.builtins.OrdinaryFunction in project es6draft by anba.
the class ScriptRuntime method EvaluatePropertyDefinitionGetter.
/**
* 14.3 Method Definitions
* <p>
* 14.3.9 Runtime Semantics: PropertyDefinitionEvaluation
* <ul>
* <li>get PropertyName ( ) { FunctionBody }
* </ul>
*
* @param object
* the script object
* @param propKey
* the property key
* @param enumerable
* the enumerable property attribute
* @param fd
* the function runtime info object
* @param cx
* the execution context
*/
public static void EvaluatePropertyDefinitionGetter(OrdinaryObject object, Symbol propKey, boolean enumerable, RuntimeInfo.Function fd, ExecutionContext cx) {
/* steps 1-3 (generated code) */
/* step 4 */
LexicalEnvironment<?> scope = cx.getLexicalEnvironment();
/* steps 5-6 */
OrdinaryFunction closure = FunctionCreate(cx, FunctionKind.Method, fd, scope);
/* step 7 */
MakeMethod(closure, object);
/* steps 8-9 */
SetFunctionName(closure, propKey, "get");
/* step 10 */
PropertyDescriptor desc = AccessorPropertyDescriptor(closure, null, enumerable, true);
/* step 11 */
DefinePropertyOrThrow(cx, object, propKey, desc);
}
Aggregations