/** * Copyright (c) 2012-2016 André Bargull * Alle Rechte vorbehalten / All Rights Reserved. Use is subject to license terms. * * <https://github.com/anba/es6draft> */ package com.github.anba.es6draft.runtime.internal; import com.github.anba.es6draft.runtime.ExecutionContext; import com.github.anba.es6draft.runtime.Realm; import com.github.anba.es6draft.runtime.types.Intrinsics; import com.github.anba.es6draft.runtime.types.ScriptObject; import com.github.anba.es6draft.runtime.types.builtins.OrdinaryObject; /** * Object allocator for ordinary objects. * * @see OrdinaryObject#ObjectCreate(ExecutionContext, Intrinsics, ObjectAllocator) * @see OrdinaryObject#ObjectCreate(ExecutionContext, ScriptObject, ObjectAllocator) */ // TODO: Replace with Function<Realm, OrdinaryObject>? @FunctionalInterface public interface ObjectAllocator<OBJECT extends OrdinaryObject> { /** * Allocates a new instance of the requested class. * * @param realm * the realm instance * @return the new instance */ OBJECT newInstance(Realm realm); }