Version 1.0.0.7
svn merge -c 30043 https://dart.googlecode.com/svn/branches/bleeding_edge trunk
svn merge -c 30044 https://dart.googlecode.com/svn/branches/bleeding_edge trunk
svn merge -c 30045 https://dart.googlecode.com/svn/branches/bleeding_edge trunk
svn merge -c 30258 https://dart.googlecode.com/svn/branches/bleeding_edge trunk
svn merge -c 30299 https://dart.googlecode.com/svn/branches/bleeding_edge trunk
svn merge -c 30303 https://dart.googlecode.com/svn/branches/bleeding_edge trunk
Review URL: https://codereview.chromium.org//72383004
git-svn-id: http://dart.googlecode.com/svn/trunk@30338 260f80e4-7a28-3924-810f-c04153c831b5
diff --git a/pkg/pkg.status b/pkg/pkg.status
index a86c987..dc4af2c 100644
--- a/pkg/pkg.status
+++ b/pkg/pkg.status
@@ -32,6 +32,7 @@
[ $compiler == dart2js && $checked && $runtime == ie9 ]
crypto/test/base64_test: Timeout # Issue 12486
+template_binding/test/template_binding_test: Fail # Issue 15093
[ $runtime == d8 || $runtime == jsshell ]
unittest/test/unittest_nested_groups_setup_teardown_test: Pass, RuntimeError # http://dartbug.com/10109
diff --git a/runtime/bin/net/nss.gyp b/runtime/bin/net/nss.gyp
index e1c64e1..9cdface 100644
--- a/runtime/bin/net/nss.gyp
+++ b/runtime/bin/net/nss.gyp
@@ -7,7 +7,7 @@
# BSD-style license that can be found in the LICENSE file.
# This file is a modified copy of Chromium's deps/third_party/nss/nss.gyp.
-# Revision 199075 (this should agree with "nss_rev" in DEPS).
+# Revision 232552 (this should agree with "nss_rev" in DEPS).
{
# Added by Dart. All Dart comments refer to the following block or line.
'includes': [
@@ -660,6 +660,11 @@
'<(nss_directory)/nss/lib/freebl/blapit.h',
'<(nss_directory)/nss/lib/freebl/camellia.c',
'<(nss_directory)/nss/lib/freebl/camellia.h',
+ '<(nss_directory)/nss/lib/freebl/chacha20/chacha20.c',
+ '<(nss_directory)/nss/lib/freebl/chacha20/chacha20.h',
+ '<(nss_directory)/nss/lib/freebl/chacha20/chacha20_vec.c',
+ '<(nss_directory)/nss/lib/freebl/chacha20poly1305.c',
+ '<(nss_directory)/nss/lib/freebl/chacha20poly1305.h',
'<(nss_directory)/nss/lib/freebl/ctr.c',
'<(nss_directory)/nss/lib/freebl/ctr.h',
'<(nss_directory)/nss/lib/freebl/cts.c',
@@ -715,6 +720,9 @@
'<(nss_directory)/nss/lib/freebl/mpi/mp_gf2m.c',
'<(nss_directory)/nss/lib/freebl/mpi/mp_gf2m.h',
'<(nss_directory)/nss/lib/freebl/mpi/primes.c',
+ '<(nss_directory)/nss/lib/freebl/poly1305/poly1305-donna-x64-sse2-incremental-source.c',
+ '<(nss_directory)/nss/lib/freebl/poly1305/poly1305.c',
+ '<(nss_directory)/nss/lib/freebl/poly1305/poly1305.h',
'<(nss_directory)/nss/lib/freebl/pqg.c',
'<(nss_directory)/nss/lib/freebl/pqg.h',
'<(nss_directory)/nss/lib/freebl/rawhash.c',
@@ -1100,10 +1108,6 @@
'SOFTOKEN_SHLIB_VERSION=\"3\"',
'USE_UTIL_DIRECTLY',
],
- 'defines!': [
- # Regrettably, NSS can't be compiled with NO_NSPR_10_SUPPORT yet.
- 'NO_NSPR_10_SUPPORT',
- ],
'include_dirs': [
'<(nss_directory)/nss/lib/base',
'<(nss_directory)/nss/lib/certdb',
@@ -1194,6 +1198,7 @@
'<(nss_directory)/nss/lib/freebl/mpi/mpi_amd64.c',
],
}],
+ # Added by Dart.
['OS=="linux"', {
'defines': [
'XP_UNIX',
@@ -1209,6 +1214,17 @@
'<(nss_directory)/nss/lib/freebl/mpi/mpi_x86_asm.c',
],
}],
+ ['target_arch=="x64" and OS!="win"', {
+ 'sources!': [
+ '<(nss_directory)/nss/lib/freebl/chacha20/chacha20.c',
+ '<(nss_directory)/nss/lib/freebl/poly1305/poly1305.c',
+ ],
+ }, { # else: target_arch!="x64" or OS=="win"
+ 'sources!': [
+ '<(nss_directory)/nss/lib/freebl/chacha20/chacha20_vec.c',
+ '<(nss_directory)/nss/lib/freebl/poly1305/poly1305-donna-x64-sse2-incremental-source.c',
+ ],
+ }],
['OS=="mac" or OS=="ios"', {
'defines': [
'XP_UNIX',
diff --git a/runtime/bin/net/sqlite.gyp b/runtime/bin/net/sqlite.gyp
index f194bdc..9949e9c 100644
--- a/runtime/bin/net/sqlite.gyp
+++ b/runtime/bin/net/sqlite.gyp
@@ -7,7 +7,7 @@
# BSD-style license that can be found in the LICENSE file.
# This file is a modified copy of Chromium's src/third_party/sqlite/sqlite.gyp.
-# Revision 199075 (this should agree with "nss_rev" in DEPS).
+# Revision 232552 (this should agree with "nss_rev" in DEPS).
{
# Added by Dart. All Dart comments refer to the following block or line.
'includes': [
@@ -30,6 +30,7 @@
# 'SQLITE_ENABLE_ICU',
'SQLITE_ENABLE_MEMORY_MANAGEMENT',
'SQLITE_SECURE_DELETE',
+ 'SQLITE_SEPARATE_CACHE_POOLS',
'THREADSAFE',
'_HAS_EXCEPTIONS=0',
],
@@ -61,6 +62,9 @@
'conditions': [
['OS == "ios"', {
+ 'dependencies': [
+ 'sqlite_regexp',
+ ],
'link_settings': {
'libraries': [
'$(SDKROOT)/usr/lib/libsqlite3.dylib',
@@ -143,6 +147,13 @@
],
},
}],
+ ['OS == "mac" or OS == "ios"', {
+ 'link_settings': {
+ 'libraries': [
+ '$(SDKROOT)/System/Library/Frameworks/CoreFoundation.framework',
+ ],
+ },
+ }],
['OS == "android"', {
'defines': [
'HAVE_USLEEP=1',
@@ -195,13 +206,27 @@
'sources': [
'<(sqlite_directory)/src/src/shell.c',
'<(sqlite_directory)/src/src/shell_icu_linux.c',
+ # Include a dummy c++ file to force linking of libstdc++.
+ '<(sqlite_directory)/build_as_cpp.cc',
],
- 'link_settings': {
- 'link_languages': ['c++'],
- },
},
],
- },]
+ },],
+ ['OS == "ios"', {
+ 'targets': [
+ {
+ 'target_name': 'sqlite_regexp',
+ 'type': 'static_library',
+ 'dependencies': [
+ '../icu/icu.gyp:icui18n',
+ '../icu/icu.gyp:icuuc',
+ ],
+ 'sources': [
+ 'src/ext/icu/icu.c',
+ ],
+ },
+ ],
+ }],
],
}]],
}
diff --git a/runtime/bin/net/ssl.gyp b/runtime/bin/net/ssl.gyp
index 294437d..985ce5c 100644
--- a/runtime/bin/net/ssl.gyp
+++ b/runtime/bin/net/ssl.gyp
@@ -7,7 +7,7 @@
# BSD-style license that can be found in the LICENSE file.
# This file is a modified copy of Chromium's src/net/third_party/nss/ssl.gyp.
-# Revision 199075 (this should agree with "nss_rev" in DEPS).
+# Revision 232552 (this should agree with "nss_rev" in DEPS).
# The following modification was made to make sure we have the same
# xcode_settings on all configurations (otherwise we can't build with ninja):
@@ -102,8 +102,6 @@
'USE_UTIL_DIRECTLY',
],
'defines!': [
- # Regrettably, NSS can't be compiled with NO_NSPR_10_SUPPORT yet.
- 'NO_NSPR_10_SUPPORT',
'DEBUG',
],
'dependencies': [
@@ -150,10 +148,19 @@
# See http://crbug.com/138571#c8. In short, sslsecur.c picks up the
# system's cert.h because cert.h isn't in chromium's repo.
'-Wno-incompatible-pointer-types',
+
+ # There is a broken header guard in /usr/include/nss/secmod.h:
+ # https://bugzilla.mozilla.org/show_bug.cgi?id=884072
+ '-Wno-header-guard',
],
}],
- # Added by Dart.
[ 'OS == "linux"', {
+ 'link_settings': {
+ 'libraries': [
+ '-ldl',
+ ],
+ },
+ # Added by Dart.
'defines': [
'XP_UNIX',
'NSS_PLATFORM_CLIENT_AUTH',
diff --git a/runtime/bin/net/zlib.gyp b/runtime/bin/net/zlib.gyp
index f3e7bca..7cfdaf4 100644
--- a/runtime/bin/net/zlib.gyp
+++ b/runtime/bin/net/zlib.gyp
@@ -7,7 +7,7 @@
# BSD-style license that can be found in the LICENSE file.
# This file is a modified copy of src/third_party/zlib/zlib.gyp from Chromium.
-# Revision 199075 (this should agree with "nss_rev" in DEPS).
+# Revision 232552 (this should agree with "nss_rev" in DEPS).
{
# Added by Dart. All Dart comments refer to the following block or line.
'includes': [
@@ -126,7 +126,6 @@
}],
],
},
- # Changed by Dart: Omit target 'zip'
],
}]],
}
diff --git a/sdk/lib/_internal/compiler/implementation/js_backend/backend.dart b/sdk/lib/_internal/compiler/implementation/js_backend/backend.dart
index 59274b7..3651a03 100644
--- a/sdk/lib/_internal/compiler/implementation/js_backend/backend.dart
+++ b/sdk/lib/_internal/compiler/implementation/js_backend/backend.dart
@@ -231,6 +231,8 @@
TypeMask extendableArrayType;
TypeMask nonNullType;
+ /// Maps special classes to their implementation (JSXxx) class.
+ Map<ClassElement, ClassElement> implementationClasses;
Element getNativeInterceptorMethod;
bool needToInitializeDispatchProperty = false;
@@ -578,6 +580,14 @@
compiler.findInterceptor('UnknownJavaScriptObject'),
];
+ implementationClasses = <ClassElement, ClassElement>{};
+ implementationClasses[compiler.intClass] = jsIntClass;
+ implementationClasses[compiler.boolClass] = jsBoolClass;
+ implementationClasses[compiler.numClass] = jsNumberClass;
+ implementationClasses[compiler.doubleClass] = jsDoubleClass;
+ implementationClasses[compiler.stringClass] = jsStringClass;
+ implementationClasses[compiler.listClass] = jsArrayClass;
+
jsIndexableClass = compiler.findInterceptor('JSIndexable');
jsMutableIndexableClass = compiler.findInterceptor('JSMutableIndexable');
@@ -1280,22 +1290,22 @@
}
}
- Element getImplementationClass(Element element) {
- if (element == compiler.intClass) {
- return jsIntClass;
- } else if (element == compiler.boolClass) {
- return jsBoolClass;
- } else if (element == compiler.numClass) {
- return jsNumberClass;
- } else if (element == compiler.doubleClass) {
- return jsDoubleClass;
- } else if (element == compiler.stringClass) {
- return jsStringClass;
- } else if (element == compiler.listClass) {
- return jsArrayClass;
- } else {
- return element;
+ Element getDartClass(Element element) {
+ for (ClassElement dartClass in implementationClasses.keys) {
+ if (element == implementationClasses[dartClass]) {
+ return dartClass;
+ }
}
+ return element;
+ }
+
+ Element getImplementationClass(Element element) {
+ for (ClassElement dartClass in implementationClasses.keys) {
+ if (element == dartClass) {
+ return implementationClasses[dartClass];
+ }
+ }
+ return element;
}
/**
@@ -1715,6 +1725,7 @@
* need to access it.
*/
bool isNeededForReflection(Element element) {
+ element = getDartClass(element);
if (hasInsufficientMirrorsUsed) return isTreeShakingDisabled;
/// Record the name of [element] in [symbolsUsed]. Return true for
/// convenience.
diff --git a/tests/compiler/dart2js_extra/mirrors_used_native_test.dart b/tests/compiler/dart2js_extra/mirrors_used_native_test.dart
new file mode 100644
index 0000000..f040e5b
--- /dev/null
+++ b/tests/compiler/dart2js_extra/mirrors_used_native_test.dart
@@ -0,0 +1,15 @@
+// Copyright (c) 2013, 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.
+
+@MirrorsUsed(targets: 'List')
+import 'dart:mirrors';
+
+import 'package:expect/expect.dart';
+
+main() {
+ List; // work-around for a bug in the type-variable handler. TODO(zarah): remove.
+ Expect.equals(3, reflect([1, 2, 3]).getField(#length).reflectee);
+ Expect.throws(() => reflect({"hest": 42}).getField(#length),
+ (e) => e is UnsupportedError);
+}
diff --git a/tools/VERSION b/tools/VERSION
index ef4495b..0b91abc 100644
--- a/tools/VERSION
+++ b/tools/VERSION
@@ -1,4 +1,4 @@
MAJOR 1
MINOR 0
BUILD 0
-PATCH 6
+PATCH 7