code: public Object callWithDomain(Object securityDomain, Context cx,
                                   final Callable callable, Scriptable scope,
                                   final Scriptable thisObj, final Object[] args)
      {
          return execWithDomain(cx, scope, new Script()
          {
              @Override
              public Object exec(Context cx, Scriptable scope)
              {
                  return callable.call(cx, scope, thisObj, args);
              }
  
          }, securityDomain);
      }
docs: Call {@link
  Callable#call(Context cx, Scriptable scope, Scriptable thisObj,
  Object[] args)}
  of <i>callable</i> under restricted security domain where an action is
  allowed only if it is allowed according to the Java stack on the
  moment of the <i>execWithDomain</i> call and <i>securityDomain</i>.
  Any call to {@link #getDynamicSecurityDomain(Object)} during
  execution of <tt>callable.call(cx, scope, thisObj, args)</tt>
  should return a domain incorporate restrictions imposed by
  <i>securityDomain</i> and Java stack on the moment of callWithDomain
  invocation.
  <p>
  The method should always be overridden, it is not declared abstract
  for compatibility reasons.