Use ScriptExecutor to inject replacement services for pure-client-side execution