mirror of
https://github.com/danog/dart-sass.git
synced 2024-11-27 04:34:59 +01:00
9fdf5612ea
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.
48 lines
1.1 KiB
YAML
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"
|