dart-sass/pubspec.yaml
Natalie Weizenbaum 9fdf5612ea
Fix a performance bug in BinaryOperatorExpression.span (#569)
Previously, evaluator called BinaryOperationExpression.span for each
binary operation it evaluated, which in turn called spanForList() to
create a span covering both child expressions. spanForList() then
called .span for both the left and right child operations *twice*,
leading to exponential behavior.

This is now avoided in three complementary ways:

1. The evaluator avoids eagerly calling AstNode.span, instead keeping
   the original AstNode until the span itself needs to be accessed.
   This means that a span will only be accessed when an error actually
   occurs, and then only one operation's span will be accessed.

2. BinaryOperationExpression.span now iterates through any child
   operations before calling their .span methods, so it only performs
   O(1) allocations.

3. spanForList() now only calls each AstNode.span once.
2019-01-17 18:04:14 -05:00

48 lines
1.1 KiB
YAML

name: sass
version: 1.16.1
description: A Sass implementation in Dart.
author: Dart Team <misc@dartlang.org>
homepage: https://github.com/sass/dart-sass
executables:
dart-sass: sass
environment:
sdk: '>=2.1.0 <3.0.0'
dependencies:
args: ">=1.4.0 <2.0.0"
async: ">=1.10.0 <3.0.0"
charcode: "^1.1.0"
cli_repl: ">=0.1.3 <0.3.0"
collection: "^1.8.0"
meta: "^1.1.0"
package_resolver: "^1.0.0"
path: "^1.6.0"
source_maps: "^0.10.5"
# Temporarily limit source_span to 1.4.x so we can land other fixes before we
# fix all the tests for the new source_span format. See #566.
source_span: ">=1.4.0 <1.5.0"
stack_trace: ">=0.9.0 <2.0.0"
stream_transform: "^0.0.1"
string_scanner: ">=0.1.5 <2.0.0"
tuple: "^1.0.0"
watcher: "^0.9.6"
dev_dependencies:
archive: ">=1.0.0 <3.0.0"
analyzer: ">=0.30.0 <0.34.0"
crypto: ">=0.9.2 <3.0.0"
dart_style: "^1.2.0"
grinder: "^0.8.0"
http: "^0.11.0"
js: "^0.6.0"
node_preamble: "^1.1.0"
pub_semver: "^1.0.0"
stream_channel: "^1.0.0"
test_descriptor: "^1.1.0"
test_process: "^1.0.0-rc.1"
test: ">=0.12.42 <2.0.0"
xml: ">=2.4.0 <4.0.0"
yaml: "^2.0.0"