// Copyright 2020 the V8 project authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

// Original: mjsunit/mjsunit.js
var fakeMjsunit = 'fake';

// Original: mjsunit/test_load_2.js
var testLoad2 = 'test_load_2';

// Original: mjsunit/test_load_1.js
var testLoad1 = 'test_load_1';

// Original: mjsunit/test_load_3.js
var testLoad3 = 'test_load_3';

// Original: mjsunit/test_load_0.js
var testLoad0 = 'test_load_0';

// Original: mjsunit/test_load.js
var testLoad = 'test_load';
