| Index: test/cctest/test-extra.js
|
| diff --git a/test/cctest/test-extra.js b/test/cctest/test-extra.js
|
| index f943ea6c4e5adedb79b2c44213cdcf6a8ba56c60..123c8920d04d18d35a628ca6209b05133af2fd03 100644
|
| --- a/test/cctest/test-extra.js
|
| +++ b/test/cctest/test-extra.js
|
| @@ -2,13 +2,53 @@
|
| // Use of this source code is governed by a BSD-style license that can be
|
| // found in the LICENSE file.
|
|
|
| -(function (global, binding) {
|
| +(function (global, binding, v8) {
|
| 'use strict';
|
| - binding.testExtraShouldReturnFive = function () {
|
| + binding.testExtraShouldReturnFive = function() {
|
| return 5;
|
| };
|
|
|
| binding.testExtraShouldCallToRuntime = function() {
|
| return binding.runtime(3);
|
| };
|
| +
|
| + // Exercise all of the extras utils:
|
| + // - v8.createPrivateSymbol
|
| + // - v8.simpleBind, v8.uncurryThis
|
| + // - v8.InternalPackedArray
|
| + // - v8.createPromise, v8.resolvePromise, v8.rejectPromise
|
| +
|
| + const Object = global.Object;
|
| + const hasOwn = v8.uncurryThis(Object.prototype.hasOwnProperty);
|
| +
|
| + const Function = global.Function;
|
| + const call = v8.uncurryThis(Function.prototype.call);
|
| + const apply = v8.uncurryThis(Function.prototype.apply);
|
| +
|
| + const Promise = global.Promise;
|
| + const Promise_resolve = v8.simpleBind(Promise.resolve, Promise);
|
| +
|
| + binding.testExtraCanUseUtils = function() {
|
| + const fulfilledPromise = v8.createPromise();
|
| + v8.resolvePromise(
|
| + fulfilledPromise,
|
| + hasOwn({ test: 'test' }, 'test') ? 1 : -1
|
| + );
|
| +
|
| + const fulfilledPromise2 = Promise_resolve(call(function (arg1) {
|
| + return (this.prop === arg1 && arg1 === 'value') ? 2 : -1;
|
| + }, { prop: 'value' }, 'value'));
|
| +
|
| + const rejectedPromise = v8.createPromise();
|
| + v8.rejectPromise(rejectedPromise, apply(function (arg1, arg2) {
|
| + return (arg1 === arg2 && arg2 === 'x') ? 3 : -1;
|
| + }, null, new v8.InternalPackedArray('x', 'x')));
|
| +
|
| + return {
|
| + privateSymbol: v8.createPrivateSymbol('sym'),
|
| + fulfilledPromise, // should be fulfilled with 1
|
| + fulfilledPromise2, // should be fulfilled with 2
|
| + rejectedPromise // should be rejected with 3
|
| + };
|
| + };
|
| })
|
|
|