Files
sdk/pkg/dev_compiler/lib/runtime/_errors.js
T
Vijay Menon 8f9c38b128 Enable is and as checks on non-ground types
Failures generate a StrongModeError.  Fixes #236.  Partially addresses #238.

Some issues to do:
- We're too eager to throw a StrongModeError.  E.g., <int>[] is List<String> will throw.
- We don't differentiate between implicit and explicit casts.

R=leafp@google.com

Review URL: https://codereview.chromium.org/1298893003 .
2015-08-19 06:15:04 -07:00

42 lines
1.5 KiB
JavaScript

// 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_runtime/_operations',
'dart/core',
'dart/_js_helper'
], function(exports, operations, core, _js_helper) {
'use strict';
function throwNoSuchMethod(obj, name, pArgs, nArgs, extras) {
operations.throw(new core.NoSuchMethodError(obj, name, pArgs, nArgs, extras));
}
exports.throwNoSuchMethod = throwNoSuchMethod;
function throwCastError(actual, type) {
operations.throw(new _js_helper.CastErrorImplementation(actual, type));
}
exports.throwCastError = throwCastError;
function throwAssertionError() {
operations.throw(new core.AssertionError());
}
exports.throwAssertionError = throwAssertionError;
function throwNullValueError() {
// TODO(vsm): Per spec, we should throw an NSM here. Technically, we ought
// to thread through method info, but that uglifies the code and can't
// actually be queried ... it only affects how the error is printed.
operations.throw(new core.NoSuchMethodError(null,
new core.Symbol('<Unexpected Null Value>'), null, null, null));
}
exports.throwNullValueError = throwNullValueError;
});