Skip to content

Commit

Permalink
Most of this CL just re-organizes the runtime code into multiple sub-…
Browse files Browse the repository at this point in the history
…libraries. js_utils and loader remain as top level symbols (the former so that it has no dependencies, the latter since it defines the module system that the rest use).

The dart runtime files are roughly split around functional boundaries.  Comments at the top of each file describe the function of the library.  I'm not sure that these are 100% right yet, but they're closer.  We may want to iterate on the organization.

The main dart runtime file just re-exports various symbols from the sub-libraries.  It has hard dependencies on the other runtime files, some of which have soft (lazy) dependencies on SDK files.  The generated code now depends on dart and dartx as a imported libraries, rather than as top level symbols.

This CL also includes some new code to make type representations a bit better.  This is mostly in the new types.js file, which makes all of the non-instance types (dynamic, bottom, void, function types) subtypes of a common representation type.  Among other things, they now have the correct runtime type (core.Type).  Some of the type code has been rationalized around this a bit, but there is more left to do here.  The setSignature code in classes.js now also places the correct runtime type on nominal (instance) types.  There are new tests in the runtime_tests.js file to test for this.

The static object method code that implements the Object methods has not yet been updated to dispatch on type representations.  I will do that in a separate CL.

BUG=
R=jmesserly@google.com, vsm@google.com

Review URL: https://codereview.chromium.org/1182653002
  • Loading branch information
leafpetersen committed Jun 12, 2015
1 parent cad6ec1 commit b9c83e0
Show file tree
Hide file tree
Showing 56 changed files with 2,020 additions and 1,554 deletions.
412 changes: 412 additions & 0 deletions pkg/dev_compiler/lib/runtime/_classes.js

Large diffs are not rendered by default.

31 changes: 31 additions & 0 deletions pkg/dev_compiler/lib/runtime/_errors.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
// Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.

/*
* This library encapsulates the core sdk errors that the runtime knows about.
*
*/

dart_library.library('dart_runtime/_errors', null, /* Imports */[
], /* Lazy Imports */[
'dart/core',
'dart/_js_helper'
], function(exports, core, _js_helper) {
'use strict';

function throwNoSuchMethod(obj, name, pArgs, nArgs, extras) {
throw new core.NoSuchMethodError(obj, name, pArgs, nArgs, extras);
}
exports.throwNoSuchMethod = throwNoSuchMethod;

function throwCastError(actual, type) {
throw new _js_helper.CastErrorImplementation(actual, type);
}
exports.throwCastError = throwCastError;

function throwAssertionError() {
throw new core.AssertionError();
}
exports.throwAssertionError = throwAssertionError;
});
Loading

0 comments on commit b9c83e0

Please # to comment.