blob: 5eccc6db857fd17ac0635308b01bc3ddcdeec85c [file] [log] [blame]
// Copyright 2017 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.
(async function() {
TestRunner.addResult(`Tests callFunction on local remote objects.\n`);
var object = [6, 28, 496];
var localObject = SDK.RemoteObject.fromLocalObject(object);
function getItem(index) {
return this[index];
}
let result = await localObject.callFunctionJSON(getItem, [{value: 1}]);
TestRunner.addResult('getItem(1) result: ' + result);
function compareAndSwap(index, value, newValue) {
if (this[index] !== value)
throw 'Data corrupted';
this[index] = newValue;
return 'Done';
}
result = await localObject.callFunction(
compareAndSwap, [{value: 1}, {value: 28}, {value: 42}]);
TestRunner.addResult(
'compareAndSwap(1, 28, 42) result: ' + result.object.description);
result = await localObject.callFunction(
compareAndSwap, [{value: 1}, {value: 28}, {value: 42}]);
TestRunner.addResult(
'compareAndSwap(1, 28, 42) throws exception: ' + !!result.wasThrown);
function guessWhat() {
return 42;
}
result = await localObject.callFunction(guessWhat, undefined);
TestRunner.addResult('guessWhat() result: ' + result.object.description);
await localObject.callFunction(
compareAndSwap, [{value: 0}, {value: 6}, {value: 7}]);
TestRunner.addResult('Final value of object: [' + object.join(', ') + ']');
TestRunner.completeTest();
})();