Version 1.5.0-dev.4.5
svn merge -c 36989 https://dart.googlecode.com/svn/branches/bleeding_edge trunk
svn merge -c 36993 https://dart.googlecode.com/svn/branches/bleeding_edge trunk
svn merge -c 37101 https://dart.googlecode.com/svn/branches/bleeding_edge trunk
svn merge -c 37107 https://dart.googlecode.com/svn/branches/bleeding_edge trunk
svn merge -c 37142 https://dart.googlecode.com/svn/branches/bleeding_edge trunk
svn merge -c 37145 https://dart.googlecode.com/svn/branches/bleeding_edge trunk
svn merge -c 37146 https://dart.googlecode.com/svn/branches/bleeding_edge trunk
svn merge -c 37154 https://dart.googlecode.com/svn/branches/bleeding_edge trunk
Merged all dartium.deps changes up to and including revision 37120
Merged https://codereview.chromium.org/326663003/ to fix editor missing file
R=kasperl@google.com
Review URL: https://codereview.chromium.org//328663002
git-svn-id: http://dart.googlecode.com/svn/trunk@37161 260f80e4-7a28-3924-810f-c04153c831b5
diff --git a/runtime/vm/code_generator.cc b/runtime/vm/code_generator.cc
index 72706ac..417a905 100644
--- a/runtime/vm/code_generator.cc
+++ b/runtime/vm/code_generator.cc
@@ -633,10 +633,12 @@
caller_code.SetStaticCallTargetCodeAt(caller_frame->pc(), target_code);
}
if (FLAG_trace_patching) {
- OS::PrintErr("PatchStaticCall: patching from %#" Px " to '%s' %#" Px "\n",
+ OS::PrintErr("PatchStaticCall: patching caller pc %#" Px ""
+ " to '%s' new entry point %#" Px " (%s)\n",
caller_frame->pc(),
target_function.ToFullyQualifiedCString(),
- target_code.EntryPoint());
+ target_code.EntryPoint(),
+ target_code.is_optimized() ? "optimized" : "unoptimized");
}
arguments.SetReturn(target_code);
}
@@ -1293,9 +1295,11 @@
caller_code.SetStaticCallTargetCodeAt(frame->pc(), current_target_code);
}
if (FLAG_trace_patching) {
- OS::PrintErr("FixCallersTarget: patching from %#" Px " to '%s' %#" Px "\n",
+ OS::PrintErr("FixCallersTarget: caller %#" Px " "
+ "target '%s' %#" Px " -> %#" Px "\n",
frame->pc(),
target_function.ToFullyQualifiedCString(),
+ target_code.EntryPoint(),
current_target_code.EntryPoint());
}
arguments.SetReturn(current_target_code);
diff --git a/runtime/vm/code_patcher.cc b/runtime/vm/code_patcher.cc
index 7aca73d..9ecc06c 100644
--- a/runtime/vm/code_patcher.cc
+++ b/runtime/vm/code_patcher.cc
@@ -52,8 +52,7 @@
// The patch code buffer contains the jmp code which will be inserted at
// entry point.
void CodePatcher::PatchEntry(const Code& code) {
- const uword patch_addr = code.GetPcForDeoptId(Isolate::kNoDeoptId,
- PcDescriptors::kEntryPatch);
+ const uword patch_addr = code.GetEntryPatchPc();
ASSERT(patch_addr != 0);
JumpPattern jmp_entry(patch_addr, code);
ASSERT(!jmp_entry.IsValid());
@@ -77,8 +76,7 @@
// The entry point is a jmp instruction, the patch code buffer contains
// original code, the entry point contains the jump instruction.
void CodePatcher::RestoreEntry(const Code& code) {
- const uword patch_addr = code.GetPcForDeoptId(Isolate::kNoDeoptId,
- PcDescriptors::kEntryPatch);
+ const uword patch_addr = code.GetEntryPatchPc();
ASSERT(patch_addr != 0);
JumpPattern jmp_entry(patch_addr, code);
ASSERT(jmp_entry.IsValid());
@@ -102,8 +100,7 @@
bool CodePatcher::IsEntryPatched(const Code& code) {
- const uword patch_addr = code.GetPcForDeoptId(Isolate::kNoDeoptId,
- PcDescriptors::kEntryPatch);
+ const uword patch_addr = code.GetEntryPatchPc();
if (patch_addr == 0) {
return false;
}
@@ -113,9 +110,8 @@
bool CodePatcher::CodeIsPatchable(const Code& code) {
- const uword patch_addr = code.GetPcForDeoptId(Isolate::kNoDeoptId,
- PcDescriptors::kEntryPatch);
- // kEntryPatch may not exist which means the function is not patchable.
+ const uword patch_addr = code.GetEntryPatchPc();
+ // Zero means means that the function is not patchable.
if (patch_addr == 0) {
return false;
}
diff --git a/runtime/vm/compiler.cc b/runtime/vm/compiler.cc
index da3feb1..b8805f8 100644
--- a/runtime/vm/compiler.cc
+++ b/runtime/vm/compiler.cc
@@ -59,6 +59,7 @@
"Enable compiler verification assertions");
DECLARE_FLAG(bool, trace_failed_optimization_attempts);
+DECLARE_FLAG(bool, trace_patching);
DECLARE_FLAG(bool, warn_on_javascript_compatibility);
DECLARE_FLAG(bool, warning_as_error);
@@ -556,8 +557,12 @@
if (optimized) {
if (osr_id == Isolate::kNoDeoptId) {
CodePatcher::PatchEntry(Code::Handle(function.CurrentCode()));
- if (FLAG_trace_compiler) {
- OS::Print("--> patching entry %#" Px "\n",
+ if (FLAG_trace_compiler || FLAG_trace_patching) {
+ if (FLAG_trace_compiler) {
+ OS::Print(" ");
+ }
+ OS::Print("Patch unoptimized '%s' entry point %#" Px "\n",
+ function.ToFullyQualifiedCString(),
Code::Handle(function.unoptimized_code()).EntryPoint());
}
}
@@ -575,11 +580,10 @@
ASSERT(CodePatcher::CodeIsPatchable(code));
}
if (parsed_function->HasDeferredPrefixes()) {
- GrowableObjectArray* prefixes = parsed_function->DeferredPrefixes();
- LibraryPrefix& prefix = LibraryPrefix::Handle();
- for (intptr_t i = 0; i < prefixes->Length(); i++) {
- prefix ^= prefixes->At(i);
- prefix.RegisterDependentCode(code);
+ ZoneGrowableArray<const LibraryPrefix*>* prefixes =
+ parsed_function->deferred_prefixes();
+ for (intptr_t i = 0; i < prefixes->length(); i++) {
+ (*prefixes)[i]->RegisterDependentCode(code);
}
}
}
diff --git a/runtime/vm/flow_graph.cc b/runtime/vm/flow_graph.cc
index afaffa1..c0c74a6 100644
--- a/runtime/vm/flow_graph.cc
+++ b/runtime/vm/flow_graph.cc
@@ -42,7 +42,8 @@
use_far_branches_(false),
loop_headers_(NULL),
loop_invariant_loads_(NULL),
- guarded_fields_(builder.guarded_fields()) {
+ guarded_fields_(builder.guarded_fields()),
+ deferred_prefixes_(builder.deferred_prefixes()) {
DiscoverBlocks();
}
@@ -63,6 +64,21 @@
}
+void FlowGraph::AddToDeferredPrefixes(
+ ZoneGrowableArray<const LibraryPrefix*>* from) {
+ ZoneGrowableArray<const LibraryPrefix*>* to = deferred_prefixes();
+ for (intptr_t i = 0; i < from->length(); i++) {
+ const LibraryPrefix* prefix = (*from)[i];
+ for (intptr_t j = 0; j < to->length(); j++) {
+ if ((*to)[j]->raw() == prefix->raw()) {
+ return;
+ }
+ }
+ to->Add(prefix);
+ }
+}
+
+
bool FlowGraph::ShouldReorderBlocks(const Function& function,
bool is_optimized) {
return is_optimized && FLAG_reorder_basic_blocks && !function.is_intrinsic();
diff --git a/runtime/vm/flow_graph.h b/runtime/vm/flow_graph.h
index 9d2d42e..1868d0a 100644
--- a/runtime/vm/flow_graph.h
+++ b/runtime/vm/flow_graph.h
@@ -216,11 +216,16 @@
static void AddToGuardedFields(ZoneGrowableArray<const Field*>* array,
const Field* field);
+ void AddToDeferredPrefixes(ZoneGrowableArray<const LibraryPrefix*>* from);
ZoneGrowableArray<const Field*>* guarded_fields() const {
return guarded_fields_;
}
+ ZoneGrowableArray<const LibraryPrefix*>* deferred_prefixes() const {
+ return deferred_prefixes_;
+ }
+
private:
friend class IfConverter;
friend class BranchSimplifier;
@@ -300,6 +305,7 @@
ZoneGrowableArray<BlockEntryInstr*>* loop_headers_;
ZoneGrowableArray<BitVector*>* loop_invariant_loads_;
ZoneGrowableArray<const Field*>* guarded_fields_;
+ ZoneGrowableArray<const LibraryPrefix*>* deferred_prefixes_;
};
diff --git a/runtime/vm/flow_graph_builder.cc b/runtime/vm/flow_graph_builder.cc
index c0eff97..374ccb4 100644
--- a/runtime/vm/flow_graph_builder.cc
+++ b/runtime/vm/flow_graph_builder.cc
@@ -109,7 +109,7 @@
NestedStatement* outer_;
JoinEntryInstr* break_target_;
- intptr_t try_index_;
+ const intptr_t try_index_;
};
diff --git a/runtime/vm/flow_graph_builder.h b/runtime/vm/flow_graph_builder.h
index 7632971..8467cb5 100644
--- a/runtime/vm/flow_graph_builder.h
+++ b/runtime/vm/flow_graph_builder.h
@@ -199,6 +199,10 @@
return guarded_fields_;
}
+ ZoneGrowableArray<const LibraryPrefix*>* deferred_prefixes() const {
+ return parsed_function_->deferred_prefixes();
+ }
+
intptr_t temp_count() const { return temp_count_; }
intptr_t AllocateTemp() { return temp_count_++; }
void DeallocateTemps(intptr_t count) {
diff --git a/runtime/vm/flow_graph_compiler.cc b/runtime/vm/flow_graph_compiler.cc
index 3a6c97e..45b54ef 100644
--- a/runtime/vm/flow_graph_compiler.cc
+++ b/runtime/vm/flow_graph_compiler.cc
@@ -103,7 +103,10 @@
Library::Handle(Library::CoreLibrary()).
LookupClass(Symbols::List()))),
parallel_move_resolver_(this),
- pending_deoptimization_env_(NULL) {
+ pending_deoptimization_env_(NULL),
+ entry_patch_pc_offset_(Code::kInvalidPc),
+ patch_code_pc_offset_(Code::kInvalidPc),
+ lazy_deopt_pc_offset_(Code::kInvalidPc) {
ASSERT(assembler != NULL);
ASSERT(!list_class_.IsNull());
}
@@ -700,6 +703,9 @@
pc_descriptors_list_->FinalizePcDescriptors(code.EntryPoint()));
if (!is_optimizing_) descriptors.Verify(parsed_function_.function());
code.set_pc_descriptors(descriptors);
+ code.set_entry_patch_pc_offset(entry_patch_pc_offset_);
+ code.set_patch_code_pc_offset(patch_code_pc_offset_);
+ code.set_lazy_deopt_pc_offset(lazy_deopt_pc_offset_);
}
diff --git a/runtime/vm/flow_graph_compiler.h b/runtime/vm/flow_graph_compiler.h
index 6950ce3..6546ff8 100644
--- a/runtime/vm/flow_graph_compiler.h
+++ b/runtime/vm/flow_graph_compiler.h
@@ -594,6 +594,10 @@
// In future AddDeoptStub should be moved out of the instruction template.
Environment* pending_deoptimization_env_;
+ intptr_t entry_patch_pc_offset_;
+ intptr_t patch_code_pc_offset_;
+ intptr_t lazy_deopt_pc_offset_;
+
DISALLOW_COPY_AND_ASSIGN(FlowGraphCompiler);
};
diff --git a/runtime/vm/flow_graph_compiler_arm.cc b/runtime/vm/flow_graph_compiler_arm.cc
index 542ac99..45b72ca 100644
--- a/runtime/vm/flow_graph_compiler_arm.cc
+++ b/runtime/vm/flow_graph_compiler_arm.cc
@@ -973,9 +973,8 @@
__ mov(PP, Operand(R7));
// Patch point is after the eventually inlined function object.
- AddCurrentDescriptor(PcDescriptors::kEntryPatch,
- Isolate::kNoDeoptId,
- 0); // No token position.
+ entry_patch_pc_offset_ = assembler()->CodeSize();
+
intptr_t threshold = FLAG_optimization_counter_threshold;
__ ldr(R7, FieldAddress(function_reg,
Function::usage_counter_offset()));
@@ -992,9 +991,7 @@
ASSERT(function_reg == R6);
__ Branch(&StubCode::OptimizeFunctionLabel(), GE);
} else if (!flow_graph().IsCompiledForOsr()) {
- AddCurrentDescriptor(PcDescriptors::kEntryPatch,
- Isolate::kNoDeoptId,
- 0); // No token position.
+ entry_patch_pc_offset_ = assembler()->CodeSize();
}
__ Comment("Enter frame");
if (flow_graph().IsCompiledForOsr()) {
@@ -1097,14 +1094,13 @@
GenerateDeferredCode();
// Emit function patching code. This will be swapped with the first 3
// instructions at entry point.
- AddCurrentDescriptor(PcDescriptors::kPatchCode,
- Isolate::kNoDeoptId,
- 0); // No token position.
+ patch_code_pc_offset_ = assembler()->CodeSize();
__ BranchPatchable(&StubCode::FixCallersTargetLabel());
- AddCurrentDescriptor(PcDescriptors::kLazyDeoptJump,
- Isolate::kNoDeoptId,
- 0); // No token position.
- __ Branch(&StubCode::DeoptimizeLazyLabel());
+
+ if (is_optimizing()) {
+ lazy_deopt_pc_offset_ = assembler()->CodeSize();
+ __ Branch(&StubCode::DeoptimizeLazyLabel());
+ }
}
diff --git a/runtime/vm/flow_graph_compiler_arm64.cc b/runtime/vm/flow_graph_compiler_arm64.cc
index c4ac888..09a20f3 100644
--- a/runtime/vm/flow_graph_compiler_arm64.cc
+++ b/runtime/vm/flow_graph_compiler_arm64.cc
@@ -970,9 +970,8 @@
__ LoadObject(function_reg, function, new_pp);
// Patch point is after the eventually inlined function object.
- AddCurrentDescriptor(PcDescriptors::kEntryPatch,
- Isolate::kNoDeoptId,
- 0); // No token position.
+ entry_patch_pc_offset_ = assembler()->CodeSize();
+
intptr_t threshold = FLAG_optimization_counter_threshold;
__ LoadFieldFromOffset(
R7, function_reg, Function::usage_counter_offset(), new_pp);
@@ -999,9 +998,7 @@
// Set up pool pointer in new_pp.
__ LoadPoolPointer(new_pp);
- AddCurrentDescriptor(PcDescriptors::kEntryPatch,
- Isolate::kNoDeoptId,
- 0); // No token position.
+ entry_patch_pc_offset_ = assembler()->CodeSize();
}
__ Comment("Enter frame");
if (flow_graph().IsCompiledForOsr()) {
@@ -1102,17 +1099,16 @@
__ hlt(0);
GenerateDeferredCode();
+
// Emit function patching code. This will be swapped with the first 3
// instructions at entry point.
- AddCurrentDescriptor(PcDescriptors::kPatchCode,
- Isolate::kNoDeoptId,
- 0); // No token position.
+ patch_code_pc_offset_ = assembler()->CodeSize();
__ BranchPatchable(&StubCode::FixCallersTargetLabel());
- AddCurrentDescriptor(PcDescriptors::kLazyDeoptJump,
- Isolate::kNoDeoptId,
- 0); // No token position.
+ if (is_optimizing()) {
+ lazy_deopt_pc_offset_ = assembler()->CodeSize();
__ BranchPatchable(&StubCode::DeoptimizeLazyLabel());
+ }
}
diff --git a/runtime/vm/flow_graph_compiler_ia32.cc b/runtime/vm/flow_graph_compiler_ia32.cc
index b58ded0..247e537 100644
--- a/runtime/vm/flow_graph_compiler_ia32.cc
+++ b/runtime/vm/flow_graph_compiler_ia32.cc
@@ -987,10 +987,10 @@
(!is_optimizing() || may_reoptimize())) {
const Register function_reg = EDI;
__ LoadObject(function_reg, function);
+
// Patch point is after the eventually inlined function object.
- AddCurrentDescriptor(PcDescriptors::kEntryPatch,
- Isolate::kNoDeoptId,
- 0); // No token position.
+ entry_patch_pc_offset_ = assembler()->CodeSize();
+
if (is_optimizing()) {
// Reoptimization of an optimized function is triggered by counting in
// IC stubs, but not at the entry of the function.
@@ -1004,9 +1004,7 @@
ASSERT(function_reg == EDI);
__ j(GREATER_EQUAL, &StubCode::OptimizeFunctionLabel());
} else if (!flow_graph().IsCompiledForOsr()) {
- AddCurrentDescriptor(PcDescriptors::kEntryPatch,
- Isolate::kNoDeoptId,
- 0); // No token position.
+ entry_patch_pc_offset_ = assembler()->CodeSize();
}
__ Comment("Enter frame");
if (flow_graph().IsCompiledForOsr()) {
@@ -1106,14 +1104,13 @@
GenerateDeferredCode();
// Emit function patching code. This will be swapped with the first 5 bytes
// at entry point.
- AddCurrentDescriptor(PcDescriptors::kPatchCode,
- Isolate::kNoDeoptId,
- 0); // No token position.
+ patch_code_pc_offset_ = assembler()->CodeSize();
__ jmp(&StubCode::FixCallersTargetLabel());
- AddCurrentDescriptor(PcDescriptors::kLazyDeoptJump,
- Isolate::kNoDeoptId,
- 0); // No token position.
- __ jmp(&StubCode::DeoptimizeLazyLabel());
+
+ if (is_optimizing()) {
+ lazy_deopt_pc_offset_ = assembler()->CodeSize();
+ __ jmp(&StubCode::DeoptimizeLazyLabel());
+ }
}
diff --git a/runtime/vm/flow_graph_compiler_mips.cc b/runtime/vm/flow_graph_compiler_mips.cc
index 68538fe..afc9132 100644
--- a/runtime/vm/flow_graph_compiler_mips.cc
+++ b/runtime/vm/flow_graph_compiler_mips.cc
@@ -1002,9 +1002,8 @@
__ mov(PP, T1);
// Patch point is after the eventually inlined function object.
- AddCurrentDescriptor(PcDescriptors::kEntryPatch,
- Isolate::kNoDeoptId,
- 0); // No token position.
+ entry_patch_pc_offset_ = assembler()->CodeSize();
+
intptr_t threshold = FLAG_optimization_counter_threshold;
__ lw(T1, FieldAddress(function_reg, Function::usage_counter_offset()));
if (is_optimizing()) {
@@ -1026,9 +1025,7 @@
__ Bind(&dont_branch);
} else if (!flow_graph().IsCompiledForOsr()) {
- AddCurrentDescriptor(PcDescriptors::kEntryPatch,
- Isolate::kNoDeoptId,
- 0); // No token position.
+ entry_patch_pc_offset_ = assembler()->CodeSize();
}
__ Comment("Enter frame");
if (flow_graph().IsCompiledForOsr()) {
@@ -1133,14 +1130,13 @@
GenerateDeferredCode();
// Emit function patching code. This will be swapped with the first 5 bytes
// at entry point.
- AddCurrentDescriptor(PcDescriptors::kPatchCode,
- Isolate::kNoDeoptId,
- 0); // No token position.
+ patch_code_pc_offset_ = assembler()->CodeSize();
__ BranchPatchable(&StubCode::FixCallersTargetLabel());
- AddCurrentDescriptor(PcDescriptors::kLazyDeoptJump,
- Isolate::kNoDeoptId,
- 0); // No token position.
- __ Branch(&StubCode::DeoptimizeLazyLabel());
+
+ if (is_optimizing()) {
+ lazy_deopt_pc_offset_ = assembler()->CodeSize();
+ __ Branch(&StubCode::DeoptimizeLazyLabel());
+ }
}
diff --git a/runtime/vm/flow_graph_compiler_x64.cc b/runtime/vm/flow_graph_compiler_x64.cc
index be3a6b0..01629ea 100644
--- a/runtime/vm/flow_graph_compiler_x64.cc
+++ b/runtime/vm/flow_graph_compiler_x64.cc
@@ -1000,9 +1000,8 @@
__ LoadObject(function_reg, function, new_pp);
// Patch point is after the eventually inlined function object.
- AddCurrentDescriptor(PcDescriptors::kEntryPatch,
- Isolate::kNoDeoptId,
- 0); // No token position.
+ entry_patch_pc_offset_ = assembler()->CodeSize();
+
if (is_optimizing()) {
// Reoptimization of an optimized function is triggered by counting in
// IC stubs, but not at the entry of the function.
@@ -1042,9 +1041,8 @@
// Load callee's pool pointer.
__ movq(new_pp, Address(new_pc, -object_pool_pc_dist - offset));
- AddCurrentDescriptor(PcDescriptors::kEntryPatch,
- Isolate::kNoDeoptId,
- 0); // No token position.
+
+ entry_patch_pc_offset_ = assembler()->CodeSize();
}
__ Comment("Enter frame");
if (flow_graph().IsCompiledForOsr()) {
@@ -1142,17 +1140,15 @@
GenerateDeferredCode();
// Emit function patching code. This will be swapped with the first 13 bytes
// at entry point.
- AddCurrentDescriptor(PcDescriptors::kPatchCode,
- Isolate::kNoDeoptId,
- 0); // No token position.
+ patch_code_pc_offset_ = assembler()->CodeSize();
// This is patched up to a point in FrameEntry where the PP for the
// current function is in R13 instead of PP.
__ JmpPatchable(&StubCode::FixCallersTargetLabel(), R13);
- AddCurrentDescriptor(PcDescriptors::kLazyDeoptJump,
- Isolate::kNoDeoptId,
- 0); // No token position.
- __ Jmp(&StubCode::DeoptimizeLazyLabel(), PP);
+ if (is_optimizing()) {
+ lazy_deopt_pc_offset_ = assembler()->CodeSize();
+ __ Jmp(&StubCode::DeoptimizeLazyLabel(), PP);
+ }
}
diff --git a/runtime/vm/flow_graph_inliner.cc b/runtime/vm/flow_graph_inliner.cc
index b07c635..11fedc1 100644
--- a/runtime/vm/flow_graph_inliner.cc
+++ b/runtime/vm/flow_graph_inliner.cc
@@ -802,6 +802,9 @@
FlowGraph::AddToGuardedFields(caller_graph_->guarded_fields(),
(*callee_graph->guarded_fields())[i]);
}
+ // When inlined, we add the deferred prefixes of the callee to the
+ // caller's list of deferred prefixes.
+ caller_graph()->AddToDeferredPrefixes(callee_graph->deferred_prefixes());
// We allocate a ZoneHandle for the unoptimized code so that it cannot be
// disconnected from its function during the rest of compilation.
diff --git a/runtime/vm/object.cc b/runtime/vm/object.cc
index 2f9559b..af12f93 100644
--- a/runtime/vm/object.cc
+++ b/runtime/vm/object.cc
@@ -2523,6 +2523,13 @@
if (!CodePatcher::IsEntryPatched(code)) {
CodePatcher::PatchEntry(code);
}
+ } else if (!function.HasCode() && (code.GetEntryPatchPc() != 0)) {
+ // The code has already been disconnected, make it invalid. Do not
+ // bother with OSR compiled code that has no valid entry-patch.
+ ReportSwitchingCode(code);
+ if (!CodePatcher::IsEntryPatched(code)) {
+ CodePatcher::PatchEntry(code);
+ }
}
}
}
@@ -10129,9 +10136,6 @@
const char* PcDescriptors::KindAsStr(intptr_t index) const {
switch (DescriptorKind(index)) {
case PcDescriptors::kDeopt: return "deopt ";
- case PcDescriptors::kEntryPatch: return "entry-patch ";
- case PcDescriptors::kPatchCode: return "patch ";
- case PcDescriptors::kLazyDeoptJump: return "lazy-deopt ";
case PcDescriptors::kIcCall: return "ic-call ";
case PcDescriptors::kOptStaticCall: return "opt-call ";
case PcDescriptors::kUnoptStaticCall: return "unopt-call ";
@@ -11618,6 +11622,9 @@
result.set_is_alive(false);
result.set_comments(Comments::New(0));
result.set_compile_timestamp(0);
+ result.set_entry_patch_pc_offset(kInvalidPc);
+ result.set_patch_code_pc_offset(kInvalidPc);
+ result.set_lazy_deopt_pc_offset(kInvalidPc);
result.set_pc_descriptors(Object::empty_descriptors());
}
return result.raw();
@@ -11897,15 +11904,21 @@
}
+uword Code::GetEntryPatchPc() const {
+ return (entry_patch_pc_offset() != kInvalidPc)
+ ? EntryPoint() + entry_patch_pc_offset() : 0;
+}
+
+
uword Code::GetPatchCodePc() const {
- const PcDescriptors& descriptors = PcDescriptors::Handle(pc_descriptors());
- return descriptors.GetPcForKind(PcDescriptors::kPatchCode);
+ return (patch_code_pc_offset() != kInvalidPc)
+ ? EntryPoint() + patch_code_pc_offset() : 0;
}
uword Code::GetLazyDeoptPc() const {
- const PcDescriptors& descriptors = PcDescriptors::Handle(pc_descriptors());
- return descriptors.GetPcForKind(PcDescriptors::kLazyDeoptJump);
+ return (lazy_deopt_pc_offset() != kInvalidPc)
+ ? EntryPoint() + lazy_deopt_pc_offset() : 0;
}
diff --git a/runtime/vm/object.h b/runtime/vm/object.h
index 6c7182e..de55423 100644
--- a/runtime/vm/object.h
+++ b/runtime/vm/object.h
@@ -2970,9 +2970,6 @@
public:
enum Kind {
kDeopt, // Deoptimization continuation point.
- kEntryPatch, // Location where to patch entry.
- kPatchCode, // Buffer for patching code entry.
- kLazyDeoptJump, // Lazy deoptimization trampoline.
kIcCall, // IC call.
kOptStaticCall, // Call directly to known target, e.g. static call.
kUnoptStaticCall, // Call to a known target via a stub.
@@ -3631,7 +3628,6 @@
static const intptr_t kMaxElements = kSmiMax / kBytesPerElement;
static intptr_t InstanceSize() {
- ASSERT(sizeof(RawCode) == OFFSET_OF(RawCode, data_));
return 0;
}
static intptr_t InstanceSize(intptr_t len) {
@@ -3653,10 +3649,17 @@
}
intptr_t GetTokenIndexOfPC(uword pc) const;
- // Find pc, return 0 if not found.
+ enum {
+ kInvalidPc = -1
+ };
+
+ // Returns 0 if code is not patchable
+ uword GetEntryPatchPc() const;
uword GetPatchCodePc() const;
+
uword GetLazyDeoptPc() const;
+ // Find pc, return 0 if not found.
uword GetPcForDeoptId(intptr_t deopt_id, PcDescriptors::Kind kind) const;
intptr_t GetDeoptIdForOsr(uword pc) const;
@@ -3680,6 +3683,29 @@
return raw_ptr()->compile_timestamp_;
}
+ intptr_t entry_patch_pc_offset() const {
+ return raw_ptr()->entry_patch_pc_offset_;
+ }
+ void set_entry_patch_pc_offset(intptr_t pc) const {
+ raw_ptr()->entry_patch_pc_offset_ = pc;
+ }
+
+
+ intptr_t patch_code_pc_offset() const {
+ return raw_ptr()->patch_code_pc_offset_;
+ }
+ void set_patch_code_pc_offset(intptr_t pc) const {
+ raw_ptr()->patch_code_pc_offset_ = pc;
+ }
+
+
+ intptr_t lazy_deopt_pc_offset() const {
+ return raw_ptr()->lazy_deopt_pc_offset_;
+ }
+ void set_lazy_deopt_pc_offset(intptr_t pc) const {
+ raw_ptr()->lazy_deopt_pc_offset_ = pc;
+ }
+
private:
void set_state_bits(intptr_t bits) const;
diff --git a/runtime/vm/parser.cc b/runtime/vm/parser.cc
index 8667c20..c41e5c1 100644
--- a/runtime/vm/parser.cc
+++ b/runtime/vm/parser.cc
@@ -135,16 +135,12 @@
void ParsedFunction::AddDeferredPrefix(const LibraryPrefix& prefix) {
ASSERT(prefix.is_deferred_load());
ASSERT(!prefix.is_loaded());
- if (deferred_prefixes_ == NULL) {
- deferred_prefixes_ =
- &GrowableObjectArray::ZoneHandle(GrowableObjectArray::New());
- }
- for (intptr_t i = 0; i < deferred_prefixes_->Length(); i++) {
- if (deferred_prefixes_->At(i) == prefix.raw()) {
+ for (intptr_t i = 0; i < deferred_prefixes_->length(); i++) {
+ if ((*deferred_prefixes_)[i]->raw() == prefix.raw()) {
return;
}
}
- deferred_prefixes_->Add(prefix);
+ deferred_prefixes_->Add(&LibraryPrefix::ZoneHandle(I, prefix.raw()));
}
diff --git a/runtime/vm/parser.h b/runtime/vm/parser.h
index f187032..15de41f 100644
--- a/runtime/vm/parser.h
+++ b/runtime/vm/parser.h
@@ -47,7 +47,7 @@
saved_current_context_var_(NULL),
saved_entry_context_var_(NULL),
expression_temp_var_(NULL),
- deferred_prefixes_(NULL),
+ deferred_prefixes_(new ZoneGrowableArray<const LibraryPrefix*>()),
first_parameter_index_(0),
first_stack_local_index_(0),
num_copied_params_(0),
@@ -110,8 +110,10 @@
static LocalVariable* CreateExpressionTempVar(intptr_t token_pos);
LocalVariable* EnsureExpressionTemp();
- bool HasDeferredPrefixes() const { return deferred_prefixes_ != NULL; }
- GrowableObjectArray* DeferredPrefixes() const { return deferred_prefixes_; }
+ bool HasDeferredPrefixes() const { return deferred_prefixes_->length() != 0; }
+ ZoneGrowableArray<const LibraryPrefix*>* deferred_prefixes() const {
+ return deferred_prefixes_;
+ }
void AddDeferredPrefix(const LibraryPrefix& prefix);
int first_parameter_index() const { return first_parameter_index_; }
@@ -132,7 +134,7 @@
LocalVariable* saved_current_context_var_;
LocalVariable* saved_entry_context_var_;
LocalVariable* expression_temp_var_;
- GrowableObjectArray* deferred_prefixes_;
+ ZoneGrowableArray<const LibraryPrefix*>* deferred_prefixes_;
int first_parameter_index_;
int first_stack_local_index_;
diff --git a/runtime/vm/raw_object.h b/runtime/vm/raw_object.h
index 523151b..363a42c 100644
--- a/runtime/vm/raw_object.h
+++ b/runtime/vm/raw_object.h
@@ -840,6 +840,11 @@
// architectures.
intptr_t state_bits_; // state, is_optimized, is_alive.
+ // PC offsets for code patching.
+ intptr_t entry_patch_pc_offset_;
+ intptr_t patch_code_pc_offset_;
+ intptr_t lazy_deopt_pc_offset_;
+
// Variable length data follows here.
int32_t data_[0];
diff --git a/sdk/lib/_blink/dartium/_blink_dartium.dart b/sdk/lib/_blink/dartium/_blink_dartium.dart
index 749a403..f32673f 100644
--- a/sdk/lib/_blink/dartium/_blink_dartium.dart
+++ b/sdk/lib/_blink/dartium/_blink_dartium.dart
@@ -127,8 +127,6 @@
Native_TimedItem_player_Getter(mthis) native "TimedItem_player_Getter";
-Native_TimedItem_specified_Getter(mthis) native "TimedItem_specified_Getter";
-
Native_TimedItem_startTime_Getter(mthis) native "TimedItem_startTime_Getter";
// Generated overload resolver
@@ -217,10 +215,6 @@
Native_AudioBuffer_duration_Getter(mthis) native "AudioBuffer_duration_Getter";
-Native_AudioBuffer_gain_Getter(mthis) native "AudioBuffer_gain_Getter";
-
-Native_AudioBuffer_gain_Setter(mthis, value) native "AudioBuffer_gain_Setter";
-
Native_AudioBuffer_length_Getter(mthis) native "AudioBuffer_length_Getter";
Native_AudioBuffer_numberOfChannels_Getter(mthis) native "AudioBuffer_numberOfChannels_Getter";
@@ -233,8 +227,6 @@
Native_AudioBufferSourceNode_buffer_Setter(mthis, value) native "AudioBufferSourceNode_buffer_Setter";
-Native_AudioBufferSourceNode_gain_Getter(mthis) native "AudioBufferSourceNode_gain_Getter";
-
Native_AudioBufferSourceNode_loop_Getter(mthis) native "AudioBufferSourceNode_loop_Getter";
Native_AudioBufferSourceNode_loop_Setter(mthis, value) native "AudioBufferSourceNode_loop_Setter";
@@ -249,8 +241,6 @@
Native_AudioBufferSourceNode_playbackRate_Getter(mthis) native "AudioBufferSourceNode_playbackRate_Getter";
-Native_AudioBufferSourceNode_playbackState_Getter(mthis) native "AudioBufferSourceNode_playbackState_Getter";
-
Native_AudioBufferSourceNode_noteGrainOn_Callback(mthis, when, grainOffset, grainDuration) native "AudioBufferSourceNode_noteGrainOn_Callback_RESOLVER_STRING_3_double_double_double";
Native_AudioBufferSourceNode_noteOff_Callback(mthis, when) native "AudioBufferSourceNode_noteOff_Callback_RESOLVER_STRING_1_double";
@@ -304,8 +294,6 @@
Native_AudioContext__create_1constructorCallback() native "AudioContext_constructorCallback_RESOLVER_STRING_0_";
-Native_AudioContext_activeSourceCount_Getter(mthis) native "AudioContext_activeSourceCount_Getter";
-
Native_AudioContext_currentTime_Getter(mthis) native "AudioContext_currentTime_Getter";
Native_AudioContext_destination_Getter(mthis) native "AudioContext_destination_Getter";
@@ -320,8 +308,6 @@
Native_AudioContext_createBuffer_Callback(mthis, numberOfChannels, numberOfFrames, sampleRate) native "AudioContext_createBuffer_Callback_RESOLVER_STRING_3_unsigned long_unsigned long_float";
-Native_AudioContext_createBufferFromBuffer_Callback(mthis, buffer, mixToMono) native "AudioContext_createBuffer_Callback_RESOLVER_STRING_2_ArrayBuffer_boolean";
-
Native_AudioContext_createBufferSource_Callback(mthis) native "AudioContext_createBufferSource_Callback_RESOLVER_STRING_0_";
// Generated overload resolver
@@ -362,41 +348,10 @@
Native_AudioContext__createDelay_2_Callback(mthis) native "AudioContext_createDelay_Callback_RESOLVER_STRING_0_";
- // Generated overload resolver
-Native_AudioContext_createDelayNode(mthis, maxDelayTime) {
- if (maxDelayTime != null) {
- return Native_AudioContext__createDelayNode_1_Callback(mthis, maxDelayTime);
- }
- return Native_AudioContext__createDelayNode_2_Callback(mthis);
- }
-
-Native_AudioContext__createDelayNode_1_Callback(mthis, maxDelayTime) native "AudioContext_createDelayNode_Callback_RESOLVER_STRING_1_double";
-
-Native_AudioContext__createDelayNode_2_Callback(mthis) native "AudioContext_createDelayNode_Callback_RESOLVER_STRING_0_";
-
Native_AudioContext_createDynamicsCompressor_Callback(mthis) native "AudioContext_createDynamicsCompressor_Callback_RESOLVER_STRING_0_";
Native_AudioContext_createGain_Callback(mthis) native "AudioContext_createGain_Callback_RESOLVER_STRING_0_";
-Native_AudioContext_createGainNode_Callback(mthis) native "AudioContext_createGainNode_Callback_RESOLVER_STRING_0_";
-
- // Generated overload resolver
-Native_AudioContext_createJavaScriptNode(mthis, bufferSize, numberOfInputChannels, numberOfOutputChannels) {
- if (numberOfOutputChannels != null) {
- return Native_AudioContext__createJavaScriptNode_1_Callback(mthis, bufferSize, numberOfInputChannels, numberOfOutputChannels);
- }
- if (numberOfInputChannels != null) {
- return Native_AudioContext__createJavaScriptNode_2_Callback(mthis, bufferSize, numberOfInputChannels);
- }
- return Native_AudioContext__createJavaScriptNode_3_Callback(mthis, bufferSize);
- }
-
-Native_AudioContext__createJavaScriptNode_1_Callback(mthis, bufferSize, numberOfInputChannels, numberOfOutputChannels) native "AudioContext_createJavaScriptNode_Callback_RESOLVER_STRING_3_unsigned long_unsigned long_unsigned long";
-
-Native_AudioContext__createJavaScriptNode_2_Callback(mthis, bufferSize, numberOfInputChannels) native "AudioContext_createJavaScriptNode_Callback_RESOLVER_STRING_2_unsigned long_unsigned long";
-
-Native_AudioContext__createJavaScriptNode_3_Callback(mthis, bufferSize) native "AudioContext_createJavaScriptNode_Callback_RESOLVER_STRING_1_unsigned long";
-
Native_AudioContext_createMediaElementSource_Callback(mthis, mediaElement) native "AudioContext_createMediaElementSource_Callback_RESOLVER_STRING_1_HTMLMediaElement";
Native_AudioContext_createMediaStreamDestination_Callback(mthis) native "AudioContext_createMediaStreamDestination_Callback_RESOLVER_STRING_0_";
@@ -475,8 +430,6 @@
Native_AudioParam_setTargetAtTime_Callback(mthis, target, time, timeConstant) native "AudioParam_setTargetAtTime_Callback_RESOLVER_STRING_3_float_double_double";
-Native_AudioParam_setTargetValueAtTime_Callback(mthis, targetValue, time, timeConstant) native "AudioParam_setTargetValueAtTime_Callback_RESOLVER_STRING_3_float_double_double";
-
Native_AudioParam_setValueAtTime_Callback(mthis, value, time) native "AudioParam_setValueAtTime_Callback_RESOLVER_STRING_2_float_double";
Native_AudioParam_setValueCurveAtTime_Callback(mthis, values, time, duration) native "AudioParam_setValueCurveAtTime_Callback";
@@ -517,8 +470,6 @@
Native_BarProp_visible_Getter(mthis) native "BarProp_visible_Getter";
-Native_BeforeLoadEvent_url_Getter(mthis) native "BeforeLoadEvent_url_Getter";
-
Native_BeforeUnloadEvent_returnValue_Getter(mthis) native "BeforeUnloadEvent_returnValue_Getter";
Native_BeforeUnloadEvent_returnValue_Setter(mthis, value) native "BeforeUnloadEvent_returnValue_Setter";
@@ -765,10 +716,6 @@
Native_CanvasRenderingContext_canvas_Getter(mthis) native "CanvasRenderingContext2D_canvas_Getter";
-Native_CanvasRenderingContext2D_currentPath_Getter(mthis) native "CanvasRenderingContext2D_currentPath_Getter";
-
-Native_CanvasRenderingContext2D_currentPath_Setter(mthis, value) native "CanvasRenderingContext2D_currentPath_Setter";
-
Native_CanvasRenderingContext2D_currentTransform_Getter(mthis) native "CanvasRenderingContext2D_currentTransform_Getter";
Native_CanvasRenderingContext2D_currentTransform_Setter(mthis, value) native "CanvasRenderingContext2D_currentTransform_Setter";
@@ -1047,7 +994,7 @@
Native_CanvasRenderingContext2D_scale_Callback(mthis, sx, sy) native "CanvasRenderingContext2D_scale_Callback_RESOLVER_STRING_2_float_float";
-Native_CanvasRenderingContext2D_setLineDash_Callback(mthis, dash) native "CanvasRenderingContext2D_setLineDash_Callback_RESOLVER_STRING_1_sequence<float>";
+Native_CanvasRenderingContext2D_setLineDash_Callback(mthis, dash) native "CanvasRenderingContext2D_setLineDash_Callback_RESOLVER_STRING_1_sequence<unrestricted float>";
Native_CanvasRenderingContext2D_setTransform_Callback(mthis, m11, m12, m21, m22, dx, dy) native "CanvasRenderingContext2D_setTransform_Callback_RESOLVER_STRING_6_float_float_float_float_float_float";
@@ -1073,25 +1020,6 @@
Native_CanvasRenderingContext2D_translate_Callback(mthis, tx, ty) native "CanvasRenderingContext2D_translate_Callback_RESOLVER_STRING_2_float_float";
-Native_CanvasRenderingContext2D_webkitGetImageDataHD_Callback(mthis, sx, sy, sw, sh) native "CanvasRenderingContext2D_webkitGetImageDataHD_Callback_RESOLVER_STRING_4_float_float_float_float";
-
- // Generated overload resolver
-Native_CanvasRenderingContext2D_putImageDataHD(mthis, imagedata, dx, dy, dirtyX, dirtyY, dirtyWidth, dirtyHeight) {
- if ((dy is num || dy == null) && (dx is num || dx == null) && (imagedata is ImageData || imagedata == null) && dirtyX == null && dirtyY == null && dirtyWidth == null && dirtyHeight == null) {
- Native_CanvasRenderingContext2D__webkitPutImageDataHD_1_Callback(mthis, imagedata, dx, dy);
- return;
- }
- if ((dirtyHeight is num || dirtyHeight == null) && (dirtyWidth is num || dirtyWidth == null) && (dirtyY is num || dirtyY == null) && (dirtyX is num || dirtyX == null) && (dy is num || dy == null) && (dx is num || dx == null) && (imagedata is ImageData || imagedata == null)) {
- Native_CanvasRenderingContext2D__webkitPutImageDataHD_2_Callback(mthis, imagedata, dx, dy, dirtyX, dirtyY, dirtyWidth, dirtyHeight);
- return;
- }
- throw new ArgumentError("Incorrect number or type of arguments");
- }
-
-Native_CanvasRenderingContext2D__webkitPutImageDataHD_1_Callback(mthis, imagedata, dx, dy) native "CanvasRenderingContext2D_webkitPutImageDataHD_Callback_RESOLVER_STRING_3_ImageData_float_float";
-
-Native_CanvasRenderingContext2D__webkitPutImageDataHD_2_Callback(mthis, imagedata, dx, dy, dirtyX, dirtyY, dirtyWidth, dirtyHeight) native "CanvasRenderingContext2D_webkitPutImageDataHD_Callback_RESOLVER_STRING_7_ImageData_float_float_float_float_float_float";
-
Native_ClientRect_bottom_Getter(mthis) native "ClientRect_bottom_Getter";
Native_ClientRect_height_Getter(mthis) native "ClientRect_height_Getter";
@@ -1277,8 +1205,6 @@
Native_DOMFileSystem_root_Getter(mthis) native "DOMFileSystem_root_Getter";
-Native_DOMImplementation_createCSSStyleSheet_Callback(mthis, title, media) native "DOMImplementation_createCSSStyleSheet_Callback_RESOLVER_STRING_2_DOMString_DOMString";
-
Native_DOMImplementation_createDocument_Callback(mthis, namespaceURI, qualifiedName, doctype) native "DOMImplementation_createDocument_Callback_RESOLVER_STRING_3_DOMString_DOMString_DocumentType";
Native_DOMImplementation_createDocumentType_Callback(mthis, qualifiedName, publicId, systemId) native "DOMImplementation_createDocumentType_Callback_RESOLVER_STRING_3_DOMString_DOMString_DOMString";
@@ -1448,8 +1374,6 @@
Native_WorkerGlobalScope_self_Getter(mthis) native "WorkerGlobalScope_self_Getter";
-Native_WorkerGlobalScope_webkitNotifications_Getter(mthis) native "WorkerGlobalScope_webkitNotifications_Getter";
-
Native_WorkerGlobalScope_close_Callback(mthis) native "WorkerGlobalScope_close_Callback_RESOLVER_STRING_0_";
Native_WorkerGlobalScope_openDatabase_Callback(mthis, name, version, displayName, estimatedSize, creationCallback) native "WorkerGlobalScope_openDatabase_Callback_RESOLVER_STRING_5_DOMString_DOMString_DOMString_unsigned long_DatabaseCallback";
@@ -2130,7 +2054,7 @@
Native_Gamepad_axes_Getter(mthis) native "Gamepad_axes_Getter";
-Native_Gamepad_buttons_Getter(mthis) native "Gamepad_buttons_Getter";
+Native_Gamepad_buttons_Getter(mthis) native "WebKitGamepad_buttons_Getter";
Native_Gamepad_id_Getter(mthis) native "Gamepad_id_Getter";
@@ -2722,7 +2646,7 @@
Native_HTMLFormElement_checkValidity_Callback(mthis) native "HTMLFormElement_checkValidity_Callback_RESOLVER_STRING_0_";
-Native_HTMLFormElement_requestAutocomplete_Callback(mthis) native "HTMLFormElement_requestAutocomplete_Callback_RESOLVER_STRING_0_";
+Native_HTMLFormElement_requestAutocomplete_Callback(mthis, details) native "HTMLFormElement_requestAutocomplete_Callback_RESOLVER_STRING_1_Dictionary";
Native_HTMLFormElement_reset_Callback(mthis) native "HTMLFormElement_reset_Callback_RESOLVER_STRING_0_";
@@ -2960,14 +2884,6 @@
Native_HTMLInputElement_webkitEntries_Getter(mthis) native "HTMLInputElement_webkitEntries_Getter";
-Native_HTMLInputElement_webkitGrammar_Getter(mthis) native "HTMLInputElement_webkitGrammar_Getter";
-
-Native_HTMLInputElement_webkitGrammar_Setter(mthis, value) native "HTMLInputElement_webkitGrammar_Setter";
-
-Native_HTMLInputElement_webkitSpeech_Getter(mthis) native "HTMLInputElement_webkitSpeech_Getter";
-
-Native_HTMLInputElement_webkitSpeech_Setter(mthis, value) native "HTMLInputElement_webkitSpeech_Setter";
-
Native_HTMLInputElement_webkitdirectory_Getter(mthis) native "HTMLInputElement_webkitdirectory_Getter";
Native_HTMLInputElement_webkitdirectory_Setter(mthis, value) native "HTMLInputElement_webkitdirectory_Setter";
@@ -4511,8 +4427,6 @@
Native_OscillatorNode_frequency_Getter(mthis) native "OscillatorNode_frequency_Getter";
-Native_OscillatorNode_playbackState_Getter(mthis) native "OscillatorNode_playbackState_Getter";
-
Native_OscillatorNode_type_Getter(mthis) native "OscillatorNode_type_Getter";
Native_OscillatorNode_type_Setter(mthis, value) native "OscillatorNode_type_Setter";
@@ -5293,8 +5207,6 @@
Native_SVGClipPathElement_clipPathUnits_Getter(mthis) native "SVGClipPathElement_clipPathUnits_Getter";
-Native_SVGElementInstance_childNodes_Getter(mthis) native "SVGElementInstance_childNodes_Getter";
-
Native_SVGElementInstance_correspondingElement_Getter(mthis) native "SVGElementInstance_correspondingElement_Getter";
Native_SVGElementInstance_correspondingUseElement_Getter(mthis) native "SVGElementInstance_correspondingUseElement_Getter";
@@ -6273,14 +6185,6 @@
Native_SVGZoomAndPan_zoomAndPan_Setter(mthis, value) native "SVGZoomAndPan_zoomAndPan_Setter";
-Native_SVGSVGElement_contentScriptType_Getter(mthis) native "SVGSVGElement_contentScriptType_Getter";
-
-Native_SVGSVGElement_contentScriptType_Setter(mthis, value) native "SVGSVGElement_contentScriptType_Setter";
-
-Native_SVGSVGElement_contentStyleType_Getter(mthis) native "SVGSVGElement_contentStyleType_Getter";
-
-Native_SVGSVGElement_contentStyleType_Setter(mthis, value) native "SVGSVGElement_contentStyleType_Setter";
-
Native_SVGSVGElement_currentScale_Getter(mthis) native "SVGSVGElement_currentScale_Getter";
Native_SVGSVGElement_currentScale_Setter(mthis, value) native "SVGSVGElement_currentScale_Setter";
@@ -6465,13 +6369,13 @@
Native_SVGUseElement_y_Getter(mthis) native "SVGUseElement_y_Getter";
-Native_SVGUseElement_requiredExtensions_Getter(mthis) native "SVGUseElement_requiredExtensions_Getter";
+Native_SVGUseElement_requiredExtensions_Getter(mthis) native "SVGGraphicsElement_requiredExtensions_Getter";
-Native_SVGUseElement_requiredFeatures_Getter(mthis) native "SVGUseElement_requiredFeatures_Getter";
+Native_SVGUseElement_requiredFeatures_Getter(mthis) native "SVGGraphicsElement_requiredFeatures_Getter";
-Native_SVGUseElement_systemLanguage_Getter(mthis) native "SVGUseElement_systemLanguage_Getter";
+Native_SVGUseElement_systemLanguage_Getter(mthis) native "SVGGraphicsElement_systemLanguage_Getter";
-Native_SVGUseElement_hasExtension_Callback(mthis, extension) native "SVGUseElement_hasExtension_Callback_RESOLVER_STRING_1_DOMString";
+Native_SVGUseElement_hasExtension_Callback(mthis, extension) native "SVGGraphicsElement_hasExtension_Callback_RESOLVER_STRING_1_DOMString";
Native_SVGUseElement_href_Getter(mthis) native "SVGUseElement_href_Getter";
@@ -6615,10 +6519,6 @@
Native_ShadowRoot_activeElement_Getter(mthis) native "ShadowRoot_activeElement_Getter";
-Native_ShadowRoot_applyAuthorStyles_Getter(mthis) native "ShadowRoot_applyAuthorStyles_Getter";
-
-Native_ShadowRoot_applyAuthorStyles_Setter(mthis, value) native "ShadowRoot_applyAuthorStyles_Setter";
-
Native_ShadowRoot_host_Getter(mthis) native "ShadowRoot_host_Getter";
Native_ShadowRoot_innerHTML_Getter(mthis) native "ShadowRoot_innerHTML_Getter";
@@ -6770,12 +6670,6 @@
Native_SpeechGrammarList_item_Callback(mthis, index) native "SpeechGrammarList_item_Callback_RESOLVER_STRING_1_unsigned long";
-Native_SpeechInputEvent_results_Getter(mthis) native "SpeechInputEvent_results_Getter";
-
-Native_SpeechInputResult_confidence_Getter(mthis) native "SpeechInputResult_confidence_Getter";
-
-Native_SpeechInputResult_utterance_Getter(mthis) native "SpeechInputResult_utterance_Getter";
-
Native_SpeechInputResultList_length_Getter(mthis) native "SpeechInputResultList_length_Getter";
Native_SpeechInputResultList_NativeIndexed_Getter(mthis, index) native "SpeechInputResultList_item_Callback_RESOLVER_STRING_1_unsigned long";
@@ -8182,8 +8076,6 @@
Native_Worker_terminate_Callback(mthis) native "Worker_terminate_Callback_RESOLVER_STRING_0_";
-Native_WorkerCrypto_getRandomValues_Callback(mthis, array) native "WorkerCrypto_getRandomValues_Callback";
-
Native_WorkerPerformance_now_Callback(mthis) native "WorkerPerformance_now_Callback_RESOLVER_STRING_0_";
Native_XMLHttpRequest_constructorCallback() native "XMLHttpRequest_constructorCallback";
diff --git a/sdk/lib/html/dart2js/html_dart2js.dart b/sdk/lib/html/dart2js/html_dart2js.dart
index 050e4c0..3a1e464 100644
--- a/sdk/lib/html/dart2js/html_dart2js.dart
+++ b/sdk/lib/html/dart2js/html_dart2js.dart
@@ -715,10 +715,6 @@
class BeforeLoadEvent extends Event native "BeforeLoadEvent" {
// To suppress missing implicit constructor warnings.
factory BeforeLoadEvent._() { throw new UnsupportedError("Not supported"); }
-
- @DomName('BeforeLoadEvent.url')
- @DocsEditable()
- final String url;
}
// Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
@@ -1403,21 +1399,6 @@
// To suppress missing implicit constructor warnings.
factory CanvasRenderingContext2D._() { throw new UnsupportedError("Not supported"); }
- /**
- * The current default path of this canvas context, if there is one.
- *
- * ## Other resources
- *
- * * [Current default path]
- * (http://www.whatwg.org/specs/web-apps/current-work/multipage/the-canvas-element.html#current-default-path)
- * from WHATWG.
- */
- @DomName('CanvasRenderingContext2D.currentPath')
- @DocsEditable()
- // http://www.whatwg.org/specs/web-apps/current-work/multipage/the-canvas-element.html#path-objects
- @Experimental()
- Path currentPath;
-
@DomName('CanvasRenderingContext2D.currentTransform')
@DocsEditable()
@Experimental() // untriaged
@@ -1707,57 +1688,6 @@
@DocsEditable()
void translate(num tx, num ty) native;
- @DomName('CanvasRenderingContext2D.webkitGetImageDataHD')
- @DocsEditable()
- @SupportedBrowser(SupportedBrowser.CHROME)
- @SupportedBrowser(SupportedBrowser.SAFARI)
- @Experimental()
- @Creates('ImageData|=Object')
- ImageData getImageDataHD(num sx, num sy, num sw, num sh) {
- return convertNativeToDart_ImageData(_getImageDataHD_1(sx, sy, sw, sh));
- }
- @JSName('webkitGetImageDataHD')
- @DomName('CanvasRenderingContext2D.webkitGetImageDataHD')
- @DocsEditable()
- @SupportedBrowser(SupportedBrowser.CHROME)
- @SupportedBrowser(SupportedBrowser.SAFARI)
- @Experimental()
- @Creates('ImageData|=Object')
- _getImageDataHD_1(sx, sy, sw, sh) native;
-
- @DomName('CanvasRenderingContext2D.webkitPutImageDataHD')
- @DocsEditable()
- @SupportedBrowser(SupportedBrowser.CHROME)
- @SupportedBrowser(SupportedBrowser.SAFARI)
- @Experimental()
- void putImageDataHD(ImageData imagedata, num dx, num dy, [num dirtyX, num dirtyY, num dirtyWidth, num dirtyHeight]) {
- if (dirtyX == null && dirtyY == null && dirtyWidth == null && dirtyHeight == null) {
- var imagedata_1 = convertDartToNative_ImageData(imagedata);
- _putImageDataHD_1(imagedata_1, dx, dy);
- return;
- }
- if (dirtyHeight != null && dirtyWidth != null && dirtyY != null && dirtyX != null) {
- var imagedata_2 = convertDartToNative_ImageData(imagedata);
- _putImageDataHD_2(imagedata_2, dx, dy, dirtyX, dirtyY, dirtyWidth, dirtyHeight);
- return;
- }
- throw new ArgumentError("Incorrect number or type of arguments");
- }
- @JSName('webkitPutImageDataHD')
- @DomName('CanvasRenderingContext2D.webkitPutImageDataHD')
- @DocsEditable()
- @SupportedBrowser(SupportedBrowser.CHROME)
- @SupportedBrowser(SupportedBrowser.SAFARI)
- @Experimental()
- void _putImageDataHD_1(imagedata, dx, dy) native;
- @JSName('webkitPutImageDataHD')
- @DomName('CanvasRenderingContext2D.webkitPutImageDataHD')
- @DocsEditable()
- @SupportedBrowser(SupportedBrowser.CHROME)
- @SupportedBrowser(SupportedBrowser.SAFARI)
- @Experimental()
- void _putImageDataHD_2(imagedata, dx, dy, dirtyX, dirtyY, dirtyWidth, dirtyHeight) native;
-
/**
* Sets the color used inside shapes.
@@ -8015,12 +7945,6 @@
// To suppress missing implicit constructor warnings.
factory DomImplementation._() { throw new UnsupportedError("Not supported"); }
- @JSName('createCSSStyleSheet')
- @DomName('DOMImplementation.createCSSStyleSheet')
- @DocsEditable()
- @Experimental() // non-standard
- CssStyleSheet createCssStyleSheet(String title, String media) native;
-
@DomName('DOMImplementation.createDocument')
@DocsEditable()
XmlDocument createDocument(String namespaceURI, String qualifiedName, _DocumentType doctype) native;
@@ -13401,7 +13325,17 @@
@DocsEditable()
// http://lists.whatwg.org/htdig.cgi/whatwg-whatwg.org/2012-October/037711.html
@Experimental()
- void requestAutocomplete() native;
+ void requestAutocomplete(Map details) {
+ var details_1 = convertDartToNative_Dictionary(details);
+ _requestAutocomplete_1(details_1);
+ return;
+ }
+ @JSName('requestAutocomplete')
+ @DomName('HTMLFormElement.requestAutocomplete')
+ @DocsEditable()
+ // http://lists.whatwg.org/htdig.cgi/whatwg-whatwg.org/2012-October/037711.html
+ @Experimental()
+ void _requestAutocomplete_1(details) native;
@DomName('HTMLFormElement.reset')
@DocsEditable()
@@ -15846,24 +15780,6 @@
// http://www.whatwg.org/specs/web-apps/current-work/multipage/states-of-the-type-attribute.html#concept-input-type-file-selected
final List<Entry> entries;
- @JSName('webkitGrammar')
- @DomName('HTMLInputElement.webkitGrammar')
- @DocsEditable()
- @SupportedBrowser(SupportedBrowser.CHROME)
- @SupportedBrowser(SupportedBrowser.SAFARI)
- @Experimental()
- // http://lists.w3.org/Archives/Public/public-xg-htmlspeech/2011Feb/att-0020/api-draft.html#attrib-grammar
- bool grammar;
-
- @JSName('webkitSpeech')
- @DomName('HTMLInputElement.webkitSpeech')
- @DocsEditable()
- @SupportedBrowser(SupportedBrowser.CHROME)
- @SupportedBrowser(SupportedBrowser.SAFARI)
- @Experimental()
- // http://lists.w3.org/Archives/Public/public-xg-htmlspeech/2011Feb/att-0020/api-draft.html#attrib-speech
- bool speech;
-
@JSName('webkitdirectory')
@DomName('HTMLInputElement.webkitdirectory')
@DocsEditable()
@@ -23371,11 +23287,6 @@
@DocsEditable()
final Element activeElement;
- @JSName('applyAuthorStyles')
- @DomName('ShadowRoot.applyAuthorStyles')
- @DocsEditable()
- bool _applyAuthorStyles;
-
@DomName('ShadowRoot.host')
@DocsEditable()
@Experimental() // untriaged
@@ -23435,20 +23346,39 @@
static bool get supported =>
JS('bool', '!!(Element.prototype.webkitCreateShadowRoot)');
- @deprecated
- bool get resetStyleInheritance => this._resetStyleInheritance;
-
- @deprecated
- void set resetStyleInheritance(bool value) {
- this._resetStyleInheritance = value;
+ static bool _shadowRootDeprecationReported = false;
+ static void _shadowRootDeprecationReport() {
+ if (!_shadowRootDeprecationReported) {
+ window.console.warn('''
+ShadowRoot.resetStyleInheritance and ShadowRoot.applyAuthorStyles now deprecated in dart:html.
+Please remove them from your code.
+''');
+ _shadowRootDeprecationReported = true;
+ }
}
@deprecated
- bool get applyAuthorStyles => this._applyAuthorStyles;
+ bool get resetStyleInheritance {
+ _shadowRootDeprecationReport();
+ // Default value from when it was specified.
+ return false;
+ }
+
+ @deprecated
+ void set resetStyleInheritance(bool value) {
+ _shadowRootDeprecationReport();
+ }
+
+ @deprecated
+ bool get applyAuthorStyles {
+ _shadowRootDeprecationReport();
+ // Default value from when it was specified.
+ return false;
+ }
@deprecated
void set applyAuthorStyles(bool value) {
- this._applyAuthorStyles = value;
+ _shadowRootDeprecationReport();
}
}
// Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
@@ -23865,12 +23795,6 @@
class SpeechInputEvent extends Event native "SpeechInputEvent" {
// To suppress missing implicit constructor warnings.
factory SpeechInputEvent._() { throw new UnsupportedError("Not supported"); }
-
- @DomName('SpeechInputEvent.results')
- @DocsEditable()
- @Returns('_SpeechInputResultList')
- @Creates('_SpeechInputResultList')
- final List<SpeechInputResult> results;
}
// Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
@@ -23884,14 +23808,6 @@
class SpeechInputResult extends Interceptor native "SpeechInputResult" {
// To suppress missing implicit constructor warnings.
factory SpeechInputResult._() { throw new UnsupportedError("Not supported"); }
-
- @DomName('SpeechInputResult.confidence')
- @DocsEditable()
- final double confidence;
-
- @DomName('SpeechInputResult.utterance')
- @DocsEditable()
- final String utterance;
}
// 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
@@ -25824,11 +25740,6 @@
@Experimental() // untriaged
final Player player;
- @DomName('TimedItem.specified')
- @DocsEditable()
- @Experimental() // untriaged
- final Timing specified;
-
@DomName('TimedItem.startTime')
@DocsEditable()
@Experimental() // untriaged
@@ -29527,13 +29438,6 @@
class WorkerCrypto extends Interceptor native "WorkerCrypto" {
// To suppress missing implicit constructor warnings.
factory WorkerCrypto._() { throw new UnsupportedError("Not supported"); }
-
- @DomName('WorkerCrypto.getRandomValues')
- @DocsEditable()
- @Experimental() // untriaged
- @Creates('TypedData')
- @Returns('TypedData|Null')
- TypedData getRandomValues(TypedData array) native;
}
// Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
@@ -29603,15 +29507,6 @@
@Experimental() // untriaged
final WorkerGlobalScope self;
- @JSName('webkitNotifications')
- @DomName('WorkerGlobalScope.webkitNotifications')
- @DocsEditable()
- @SupportedBrowser(SupportedBrowser.CHROME)
- @SupportedBrowser(SupportedBrowser.SAFARI)
- @Experimental()
- @Experimental() // untriaged
- final _NotificationCenter _webkitNotifications;
-
@DomName('WorkerGlobalScope.close')
@DocsEditable()
@Experimental() // untriaged
diff --git a/sdk/lib/html/dartium/html_dartium.dart b/sdk/lib/html/dartium/html_dartium.dart
index c93a3d7..b7ff13b 100644
--- a/sdk/lib/html/dartium/html_dartium.dart
+++ b/sdk/lib/html/dartium/html_dartium.dart
@@ -1226,10 +1226,6 @@
// To suppress missing implicit constructor warnings.
factory BeforeLoadEvent._() { throw new UnsupportedError("Not supported"); }
- @DomName('BeforeLoadEvent.url')
- @DocsEditable()
- String get url => _blink.Native_BeforeLoadEvent_url_Getter(this);
-
}
// Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
@@ -1962,36 +1958,6 @@
// To suppress missing implicit constructor warnings.
factory CanvasRenderingContext2D._() { throw new UnsupportedError("Not supported"); }
- /**
- * The current default path of this canvas context, if there is one.
- *
- * ## Other resources
- *
- * * [Current default path]
- * (http://www.whatwg.org/specs/web-apps/current-work/multipage/the-canvas-element.html#current-default-path)
- * from WHATWG.
- */
- @DomName('CanvasRenderingContext2D.currentPath')
- @DocsEditable()
- // http://www.whatwg.org/specs/web-apps/current-work/multipage/the-canvas-element.html#path-objects
- @Experimental()
- Path get currentPath => _blink.Native_CanvasRenderingContext2D_currentPath_Getter(this);
-
- /**
- * The current default path of this canvas context, if there is one.
- *
- * ## Other resources
- *
- * * [Current default path]
- * (http://www.whatwg.org/specs/web-apps/current-work/multipage/the-canvas-element.html#current-default-path)
- * from WHATWG.
- */
- @DomName('CanvasRenderingContext2D.currentPath')
- @DocsEditable()
- // http://www.whatwg.org/specs/web-apps/current-work/multipage/the-canvas-element.html#path-objects
- @Experimental()
- void set currentPath(Path value) => _blink.Native_CanvasRenderingContext2D_currentPath_Setter(this, value);
-
@DomName('CanvasRenderingContext2D.currentTransform')
@DocsEditable()
@Experimental() // untriaged
@@ -2319,15 +2285,6 @@
@DocsEditable()
void translate(num tx, num ty) => _blink.Native_CanvasRenderingContext2D_translate_Callback(this, tx, ty);
- @DomName('CanvasRenderingContext2D.webkitGetImageDataHD')
- @DocsEditable()
- @SupportedBrowser(SupportedBrowser.CHROME)
- @SupportedBrowser(SupportedBrowser.SAFARI)
- @Experimental()
- ImageData getImageDataHD(num sx, num sy, num sw, num sh) => _blink.Native_CanvasRenderingContext2D_webkitGetImageDataHD_Callback(this, sx, sy, sw, sh);
-
- void putImageDataHD(ImageData imagedata, num dx, num dy, [num dirtyX, num dirtyY, num dirtyWidth, num dirtyHeight]) => _blink.Native_CanvasRenderingContext2D_putImageDataHD(this, imagedata, dx, dy, dirtyX, dirtyY, dirtyWidth, dirtyHeight);
-
/**
* Sets the color used inside shapes.
@@ -8525,11 +8482,6 @@
// To suppress missing implicit constructor warnings.
factory DomImplementation._() { throw new UnsupportedError("Not supported"); }
- @DomName('DOMImplementation.createCSSStyleSheet')
- @DocsEditable()
- @Experimental() // non-standard
- CssStyleSheet createCssStyleSheet(String title, String media) => _blink.Native_DOMImplementation_createCSSStyleSheet_Callback(this, title, media);
-
@DomName('DOMImplementation.createDocument')
@DocsEditable()
XmlDocument createDocument(String namespaceURI, String qualifiedName, _DocumentType doctype) => _blink.Native_DOMImplementation_createDocument_Callback(this, namespaceURI, qualifiedName, doctype);
@@ -13684,7 +13636,7 @@
@DocsEditable()
// http://lists.whatwg.org/htdig.cgi/whatwg-whatwg.org/2012-October/037711.html
@Experimental()
- void requestAutocomplete() => _blink.Native_HTMLFormElement_requestAutocomplete_Callback(this);
+ void requestAutocomplete(Map details) => _blink.Native_HTMLFormElement_requestAutocomplete_Callback(this, details);
@DomName('HTMLFormElement.reset')
@DocsEditable()
@@ -16976,38 +16928,6 @@
// http://www.whatwg.org/specs/web-apps/current-work/multipage/states-of-the-type-attribute.html#concept-input-type-file-selected
List<Entry> get entries => _blink.Native_HTMLInputElement_webkitEntries_Getter(this);
- @DomName('HTMLInputElement.webkitGrammar')
- @DocsEditable()
- @SupportedBrowser(SupportedBrowser.CHROME)
- @SupportedBrowser(SupportedBrowser.SAFARI)
- @Experimental()
- // http://lists.w3.org/Archives/Public/public-xg-htmlspeech/2011Feb/att-0020/api-draft.html#attrib-grammar
- bool get grammar => _blink.Native_HTMLInputElement_webkitGrammar_Getter(this);
-
- @DomName('HTMLInputElement.webkitGrammar')
- @DocsEditable()
- @SupportedBrowser(SupportedBrowser.CHROME)
- @SupportedBrowser(SupportedBrowser.SAFARI)
- @Experimental()
- // http://lists.w3.org/Archives/Public/public-xg-htmlspeech/2011Feb/att-0020/api-draft.html#attrib-grammar
- void set grammar(bool value) => _blink.Native_HTMLInputElement_webkitGrammar_Setter(this, value);
-
- @DomName('HTMLInputElement.webkitSpeech')
- @DocsEditable()
- @SupportedBrowser(SupportedBrowser.CHROME)
- @SupportedBrowser(SupportedBrowser.SAFARI)
- @Experimental()
- // http://lists.w3.org/Archives/Public/public-xg-htmlspeech/2011Feb/att-0020/api-draft.html#attrib-speech
- bool get speech => _blink.Native_HTMLInputElement_webkitSpeech_Getter(this);
-
- @DomName('HTMLInputElement.webkitSpeech')
- @DocsEditable()
- @SupportedBrowser(SupportedBrowser.CHROME)
- @SupportedBrowser(SupportedBrowser.SAFARI)
- @Experimental()
- // http://lists.w3.org/Archives/Public/public-xg-htmlspeech/2011Feb/att-0020/api-draft.html#attrib-speech
- void set speech(bool value) => _blink.Native_HTMLInputElement_webkitSpeech_Setter(this, value);
-
@DomName('HTMLInputElement.webkitdirectory')
@DocsEditable()
@SupportedBrowser(SupportedBrowser.CHROME)
@@ -24841,14 +24761,6 @@
@DocsEditable()
Element get activeElement => _blink.Native_ShadowRoot_activeElement_Getter(this);
- @DomName('ShadowRoot.applyAuthorStyles')
- @DocsEditable()
- bool get _applyAuthorStyles => _blink.Native_ShadowRoot_applyAuthorStyles_Getter(this);
-
- @DomName('ShadowRoot.applyAuthorStyles')
- @DocsEditable()
- void set _applyAuthorStyles(bool value) => _blink.Native_ShadowRoot_applyAuthorStyles_Setter(this, value);
-
@DomName('ShadowRoot.host')
@DocsEditable()
@Experimental() // untriaged
@@ -25407,10 +25319,6 @@
// To suppress missing implicit constructor warnings.
factory SpeechInputEvent._() { throw new UnsupportedError("Not supported"); }
- @DomName('SpeechInputEvent.results')
- @DocsEditable()
- List<SpeechInputResult> get results => _blink.Native_SpeechInputEvent_results_Getter(this);
-
}
// Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
@@ -25427,14 +25335,6 @@
// To suppress missing implicit constructor warnings.
factory SpeechInputResult._() { throw new UnsupportedError("Not supported"); }
- @DomName('SpeechInputResult.confidence')
- @DocsEditable()
- double get confidence => _blink.Native_SpeechInputResult_confidence_Getter(this);
-
- @DomName('SpeechInputResult.utterance')
- @DocsEditable()
- String get utterance => _blink.Native_SpeechInputResult_utterance_Getter(this);
-
}
// Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
@@ -27525,11 +27425,6 @@
@Experimental() // untriaged
Player get player => _blink.Native_TimedItem_player_Getter(this);
- @DomName('TimedItem.specified')
- @DocsEditable()
- @Experimental() // untriaged
- Timing get specified => _blink.Native_TimedItem_specified_Getter(this);
-
@DomName('TimedItem.startTime')
@DocsEditable()
@Experimental() // untriaged
@@ -31048,11 +30943,6 @@
// To suppress missing implicit constructor warnings.
factory WorkerCrypto._() { throw new UnsupportedError("Not supported"); }
- @DomName('WorkerCrypto.getRandomValues')
- @DocsEditable()
- @Experimental() // untriaged
- TypedData getRandomValues(TypedData array) => _blink.Native_WorkerCrypto_getRandomValues_Callback(this, array);
-
}
// Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
@@ -31124,14 +31014,6 @@
@Experimental() // untriaged
WorkerGlobalScope get self => _blink.Native_WorkerGlobalScope_self_Getter(this);
- @DomName('WorkerGlobalScope.webkitNotifications')
- @DocsEditable()
- @SupportedBrowser(SupportedBrowser.CHROME)
- @SupportedBrowser(SupportedBrowser.SAFARI)
- @Experimental()
- @Experimental() // untriaged
- _NotificationCenter get _webkitNotifications => _blink.Native_WorkerGlobalScope_webkitNotifications_Getter(this);
-
@DomName('WorkerGlobalScope.close')
@DocsEditable()
@Experimental() // untriaged
diff --git a/sdk/lib/svg/dart2js/svg_dart2js.dart b/sdk/lib/svg/dart2js/svg_dart2js.dart
index 41d6ae1..c3ddd80 100644
--- a/sdk/lib/svg/dart2js/svg_dart2js.dart
+++ b/sdk/lib/svg/dart2js/svg_dart2js.dart
@@ -1120,12 +1120,6 @@
@DocsEditable()
static const EventStreamProvider<Event> unloadEvent = const EventStreamProvider<Event>('unload');
- @DomName('SVGElementInstance.childNodes')
- @DocsEditable()
- @Returns('_ElementInstanceList')
- @Creates('_ElementInstanceList')
- final List<ElementInstance> childNodes;
-
@DomName('SVGElementInstance.correspondingElement')
@DocsEditable()
final SvgElement correspondingElement;
@@ -6012,14 +6006,6 @@
*/
SvgSvgElement.created() : super.created();
- @DomName('SVGSVGElement.contentScriptType')
- @DocsEditable()
- String contentScriptType;
-
- @DomName('SVGSVGElement.contentStyleType')
- @DocsEditable()
- String contentStyleType;
-
@DomName('SVGSVGElement.currentScale')
@DocsEditable()
num currentScale;
diff --git a/sdk/lib/svg/dartium/svg_dartium.dart b/sdk/lib/svg/dartium/svg_dartium.dart
index d36bb4d..ebfc7e4 100644
--- a/sdk/lib/svg/dartium/svg_dartium.dart
+++ b/sdk/lib/svg/dartium/svg_dartium.dart
@@ -1366,10 +1366,6 @@
@DocsEditable()
static const EventStreamProvider<Event> unloadEvent = const EventStreamProvider<Event>('unload');
- @DomName('SVGElementInstance.childNodes')
- @DocsEditable()
- List<ElementInstance> get childNodes => _blink.Native_SVGElementInstance_childNodes_Getter(this);
-
@DomName('SVGElementInstance.correspondingElement')
@DocsEditable()
SvgElement get correspondingElement => _blink.Native_SVGElementInstance_correspondingElement_Getter(this);
@@ -6775,22 +6771,6 @@
*/
SvgSvgElement.created() : super.created();
- @DomName('SVGSVGElement.contentScriptType')
- @DocsEditable()
- String get contentScriptType => _blink.Native_SVGSVGElement_contentScriptType_Getter(this);
-
- @DomName('SVGSVGElement.contentScriptType')
- @DocsEditable()
- void set contentScriptType(String value) => _blink.Native_SVGSVGElement_contentScriptType_Setter(this, value);
-
- @DomName('SVGSVGElement.contentStyleType')
- @DocsEditable()
- String get contentStyleType => _blink.Native_SVGSVGElement_contentStyleType_Getter(this);
-
- @DomName('SVGSVGElement.contentStyleType')
- @DocsEditable()
- void set contentStyleType(String value) => _blink.Native_SVGSVGElement_contentStyleType_Setter(this, value);
-
@DomName('SVGSVGElement.currentScale')
@DocsEditable()
num get currentScale => _blink.Native_SVGSVGElement_currentScale_Getter(this);
diff --git a/sdk/lib/web_audio/dart2js/web_audio_dart2js.dart b/sdk/lib/web_audio/dart2js/web_audio_dart2js.dart
index 4de5e85..cc56742 100644
--- a/sdk/lib/web_audio/dart2js/web_audio_dart2js.dart
+++ b/sdk/lib/web_audio/dart2js/web_audio_dart2js.dart
@@ -82,10 +82,6 @@
@DocsEditable()
final double duration;
- @DomName('AudioBuffer.gain')
- @DocsEditable()
- num gain;
-
@DomName('AudioBuffer.length')
@DocsEditable()
final int length;
@@ -186,10 +182,6 @@
@DocsEditable()
AudioBuffer buffer;
- @DomName('AudioBufferSourceNode.gain')
- @DocsEditable()
- final AudioParam gain;
-
@DomName('AudioBufferSourceNode.loop')
@DocsEditable()
bool loop;
@@ -206,10 +198,6 @@
@DocsEditable()
final AudioParam playbackRate;
- @DomName('AudioBufferSourceNode.playbackState')
- @DocsEditable()
- final int playbackState;
-
@DomName('AudioBufferSourceNode.noteGrainOn')
@DocsEditable()
void noteGrainOn(num when, num grainOffset, num grainDuration) native;
@@ -254,10 +242,6 @@
/// Checks if this type is supported on the current platform.
static bool get supported => JS('bool', '!!(window.AudioContext || window.webkitAudioContext)');
- @DomName('AudioContext.activeSourceCount')
- @DocsEditable()
- final int activeSourceCount;
-
@DomName('AudioContext.currentTime')
@DocsEditable()
final double currentTime;
@@ -286,11 +270,6 @@
@DocsEditable()
AudioBuffer createBuffer(int numberOfChannels, int numberOfFrames, num sampleRate) native;
- @JSName('createBuffer')
- @DomName('AudioContext.createBuffer')
- @DocsEditable()
- AudioBuffer createBufferFromBuffer(ByteBuffer buffer, bool mixToMono) native;
-
@DomName('AudioContext.createBufferSource')
@DocsEditable()
AudioBufferSourceNode createBufferSource() native;
@@ -311,22 +290,10 @@
@DocsEditable()
DelayNode createDelay([num maxDelayTime]) native;
- @DomName('AudioContext.createDelayNode')
- @DocsEditable()
- DelayNode createDelayNode([num maxDelayTime]) native;
-
@DomName('AudioContext.createDynamicsCompressor')
@DocsEditable()
DynamicsCompressorNode createDynamicsCompressor() native;
- @DomName('AudioContext.createGainNode')
- @DocsEditable()
- GainNode createGainNode() native;
-
- @DomName('AudioContext.createJavaScriptNode')
- @DocsEditable()
- ScriptProcessorNode createJavaScriptNode(int bufferSize, [int numberOfInputChannels, int numberOfOutputChannels]) native;
-
@DomName('AudioContext.createMediaElementSource')
@DocsEditable()
MediaElementAudioSourceNode createMediaElementSource(MediaElement mediaElement) native;
@@ -567,10 +534,6 @@
@DocsEditable()
void setTargetAtTime(num target, num time, num timeConstant) native;
- @DomName('AudioParam.setTargetValueAtTime')
- @DocsEditable()
- void setTargetValueAtTime(num targetValue, num time, num timeConstant) native;
-
@DomName('AudioParam.setValueAtTime')
@DocsEditable()
void setValueAtTime(num value, num time) native;
@@ -937,10 +900,6 @@
@DocsEditable()
final AudioParam frequency;
- @DomName('OscillatorNode.playbackState')
- @DocsEditable()
- final int playbackState;
-
@DomName('OscillatorNode.type')
@DocsEditable()
String type;
diff --git a/sdk/lib/web_audio/dartium/web_audio_dartium.dart b/sdk/lib/web_audio/dartium/web_audio_dartium.dart
index 10748a5..7719807 100644
--- a/sdk/lib/web_audio/dartium/web_audio_dartium.dart
+++ b/sdk/lib/web_audio/dartium/web_audio_dartium.dart
@@ -128,14 +128,6 @@
@DocsEditable()
double get duration => _blink.Native_AudioBuffer_duration_Getter(this);
- @DomName('AudioBuffer.gain')
- @DocsEditable()
- num get gain => _blink.Native_AudioBuffer_gain_Getter(this);
-
- @DomName('AudioBuffer.gain')
- @DocsEditable()
- void set gain(num value) => _blink.Native_AudioBuffer_gain_Setter(this, value);
-
@DomName('AudioBuffer.length')
@DocsEditable()
int get length => _blink.Native_AudioBuffer_length_Getter(this);
@@ -214,10 +206,6 @@
@DocsEditable()
void set buffer(AudioBuffer value) => _blink.Native_AudioBufferSourceNode_buffer_Setter(this, value);
- @DomName('AudioBufferSourceNode.gain')
- @DocsEditable()
- AudioParam get gain => _blink.Native_AudioBufferSourceNode_gain_Getter(this);
-
@DomName('AudioBufferSourceNode.loop')
@DocsEditable()
bool get loop => _blink.Native_AudioBufferSourceNode_loop_Getter(this);
@@ -246,10 +234,6 @@
@DocsEditable()
AudioParam get playbackRate => _blink.Native_AudioBufferSourceNode_playbackRate_Getter(this);
- @DomName('AudioBufferSourceNode.playbackState')
- @DocsEditable()
- int get playbackState => _blink.Native_AudioBufferSourceNode_playbackState_Getter(this);
-
@DomName('AudioBufferSourceNode.noteGrainOn')
@DocsEditable()
void noteGrainOn(num when, num grainOffset, num grainDuration) => _blink.Native_AudioBufferSourceNode_noteGrainOn_Callback(this, when, grainOffset, grainDuration);
@@ -302,10 +286,6 @@
/// Checks if this type is supported on the current platform.
static bool get supported => true;
- @DomName('AudioContext.activeSourceCount')
- @DocsEditable()
- int get activeSourceCount => _blink.Native_AudioContext_activeSourceCount_Getter(this);
-
@DomName('AudioContext.currentTime')
@DocsEditable()
double get currentTime => _blink.Native_AudioContext_currentTime_Getter(this);
@@ -334,10 +314,6 @@
@DocsEditable()
AudioBuffer createBuffer(int numberOfChannels, int numberOfFrames, num sampleRate) => _blink.Native_AudioContext_createBuffer_Callback(this, numberOfChannels, numberOfFrames, sampleRate);
- @DomName('AudioContext.createBufferFromBuffer')
- @DocsEditable()
- AudioBuffer createBufferFromBuffer(ByteBuffer buffer, bool mixToMono) => _blink.Native_AudioContext_createBufferFromBuffer_Callback(this, buffer, mixToMono);
-
@DomName('AudioContext.createBufferSource')
@DocsEditable()
AudioBufferSourceNode createBufferSource() => _blink.Native_AudioContext_createBufferSource_Callback(this);
@@ -352,8 +328,6 @@
DelayNode createDelay([num maxDelayTime]) => _blink.Native_AudioContext_createDelay(this, maxDelayTime);
- DelayNode createDelayNode([num maxDelayTime]) => _blink.Native_AudioContext_createDelayNode(this, maxDelayTime);
-
@DomName('AudioContext.createDynamicsCompressor')
@DocsEditable()
DynamicsCompressorNode createDynamicsCompressor() => _blink.Native_AudioContext_createDynamicsCompressor_Callback(this);
@@ -362,12 +336,6 @@
@DocsEditable()
GainNode createGain() => _blink.Native_AudioContext_createGain_Callback(this);
- @DomName('AudioContext.createGainNode')
- @DocsEditable()
- GainNode createGainNode() => _blink.Native_AudioContext_createGainNode_Callback(this);
-
- ScriptProcessorNode createJavaScriptNode(int bufferSize, [int numberOfInputChannels, int numberOfOutputChannels]) => _blink.Native_AudioContext_createJavaScriptNode(this, bufferSize, numberOfInputChannels, numberOfOutputChannels);
-
@DomName('AudioContext.createMediaElementSource')
@DocsEditable()
MediaElementAudioSourceNode createMediaElementSource(MediaElement mediaElement) => _blink.Native_AudioContext_createMediaElementSource_Callback(this, mediaElement);
@@ -612,10 +580,6 @@
@DocsEditable()
void setTargetAtTime(num target, num time, num timeConstant) => _blink.Native_AudioParam_setTargetAtTime_Callback(this, target, time, timeConstant);
- @DomName('AudioParam.setTargetValueAtTime')
- @DocsEditable()
- void setTargetValueAtTime(num targetValue, num time, num timeConstant) => _blink.Native_AudioParam_setTargetValueAtTime_Callback(this, targetValue, time, timeConstant);
-
@DomName('AudioParam.setValueAtTime')
@DocsEditable()
void setValueAtTime(num value, num time) => _blink.Native_AudioParam_setValueAtTime_Callback(this, value, time);
@@ -1036,10 +1000,6 @@
@DocsEditable()
AudioParam get frequency => _blink.Native_OscillatorNode_frequency_Getter(this);
- @DomName('OscillatorNode.playbackState')
- @DocsEditable()
- int get playbackState => _blink.Native_OscillatorNode_playbackState_Getter(this);
-
@DomName('OscillatorNode.type')
@DocsEditable()
String get type => _blink.Native_OscillatorNode_type_Getter(this);
diff --git a/tools/VERSION b/tools/VERSION
index cd798b5c..e9abb99 100644
--- a/tools/VERSION
+++ b/tools/VERSION
@@ -28,4 +28,4 @@
MINOR 5
PATCH 0
PRERELEASE 4
-PRERELEASE_PATCH 4
+PRERELEASE_PATCH 5
diff --git a/tools/dom/idl/dart/dart.idl b/tools/dom/idl/dart/dart.idl
index cdf46f3..cfb832b 100644
--- a/tools/dom/idl/dart/dart.idl
+++ b/tools/dom/idl/dart/dart.idl
@@ -394,4 +394,95 @@
boolean lockOrientation(sequence<DOMString> orientations);
};
+[Supplemental] interface CanvasRenderingContext2D {
+ [Suppressed] void webkitPutImageDataHD(ImageData? imagedata, float dx, float dy);
+ [Suppressed] void webkitPutImageDataHD(ImageData? imagedata, float dx, float dy, float dirtyX, float dirtyY, float dirtyWidth, float dirtyHeight);
+ [Suppressed] ImageData webkitGetImageDataHD(float sx, float sy, float sw, float sh);
+ [Suppressed] attribute Path currentPath;
+};
+
+[Supplemental] interface AudioParam {
+ [Suppressed] void setTargetValueAtTime(float target, double time, double timeConstant);
+ void setTargetAtTime(float target, double time, double timeConstant);
+};
+
+[Supplemental] interface AudioContext {
+ // Number of AudioBufferSourceNodes that are currently playing.
+ [Suppressed] readonly attribute unsigned long activeSourceCount;
+ [Suppressed] ScriptProcessorNode createJavaScriptNode(unsigned long bufferSize, optional unsigned long numberOfInputChannels, optional unsigned long numberOfOutputChannels);
+ [Suppressed] AudioBuffer createBuffer(ArrayBuffer? buffer, boolean mixToMono);
+ [Suppressed] GainNode createGainNode();
+ [Suppressed] DelayNode createDelayNode(optional double maxDelayTime);
+};
+
+[Supplemental] interface HTMLInputElement {
+ [Suppressed] attribute boolean webkitSpeech;
+ [Suppressed] attribute boolean webkitGrammar;
+};
+
+[Supplemental] interface ShadowRoot {
+ [Suppressed] attribute boolean applyAuthorStyles;
+};
+
+[Supplemental] interface BeforeLoadEvent {
+ [Suppressed] readonly attribute DOMString url;
+};
+
+[Supplemental] interface OscillatorNode {
+ [Suppressed] readonly attribute unsigned short playbackState;
+};
+
+[Supplemental] interface SVGElementInstance {
+ [Suppressed] readonly attribute SVGElementInstanceList childNodes;
+};
+
+[Supplemental] interface TimedItem {
+ [Suppressed] readonly attribute Timing specified;
+};
+
+[Supplemental] interface DOMImplementation {
+ [Suppressed]
+ CSSStyleSheet createCSSStyleSheet([Default=Undefined] optional DOMString title,
+ [Default=Undefined] optional DOMString media);
+};
+
+[Supplemental] interface SVGSVGElement {
+ [Suppressed] attribute DOMString contentStyleType;
+ [Suppressed] attribute DOMString contentScriptType;
+};
+
+[Supplemental] interface WorkerGlobalScope {
+ [Suppressed] readonly attribute NotificationCenter webkitNotifications;
+};
+
+[Supplemental] interface AudioBuffer {
+ [Suppressed] attribute float gain;
+};
+
+[Supplemental] interface WorkerCrypto {
+ [Suppressed] ArrayBufferView getRandomValues(ArrayBufferView array);
+};
+
+[Supplemental] interface HTMLFormElement {
+ void requestAutocomplete([Default=Undefined] optional Dictionary details);
+ [Suppressed] void requestAutocomplete();
+};
+
+[Supplemental] interface AudioBufferSourceNode {
+ [Suppressed] readonly attribute unsigned short playbackState;
+};
+
+[Supplemental] interface SpeechInputResult {
+ [Suppressed] readonly attribute DOMString utterance;
+ [Suppressed] readonly attribute float confidence;
+};
+
+[Supplemental] interface SpeechInputEvent : Event {
+ [Suppressed] readonly attribute SpeechInputResultList results;
+};
+
+[Supplemental] interface AudioBufferSourceNode : AudioSourceNode {
+ [Suppressed] readonly attribute AudioParam gain;
+};
+
Element implements GlobalEventHandlers;
diff --git a/tools/dom/scripts/systemnative.py b/tools/dom/scripts/systemnative.py
index 88a2655..a513aa7 100644
--- a/tools/dom/scripts/systemnative.py
+++ b/tools/dom/scripts/systemnative.py
@@ -33,7 +33,22 @@
# We don't know how to get GLenum to show up as the correct type in this
# script and don't want to bother fixing it the right way.
'WebGLDrawBuffers_drawBuffersWEBGL_Callback_RESOLVER_STRING_1_sequence<GLenum>' :
- 'WebGLDrawBuffers_drawBuffersWEBGL_Callback_RESOLVER_STRING_1_sequence<unsigned long>'
+ 'WebGLDrawBuffers_drawBuffersWEBGL_Callback_RESOLVER_STRING_1_sequence<unsigned long>',
+ # Blink 36 fixes.
+ 'CanvasRenderingContext2D_setLineDash_Callback_RESOLVER_STRING_1_sequence<float>' :
+ 'CanvasRenderingContext2D_setLineDash_Callback_RESOLVER_STRING_1_sequence<unrestricted float>',
+
+ # SVGGraphicsElement is base class.
+ 'SVGUseElement_hasExtension_Callback_RESOLVER_STRING_1_DOMString' :
+ 'SVGGraphicsElement_hasExtension_Callback_RESOLVER_STRING_1_DOMString',
+ 'SVGUseElement_systemLanguage_Getter' :
+ 'SVGGraphicsElement_systemLanguage_Getter',
+ 'SVGUseElement_requiredFeatures_Getter' :
+ 'SVGGraphicsElement_requiredFeatures_Getter',
+ 'SVGUseElement_requiredExtensions_Getter' :
+ 'SVGGraphicsElement_requiredExtensions_Getter',
+
+ 'Gamepad_buttons_Getter' : 'WebKitGamepad_buttons_Getter',
}
# TODO(vsm): This logic needs to pulled from the source IDL. These tables are
diff --git a/tools/dom/templates/html/impl/impl_ShadowRoot.darttemplate b/tools/dom/templates/html/impl/impl_ShadowRoot.darttemplate
index 2d518ba..559ba25 100644
--- a/tools/dom/templates/html/impl/impl_ShadowRoot.darttemplate
+++ b/tools/dom/templates/html/impl/impl_ShadowRoot.darttemplate
@@ -15,7 +15,6 @@
static final bool supported = true;
$endif
-$if DART_USE_BLINK
static bool _shadowRootDeprecationReported = false;
static void _shadowRootDeprecationReport() {
if (!_shadowRootDeprecationReported) {
@@ -50,21 +49,4 @@
void set applyAuthorStyles(bool value) {
_shadowRootDeprecationReport();
}
-$else
- @deprecated
- bool get resetStyleInheritance => this._resetStyleInheritance;
-
- @deprecated
- void set resetStyleInheritance(bool value) {
- this._resetStyleInheritance = value;
- }
-
- @deprecated
- bool get applyAuthorStyles => this._applyAuthorStyles;
-
- @deprecated
- void set applyAuthorStyles(bool value) {
- this._applyAuthorStyles = value;
- }
-$endif
}